docs.vin

wheels

The wheels noun — identity, lifecycle, events, and every capability as an anchored section: 16 capabilities, 1 live, 15 sandbox, 0 declared.

wheels is one of the estate's 317 automotive nouns — a job a car needs done. It carries 16 capabilities: 1 live, 15 sandbox, 0 declared · doors aggregator.vin.

Identity

Nounwheels
PillarData (facets: 7 data · 5 services · 4 commerce)
Capabilities16 — 1 live · 15 sandbox · 0 declared
EntitiesRepairOrder
Doorsaggregator.vin
SDKVin.wheels.* from apis.vin
Address/catalog/wheels#{action} — the anchor IS the wire name minus wheels.

Events

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

Discover & read

spec

wheels.spec · GET /wheels/spec · gate none · live · answers WheelsSpec@1

FieldTypeRequiredNotes
vinstringno

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

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

availability

wheels.availability · GET /wheels/availability · gate none · sandbox · answers WheelsAvailability@1

FieldTypeRequiredNotes
vinstringno

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

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

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:19.061Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsAvailability@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "availability": {
      "inStock": true,
      "quantity": 6,
      "etaDate": "2026-08-13"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "availability": {
      "inStock": true,
      "quantity": 6,
      "etaDate": "2026-08-13"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

boltPatternLookup

wheels.boltPatternLookup · GET /wheels/bolt-pattern-lookup · gate none · sandbox · answers WheelsBoltPatternLookup@1

FieldTypeRequiredNotes
vinstringno

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

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

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:19.061Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsBoltPatternLookup@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "boltPattern": {
      "pattern": "5x120",
      "lugCount": 5,
      "threadPitch": "M14x1.5"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "boltPattern": {
      "pattern": "5x120",
      "lugCount": 5,
      "threadPitch": "M14x1.5"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

offsetDecode

wheels.offsetDecode · GET /wheels/offset-decode · gate none · sandbox · answers WheelsOffsetDecode@1

FieldTypeRequiredNotes
vinstringno

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

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

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:19.068Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsOffsetDecode@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "offset": {
      "marking": "ET44",
      "offsetMm": 44,
      "kind": "positive"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "offset": {
      "marking": "ET44",
      "offsetMm": 44,
      "kind": "positive"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

wheels.quote · POST /wheels/quote · gate offer · sandbox · answers WheelsQuote@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.quoteRequested@1 · Wheels.quoted@1.

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

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

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:19.161Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsQuote@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "quote": {
      "id": "WQ-efaca412",
      "amountCents": 18500,
      "kind": "repair",
      "currency": "USD",
      "status": "extended"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "quote": {
      "id": "WQ-efaca412",
      "amountCents": 18500,
      "kind": "repair",
      "currency": "USD",
      "status": "extended"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

order

wheels.order · POST /wheels/order · gate offer · sandbox · answers WheelsOrder@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) · /1GAZGPF71S1106530 (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 · Wheels.completed@1 · Wheels.dispatched@1 · Wheels.ordered@1.

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

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

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:19.068Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsOrder@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-9fa83846",
      "item": "wheel",
      "status": "placed",
      "amountCents": 34000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-9fa83846",
      "item": "wheel",
      "status": "placed",
      "amountCents": 34000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

wheels.pay · POST /wheels/pay · gate offer · sandbox · answers WheelsPay@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) · /1GAZGPF71S1106530 (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 · Wheels.charged@1 · Wheels.paid@1 · Wheels.payFailed@1 · Wheels.payRequested@1.

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

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

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:19.068Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsPay@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-12bc2508",
      "status": "settled",
      "amountCents": 18500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-12bc2508",
      "status": "settled",
      "amountCents": 18500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

refund

wheels.refund · POST /wheels/refund · gate offer · sandbox · answers WheelsRefund@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.refunded@1.

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

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

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:19.161Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsRefund@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "refund": {
      "id": "RFD-139cf33c",
      "status": "issued",
      "amountCents": 18500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "refund": {
      "id": "RFD-139cf33c",
      "status": "issued",
      "amountCents": 18500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

repair

wheels.repair · POST /wheels/repair · gate offer · sandbox · answers WheelsRepair@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.repairFailed@1 · Wheels.repairRequested@1 · Wheels.repaired@1.

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

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

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:19.161Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsRepair@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "repair": {
      "status": "nothing-to-repair",
      "verdict": "pass"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "repair": {
      "status": "nothing-to-repair",
      "verdict": "pass"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

condition

wheels.condition · GET /wheels/condition · gate none · sandbox · answers WheelsCondition@1

FieldTypeRequiredNotes
vinstringno

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

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

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:19.061Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsCondition@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "findings": []
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "verdict": "pass",
    "findings": []
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

fits

wheels.fits · GET /wheels/fits · gate none · sandbox · answers WheelsFits@1

FieldTypeRequiredNotes
vinstringno

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

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

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:19.064Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsFits@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "fitment": {
      "fits": true,
      "diameterIn": 17,
      "boltPattern": "5x120"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "fitment": {
      "fits": true,
      "diameterIn": 17,
      "boltPattern": "5x120"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

interchange

wheels.interchange · GET /wheels/interchange · gate none · sandbox · answers WheelsInterchange@1

No input — this capability takes no request body.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wheels.interchange()
GET /wheels/interchange
curl 'https://apis.vin/wheels/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.093Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsInterchange@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "interchange": [
      {
        "id": "WHL-65f3c1e4",
        "boltPattern": "6x139.7",
        "diameterIn": 17
      },
      {
        "id": "WHL-66f3c377",
        "boltPattern": "6x139.7",
        "diameterIn": 17
      }
    ]
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "interchange": [
      {
        "id": "WHL-65f3c1e4",
        "boltPattern": "6x139.7",
        "diameterIn": 17
      },
      {
        "id": "WHL-66f3c377",
        "boltPattern": "6x139.7",
        "diameterIn": 17
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

mount

wheels.mount · POST /wheels/mount · gate offer · sandbox · answers WheelsMount@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.mountFailed@1 · Wheels.mountRequested@1 · Wheels.mounted@1.

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

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

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:19.068Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsMount@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "mount": {
      "status": "mounted",
      "torqueFtLb": 99,
      "verdict": "pass"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "mount": {
      "status": "mounted",
      "torqueFtLb": 99,
      "verdict": "pass"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

refinish

wheels.refinish · POST /wheels/refinish · gate offer · sandbox · answers WheelsRefinish@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.refinishRequested@1 · Wheels.refinished@1.

the SDK — wheels.refinish
import { wheels } from 'apis.vin'

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

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:19.161Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsRefinish@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "refinish": {
      "status": "nothing-to-repair",
      "verdict": "pass"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "refinish": {
      "status": "nothing-to-repair",
      "verdict": "pass"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

straighten

wheels.straighten · POST /wheels/straighten · gate offer · sandbox · answers WheelsStraighten@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.straightenRequested@1 · Wheels.straightened@1.

the SDK — wheels.straighten
import { wheels } from 'apis.vin'

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

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:19.162Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsStraighten@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "straightening": {
      "status": "nothing-to-repair",
      "verdict": "pass"
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "straightening": {
      "status": "nothing-to-repair",
      "verdict": "pass"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

torque

wheels.torque · POST /wheels/torque · gate offer · sandbox · answers WheelsTorque@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) · /1GAZGPF71S1106530 (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.

EmitsWheels.torqueRequested@1 · Wheels.torqued@1.

the SDK — wheels.torque
import { wheels } from 'apis.vin'

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

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:19.162Z · HTTP 200
{
  "type": "OK",
  "answers": "WheelsTorque@1",
  "value": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "torque": {
      "torqueFtLb": 99,
      "sequence": "star",
      "recheckMiles": 50
    }
  },
  "evidence": {
    "vin": "1GAZGPF71S1106530",
    "noun": "wheels",
    "asOf": "2026-08-10",
    "torque": {
      "torqueFtLb": 99,
      "sequence": "star",
      "recheckMiles": 50
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-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.

Wheels · Class model

Wheels · State machine

Wheels · Sequence


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