docs.vin

tires

The tires noun — identity, lifecycle, events, and every capability as an anchored section: 36 capabilities, 2 live, 34 sandbox, 0 declared.

tires is one of the estate's 317 automotive nouns — a job a car needs done. It carries 36 capabilities: 2 live, 34 sandbox, 0 declared · doors tires.vin · aggregator.vin.

Identity

Nountires
PillarData (facets: 13 data · 13 services · 10 commerce)
Capabilities36 — 2 live · 34 sandbox · 0 declared
EntitiesRepairOrder
Doorsaggregator.vin · tires.vin
SDKVin.tires.* from apis.vin
Address/catalog/tires#{action} — the anchor IS the wire name minus tires.

Events

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

Discover & read

spec

tires.spec · GET /tires/spec · gate none · live · answers TiresSpec@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.spec
import { tires } from 'apis.vin'

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

history

tires.history · GET /tires/history · gate none · sandbox · answers TiresHistory@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.history
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.history({"vin":"1C4AJWAG9HL738132"})
GET /tires/history
curl 'https://apis.vin/tires/history?vin=1C4AJWAG9HL738132'

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresHistory@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "events": [
      {
        "date": "2024-03-14",
        "kind": "maintenance",
        "description": "scheduled tire set service"
      }
    ],
    "count": 1
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "events": [
      {
        "date": "2024-03-14",
        "kind": "maintenance",
        "description": "scheduled tire set service"
      }
    ],
    "count": 1
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

availability

tires.availability · GET /tires/availability · gate none · sandbox · answers TiresAvailability@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.availability
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.availability({"vin":"1C4AJWAG9HL738132"})
GET /tires/availability
curl 'https://apis.vin/tires/availability?vin=1C4AJWAG9HL738132'

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:18.155Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresAvailability@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "availability",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 9,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "availability",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 9,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

ratingLookup

tires.ratingLookup · GET /tires/rating-lookup · gate none · sandbox · answers TiresRatingLookup@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.ratingLookup
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.ratingLookup({"vin":"1C4AJWAG9HL738132"})
GET /tires/rating-lookup
curl 'https://apis.vin/tires/rating-lookup?vin=1C4AJWAG9HL738132'

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:18.225Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRatingLookup@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "ratingLookup",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 12,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "ratingLookup",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 12,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

conditionRead

tires.conditionRead · GET /tires/condition-read · gate none · sandbox · answers TiresConditionRead@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.conditionRead
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.conditionRead({"vin":"1C4AJWAG9HL738132"})
GET /tires/condition-read
curl 'https://apis.vin/tires/condition-read?vin=1C4AJWAG9HL738132'

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:18.164Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresConditionRead@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "serviceType": "inspection",
    "grade": "clean",
    "damage": [],
    "reconRequired": false,
    "reconEstimateCents": 0,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "serviceType": "inspection",
    "grade": "clean",
    "damage": [],
    "reconRequired": false,
    "reconEstimateCents": 0,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "field-services-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

dotDecode

