docs.vin

spec

The spec noun — identity, lifecycle, events, and every capability as an anchored section: 11 capabilities, 4 live, 7 sandbox, 0 declared.

spec is one of the estate's 317 automotive nouns — a job a car needs done. It carries 11 capabilities: 4 live, 7 sandbox, 0 declared · doors aggregator.vin.

Identity

Nounspec
PillarData (facets: 6 data · 3 services · 2 commerce)
Capabilities11 — 4 live · 7 sandbox · 0 declared
EntitiesVehicle
Doorsaggregator.vin
SDKVin.spec.* from apis.vin
Address/catalog/spec#{action} — the anchor IS the wire name minus spec.

Events

The vocabulary this noun can append to the record — 5 past-tense, versioned event types, each linked to the capability that emits it:

Discover & read

decode

spec.decode · GET /specs/decode · gate none · live · answers SpecDecode@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — spec.decode
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.decode({"vin":"5GAEVCKW6RJ111915"})
GET /specs/decode
curl 'https://apis.vin/specs/decode?vin=5GAEVCKW6RJ111915'

validate

spec.validate · POST /specs/validate · gate offer · sandbox · answers SpecValidate@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsSpec.validated@1.

the SDK — spec.validate
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.validate({"vin":"5GAEVCKW6RJ111915"})
POST /specs/validate
curl -X POST https://apis.vin/specs/validate \
  -H 'content-type: application/json' \
  -d '{"vin":"5GAEVCKW6RJ111915"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.630Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecValidate@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "validation": {
      "features": [
        "remote-start",
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "unknown": [],
      "unavailable": [
        "remote-start"
      ],
      "valid": false,
      "basis": "one-availability-band"
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "validation": {
      "features": [
        "remote-start",
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "unknown": [],
      "unavailable": [
        "remote-start"
      ],
      "valid": false,
      "basis": "one-availability-band"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

compare

spec.compare · GET /specs/compare · gate key · sandbox · answers SpecCompare@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — spec.compare
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.compare({"vin":"5GAEVCKW6RJ111915"})
GET /specs/compare
curl 'https://apis.vin/specs/compare?vin=5GAEVCKW6RJ111915'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.627Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecCompare@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "compare": {
      "subject": {
        "vehicleId": "VEH-9f1d299c",
        "vin": "5GAEVCKW6RJ111915",
        "year": 2025,
        "bodyStyle": "sedan",
        "drivetrain": "rwd",
        "fuelSystem": {
          "fuel": "gasoline",
          "tankCapacityGal": "14.8",
          "ratedPressurePsi": 58,
          "injection": "direct"
        },
        "basis": "one-spec-sheet"
      },
      "other": {
        "vehicleId": "VEH-ff80c984",
        "vin": "1HGCM82633A004352",
        "year": 2025,
        "bodyStyle": "sedan",
        "drivetrain": "fwd",
        "fuelSystem": {
          "fuel": "gasoline",
          "tankCapacityGal": "14.8",
          "ratedPressurePsi": 58,
          "injection": "direct"
        },
        "basis": "one-spec-sheet"
      },
      "sameModelIdentity": true
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "compare": {
      "subject": {
        "vehicleId": "VEH-9f1d299c",
        "vin": "5GAEVCKW6RJ111915",
        "year": 2025,
        "bodyStyle": "sedan",
        "drivetrain": "rwd",
        "fuelSystem": {
          "fuel": "gasoline",
          "tankCapacityGal": "14.8",
          "ratedPressurePsi": 58,
          "injection": "direct"
        },
        "basis": "one-spec-sheet"
      },
      "other": {
        "vehicleId": "VEH-ff80c984",
        "vin": "1HGCM82633A004352",
        "year": 2025,
        "bodyStyle": "sedan",
        "drivetrain": "fwd",
        "fuelSystem": {
          "fuel": "gasoline",
          "tankCapacityGal": "14.8",
          "ratedPressurePsi": 58,
          "injection": "direct"
        },
        "basis": "one-spec-sheet"
      },
      "sameModelIdentity": true
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

packageDecode

spec.packageDecode · GET /specs/package-decode · gate none · live · answers SpecPackageDecode@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — spec.packageDecode
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.packageDecode({"vin":"5GAEVCKW6RJ111915"})
GET /specs/package-decode
curl 'https://apis.vin/specs/package-decode?vin=5GAEVCKW6RJ111915'

Quote & price

price

spec.price · POST /specs/price · gate offer · sandbox · answers SpecPrice@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsSpec.priced@1.

the SDK — spec.price
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.price({"vin":"5GAEVCKW6RJ111915"})
POST /specs/price
curl -X POST https://apis.vin/specs/price \
  -H 'content-type: application/json' \
  -d '{"vin":"5GAEVCKW6RJ111915"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.628Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecPrice@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "pricing": {
      "msrpCents": 2782200,
      "destinationCents": 146700,
      "features": [
        {
          "feature": "heated-seats",
          "oneTimeCents": 24900,
          "basis": "software-update-fee"
        },
        {
          "feature": "connected-navigation",
          "oneTimeCents": 24900,
          "basis": "software-update-fee"
        },
        {
          "feature": "performance-tune",
          "oneTimeCents": 24900,
          "basis": "software-update-fee"
        }
      ],
      "totalCents": 3003600,
      "currency": "USD",
      "basis": "posted-anchors-only"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "pricing": {
      "msrpCents": 2782200,
      "destinationCents": 146700,
      "features": [
        {
          "feature": "heated-seats",
          "oneTimeCents": 24900,
          "basis": "software-update-fee"
        },
        {
          "feature": "connected-navigation",
          "oneTimeCents": 24900,
          "basis": "software-update-fee"
        },
        {
          "feature": "performance-tune",
          "oneTimeCents": 24900,
          "basis": "software-update-fee"
        }
      ],
      "totalCents": 3003600,
      "currency": "USD",
      "basis": "posted-anchors-only"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

upsell

spec.upsell · POST /specs/upsell · gate offer · sandbox · answers SpecUpsell@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsSpec.upselled@1.

the SDK — spec.upsell
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.upsell({"vin":"5GAEVCKW6RJ111915"})
POST /specs/upsell
curl -X POST https://apis.vin/specs/upsell \
  -H 'content-type: application/json' \
  -d '{"vin":"5GAEVCKW6RJ111915"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.630Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecUpsell@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "upsell": {
      "features": [
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "count": 3,
      "basis": "one-availability-band"
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "upsell": {
      "features": [
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "count": 3,
      "basis": "one-availability-band"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

compatibility

spec.compatibility · GET /specs/compatibility · gate none · sandbox · answers SpecCompatibility@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — spec.compatibility
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.compatibility({"vin":"5GAEVCKW6RJ111915"})
GET /specs/compatibility
curl 'https://apis.vin/specs/compatibility?vin=5GAEVCKW6RJ111915'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.628Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecCompatibility@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "compatibility": {
      "feature": "remote-start",
      "compatible": false,
      "basis": "one-availability-band"
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "compatibility": {
      "feature": "remote-start",
      "compatible": false,
      "basis": "one-availability-band"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

configure

spec.configure · POST /specs/configure · gate offer · sandbox · answers SpecConfigure@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsSpec.configured@1.

the SDK — spec.configure
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.configure({"vin":"5GAEVCKW6RJ111915"})
POST /specs/configure
curl -X POST https://apis.vin/specs/configure \
  -H 'content-type: application/json' \
  -d '{"vin":"5GAEVCKW6RJ111915"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.628Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecConfigure@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "configuration": {
      "id": "SPC-6b6b35ed",
      "features": [
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "rejected": [
        "remote-start"
      ],
      "status": "configured",
      "basis": "one-availability-band"
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "configuration": {
      "id": "SPC-6b6b35ed",
      "features": [
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "rejected": [
        "remote-start"
      ],
      "status": "configured",
      "basis": "one-availability-band"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

options

spec.options · GET /specs/options · gate none · live · answers SpecOptions@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — spec.options
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.options({"vin":"5GAEVCKW6RJ111915"})
GET /specs/options
curl 'https://apis.vin/specs/options?vin=5GAEVCKW6RJ111915'

resolveConflicts

spec.resolveConflicts · POST /specs/resolve-conflicts · gate offer · sandbox · answers SpecResolveConflicts@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsSpec.conflictsResolved@1.

the SDK — spec.resolveConflicts
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.resolveConflicts({"vin":"5GAEVCKW6RJ111915"})
POST /specs/resolve-conflicts
curl -X POST https://apis.vin/specs/resolve-conflicts \
  -H 'content-type: application/json' \
  -d '{"vin":"5GAEVCKW6RJ111915"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:17.630Z · HTTP 200
{
  "type": "OK",
  "answers": "SpecResolveConflicts@1",
  "value": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "resolution": {
      "kept": [
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "dropped": [
        "remote-start"
      ],
      "status": "resolved",
      "basis": "one-availability-band"
    }
  },
  "evidence": {
    "vin": "5GAEVCKW6RJ111915",
    "noun": "spec",
    "asOf": "2026-08-10",
    "vehicleId": "VEH-9f1d299c",
    "year": 2025,
    "bodyStyle": "sedan",
    "drivetrain": "rwd",
    "odometer": 79947,
    "condition": "clean",
    "currentOwnerId": "ID-11f17424",
    "resolution": {
      "kept": [
        "heated-seats",
        "connected-navigation",
        "performance-tune"
      ],
      "dropped": [
        "remote-start"
      ],
      "status": "resolved",
      "basis": "one-availability-band"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "spec-sheet-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

standardEquip

spec.standardEquip · GET /specs/standard-equip · gate none · live · answers SpecStandardEquip@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVCKW6RJ111915 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — spec.standardEquip
import { spec } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await spec.standardEquip({"vin":"5GAEVCKW6RJ111915"})
GET /specs/standard-equip
curl 'https://apis.vin/specs/standard-equip?vin=5GAEVCKW6RJ111915'

Data model

The record shape behind this noun — one entity, each property an evidence field. See the whole estate model on the data model page.

Vehicle

Modeled

The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 2 diagrams, rendered from the estate model.

Spec · Class model

Spec · State machine


Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.