tires.dotDecode · GET /tires/dot-decode · gate none · sandbox · answers TiresDotDecode@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.dotDecode
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.dotDecode({"vin":"1C4AJWAG9HL738132"})
GET /tires/dot-decode
curl 'https://apis.vin/tires/dot-decode?vin=1C4AJWAG9HL738132'

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresDotDecode@1",
  "value": {
    "dot": "2223",
    "plantCode": "22",
    "weekOfYear": 22,
    "year": 2023
  },
  "evidence": {
    "dot": "2223",
    "plantCode": "22",
    "weekOfYear": 22,
    "year": 2023
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "services-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

sizeDecode

tires.sizeDecode · GET /tires/size-decode · gate none · live · answers TiresSizeDecode@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.sizeDecode
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.sizeDecode({"vin":"1C4AJWAG9HL738132"})
GET /tires/size-decode
curl 'https://apis.vin/tires/size-decode?vin=1C4AJWAG9HL738132'

wearPredict

tires.wearPredict · GET /tires/wear-predict · gate none · sandbox · answers TiresWearPredict@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.wearPredict
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.wearPredict()
GET /tires/wear-predict
curl 'https://apis.vin/tires/wear-predict'

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-16T14:50:10.067Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresWearPredict@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "remainingLifePct": 60,
    "failureRiskPct": 11,
    "horizonMiles": 12000
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "remainingLifePct": 60,
    "failureRiskPct": 11,
    "horizonMiles": 12000
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

tires.quote · POST /tires/quote · gate offer · sandbox · answers TiresQuote@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.quoteRequested@1 · Tires.quoted@1.

the SDK — tires.quote
import { tires } from 'apis.vin'

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

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:18.203Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresQuote@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "quoteId": "DQ-1",
    "serviceType": "repair",
    "costCents": 54183,
    "priceCents": 70438,
    "marginCents": 16255,
    "currency": "USD",
    "etaMinDays": 1,
    "etaMaxDays": 5,
    "rush": false,
    "expires": "2026-08-17T00:00:00.000Z"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "quoteId": "DQ-1",
    "serviceType": "repair",
    "costCents": 54183,
    "priceCents": 70438,
    "marginCents": 16255,
    "currency": "USD",
    "etaMinDays": 1,
    "etaMaxDays": 5,
    "rush": false,
    "expires": "2026-08-17T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "field-services-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

price

tires.price · GET /tires/price · gate none · sandbox · answers TiresPrice@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.price
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.price({"vin":"1C4AJWAG9HL738132"})
GET /tires/price
curl 'https://apis.vin/tires/price?vin=1C4AJWAG9HL738132'

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:18.197Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresPrice@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "price",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 14,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "price",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 14,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

priceLookup

tires.priceLookup · GET /tires/price-lookup · gate none · sandbox · answers TiresPriceLookup@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.priceLookup
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.priceLookup({"vin":"1C4AJWAG9HL738132"})
GET /tires/price-lookup
curl 'https://apis.vin/tires/price-lookup?vin=1C4AJWAG9HL738132'

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:18.203Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresPriceLookup@1",
  "value": {
    "size": "225/45R17",
    "brandTier": "standard",
    "unitPriceCents": 19761,
    "currency": "USD",
    "inStock": true
  },
  "evidence": {
    "size": "225/45R17",
    "brandTier": "standard",
    "unitPriceCents": 19761,
    "currency": "USD",
    "inStock": true
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "services-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rebate

tires.rebate · POST /tires/rebate · gate offer · sandbox · answers TiresRebate@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.rebateRequested@1 · Tires.rebated@1.

the SDK — tires.rebate
import { tires } from 'apis.vin'

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

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:18.225Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRebate@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "rebate": {
      "id": "RB-a0ab4efe",
      "status": "issued",
      "amountCents": 4400,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "rebate": {
      "id": "RB-a0ab4efe",
      "status": "issued",
      "amountCents": 4400,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

disposeFee

tires.disposeFee · POST /tires/dispose-fee · gate offer · sandbox · answers TiresDisposeFee@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.disposeFeeCharged@1 · Tires.disposeFeeRequested@1.

the SDK — tires.disposeFee
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.disposeFee({"vin":"1C4AJWAG9HL738132"})
POST /tires/dispose-fee
curl -X POST https://apis.vin/tires/dispose-fee \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4AJWAG9HL738132"}'

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresDisposeFee@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "fee": {
      "kind": "disposal",
      "amountCents": 1800,
      "currency": "USD",
      "status": "charged"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "fee": {
      "kind": "disposal",
      "amountCents": 1800,
      "currency": "USD",
      "status": "charged"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

order

tires.order · POST /tires/order · gate offer · sandbox · answers TiresOrder@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsOrder.placed@1 · ServiceOrder.settled@1 · Tires.completed@1 · Tires.dispatched@1 · Tires.ordered@1.

the SDK — tires.order
import { tires } from 'apis.vin'

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

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:18.191Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresOrder@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-4e577eeb",
      "operation": "order",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-4e577eeb",
      "operation": "order",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

schedule

tires.schedule · POST /tires/schedule · gate offer · sandbox · answers TiresSchedule@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.scheduleRequested@1 · Tires.scheduled@1.

the SDK — tires.schedule
import { tires } from 'apis.vin'

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

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:18.228Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresSchedule@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-ec341fa8",
      "operation": "schedule",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-ec341fa8",
      "operation": "schedule",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

tires.pay · POST /tires/pay · gate offer · sandbox · answers TiresPay@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsServiceOrder.settled@1 · Tires.charged@1 · Tires.paid@1 · Tires.payFailed@1 · Tires.payRequested@1.

the SDK — tires.pay
import { tires } from 'apis.vin'

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

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:18.192Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresPay@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-5e6c8a65",
      "status": "settled",
      "amountCents": 44000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-5e6c8a65",
      "status": "settled",
      "amountCents": 44000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

buy

tires.buy · POST /tires/buy · gate offer · sandbox · answers TiresBuy@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.purchased@1.

the SDK — tires.buy
import { tires } from 'apis.vin'

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

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:18.164Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresBuy@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-00fa825f",
      "item": "tire set",
      "status": "placed",
      "amountCents": 88000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-00fa825f",
      "item": "tire set",
      "status": "placed",
      "amountCents": 88000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

refund

tires.refund · POST /tires/refund · gate offer · sandbox · answers TiresRefund@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.refundFailed@1 · Tires.refundRequested@1 · Tires.refunded@1.

the SDK — tires.refund
import { tires } from 'apis.vin'

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

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:18.228Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRefund@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "refund": {
      "id": "RF-61d784db",
      "status": "issued",
      "amountCents": 8800,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "refund": {
      "id": "RF-61d784db",
      "status": "issued",
      "amountCents": 8800,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

roadHazardBuy

tires.roadHazardBuy · POST /tires/road-hazard-buy · gate offer · sandbox · answers TiresRoadHazardBuy@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.roadHazardBought@1 · Tires.roadHazardBuyRequested@1.

the SDK — tires.roadHazardBuy
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.roadHazardBuy({"vin":"1C4AJWAG9HL738132"})
POST /tires/road-hazard-buy
curl -X POST https://apis.vin/tires/road-hazard-buy \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4AJWAG9HL738132"}'

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:18.228Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRoadHazardBuy@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-aadb3d7d",
      "item": "road-hazard coverage",
      "status": "placed",
      "amountCents": 8800,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-aadb3d7d",
      "item": "road-hazard coverage",
      "status": "placed",
      "amountCents": 8800,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

repair

tires.repair · POST /tires/repair · gate offer · sandbox · answers TiresRepair@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.repaired@1.

the SDK — tires.repair
import { tires } from 'apis.vin'

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

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:18.228Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRepair@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-f5a06090",
      "operation": "repair",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-f5a06090",
      "operation": "repair",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

inspect

tires.inspect · POST /tires/inspect · gate offer · sandbox · answers TiresInspect@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.inspected@1.

the SDK — tires.inspect
import { tires } from 'apis.vin'

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

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresInspect@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "findings": []
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "findings": []
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rotate

tires.rotate · POST /tires/rotate · gate offer · sandbox · answers TiresRotate@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.rotateRequested@1 · Tires.rotated@1.

the SDK — tires.rotate
import { tires } from 'apis.vin'

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

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:18.228Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRotate@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-958418ce",
      "operation": "rotate",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-958418ce",
      "operation": "rotate",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

warrantyClaim

tires.warrantyClaim · POST /tires/warranty-claim · gate offer · sandbox · answers TiresWarrantyClaim@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.warrantyClaimFailed@1 · Tires.warrantyClaimFiled@1 · Tires.warrantyClaimRequested@1 · WarrantyClaim.approved@1 · WarrantyClaim.reimbursed@1.

the SDK — tires.warrantyClaim
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.warrantyClaim({"vin":"1C4AJWAG9HL738132"})
POST /tires/warranty-claim
curl -X POST https://apis.vin/tires/warranty-claim \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4AJWAG9HL738132"}'

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:18.242Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresWarrantyClaim@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "warranty": "expired",
    "claim": {
      "id": "WC-f8b3bfeb",
      "decision": "denied",
      "reason": "coverage-expired"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "warranty": "expired",
    "claim": {
      "id": "WC-f8b3bfeb",
      "decision": "denied",
      "reason": "coverage-expired"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Lifecycle & state

dispose

tires.dispose · POST /tires/dispose · gate offer · sandbox · answers TiresDispose@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.disposeRequested@1 · Tires.disposed@1.

the SDK — tires.dispose
import { tires } from 'apis.vin'

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

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresDispose@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-facdd48a",
      "operation": "dispose",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-facdd48a",
      "operation": "dispose",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

align

tires.align · POST /tires/align · gate offer · sandbox · answers TiresAlign@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.alignFailed@1 · Tires.alignRequested@1 · Tires.aligned@1.

the SDK — tires.align
import { tires } from 'apis.vin'

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

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:18.153Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresAlign@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-a440fcd2",
      "operation": "align",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-a440fcd2",
      "operation": "align",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

balance

tires.balance · POST /tires/balance · gate offer · sandbox · answers TiresBalance@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.balanceFailed@1 · Tires.balanceRequested@1 · Tires.balanced@1.

the SDK — tires.balance
import { tires } from 'apis.vin'

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

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:18.163Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresBalance@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-8af4db5f",
      "operation": "balance",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-8af4db5f",
      "operation": "balance",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

fits

tires.fits · GET /tires/fits · gate none · sandbox · answers TiresFits@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.fits
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.fits({"vin":"1C4AJWAG9HL738132"})
GET /tires/fits
curl 'https://apis.vin/tires/fits?vin=1C4AJWAG9HL738132'

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresFits@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "fits",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 12,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "fits",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 12,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

installBundle

tires.installBundle · POST /tires/install-bundle · gate offer · sandbox · answers TiresInstallBundle@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.installBundleRequested@1 · Tires.installBundled@1.

the SDK — tires.installBundle
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.installBundle({"vin":"1C4AJWAG9HL738132"})
POST /tires/install-bundle
curl -X POST https://apis.vin/tires/install-bundle \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4AJWAG9HL738132"}'

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresInstallBundle@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-dcd3340c",
      "operation": "installBundle",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-dcd3340c",
      "operation": "installBundle",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

interchange

tires.interchange · GET /tires/interchange · gate none · sandbox · answers TiresInterchange@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.interchange
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.interchange()
GET /tires/interchange
curl 'https://apis.vin/tires/interchange'

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-16T14:50:10.066Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresInterchange@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "interchange",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 24,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "interchange",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 24,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

mount

tires.mount · POST /tires/mount · gate offer · sandbox · answers TiresMount@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.mountFailed@1 · Tires.mountRequested@1 · Tires.mounted@1.

the SDK — tires.mount
import { tires } from 'apis.vin'

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

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:18.190Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresMount@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-99eb56ee",
      "operation": "mount",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-99eb56ee",
      "operation": "mount",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

patch

tires.patch · POST /tires/patch · gate offer · sandbox · answers TiresPatch@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.patchRequested@1 · Tires.patched@1.

the SDK — tires.patch
import { tires } from 'apis.vin'

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

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:18.192Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresPatch@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-46e2467d",
      "operation": "patch",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-46e2467d",
      "operation": "patch",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

plug

tires.plug · POST /tires/plug · gate offer · sandbox · answers TiresPlug@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.plugRequested@1 · Tires.plugged@1.

the SDK — tires.plug
import { tires } from 'apis.vin'

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

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:18.193Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresPlug@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-811c1335",
      "operation": "plug",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-811c1335",
      "operation": "plug",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rating

tires.rating · GET /tires/rating · gate none · sandbox · answers TiresRating@1

FieldTypeRequiredNotes
vinstringno

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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 — tires.rating
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.rating({"vin":"1C4AJWAG9HL738132"})
GET /tires/rating
curl 'https://apis.vin/tires/rating?vin=1C4AJWAG9HL738132'

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:18.203Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresRating@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "rating",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 7,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "lookup": "rating",
    "component": "tire set",
    "size": "225/60R17",
    "loadIndex": 99,
    "speedRating": "H",
    "treadDepthNewMm": "8.7",
    "tpms": "direct",
    "fits": true,
    "inStock": 7,
    "unitPriceCents": 22000,
    "currency": "USD",
    "partSource": "aftermarket"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

seasonalSwap

tires.seasonalSwap · POST /tires/seasonal-swap · gate offer · sandbox · answers TiresSeasonalSwap@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.seasonalSwapped@1 · Tires.seasonalSwapRequested@1.

the SDK — tires.seasonalSwap
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.seasonalSwap({"vin":"1C4AJWAG9HL738132"})
POST /tires/seasonal-swap
curl -X POST https://apis.vin/tires/seasonal-swap \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4AJWAG9HL738132"}'

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:18.228Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresSeasonalSwap@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-f3f65d4a",
      "operation": "seasonalSwap",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-f3f65d4a",
      "operation": "seasonalSwap",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

store

tires.store · POST /tires/store · gate offer · sandbox · answers TiresStore@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.storeRequested@1 · Tires.stored@1.

the SDK — tires.store
import { tires } from 'apis.vin'

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

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:18.235Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresStore@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-87171a92",
      "operation": "store",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-87171a92",
      "operation": "store",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

tpmsRelearn

tires.tpmsRelearn · POST /tires/tpms-relearn · gate offer · sandbox · answers TiresTpmsRelearn@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.

Doortires.vin serves this noun on its two routes: / (the landing) · /1C4AJWAG9HL738132 (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.

EmitsTires.tpmsRelearnRequested@1 · Tires.tpmsRelearned@1.

the SDK — tires.tpmsRelearn
import { tires } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tires.tpmsRelearn({"vin":"1C4AJWAG9HL738132"})
POST /tires/tpms-relearn
curl -X POST https://apis.vin/tires/tpms-relearn \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4AJWAG9HL738132"}'

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:18.236Z · HTTP 200
{
  "type": "OK",
  "answers": "TiresTpmsRelearn@1",
  "value": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-5efc025a",
      "operation": "tpmsRelearn",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1C4AJWAG9HL738132",
    "system": "tires",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "workOrder": {
      "id": "WO-5efc025a",
      "operation": "tpmsRelearn",
      "status": "scheduled",
      "costCents": 44000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wear-systems-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

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.

RepairOrder

Modeled

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

Tires · Class model

Tires · State machine

Tires · Sequence


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