exhaust
The exhaust noun — identity, lifecycle, events, and every capability as an anchored section: 23 capabilities, 0 live, 23 sandbox, 0 declared.
exhaust is one of the estate's 317 automotive nouns — a job a car needs done. It carries 23 capabilities: 0 live, 23 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | exhaust |
| Pillar | Services (facets: 8 data · 9 services · 6 commerce) |
| Capabilities | 23 — 0 live · 23 sandbox · 0 declared |
| Entities | RepairOrder |
| Doors | aggregator.vin |
| SDK | Vin.exhaust.* from apis.vin |
| Address | /catalog/exhaust#{action} — the anchor IS the wire name minus exhaust. |
Events
The vocabulary this noun can append to the record — 35 past-tense, versioned event types, each linked to the capability that emits it:
Exhaust.catReplaceFailed@1— emitted bycatReplaceExhaust.catReplaceRequested@1— emitted bycatReplaceExhaust.catReplaced@1— emitted bycatReplaceExhaust.charged@1— emitted bypayExhaust.completed@1— emitted byorderExhaust.diagnosed@1— emitted bydiagnoseExhaust.dispatched@1— emitted byorderExhaust.estimateRequested@1— emitted byestimateExhaust.estimated@1— emitted byestimateExhaust.inspectRequested@1— emitted byinspectExhaust.inspected@1— emitted byinspectExhaust.mufflerReplaceFailed@1— emitted bymufflerReplaceExhaust.mufflerReplaceRequested@1— emitted bymufflerReplaceExhaust.mufflerReplaced@1— emitted bymufflerReplaceExhaust.muffplerReplaced@1— emitted bymufflerReplaceExhaust.o2ReplaceFailed@1— emitted byo2ReplaceExhaust.o2ReplaceRequested@1— emitted byo2ReplaceExhaust.o2Replaced@1— emitted byo2ReplaceExhaust.ordered@1— emitted byorderExhaust.paid@1— emitted bypayExhaust.payFailed@1— emitted bypayExhaust.payRequested@1— emitted bypayExhaust.quoted@1— emitted byquoteExhaust.refunded@1— emitted byrefundExhaust.repaired@1— emitted byrepairExhaust.replaced@1— emitted byreplaceExhaust.sensorReplaced@1— emitted bysensorReplaceExhaust.warrantyClaimFiled@1— emitted bywarrantyClaimExhaust.weldRepairFailed@1— emitted byweldRepairExhaust.weldRepairRequested@1— emitted byweldRepairExhaust.weldRepaired@1— emitted byweldRepairOrder.placed@1— emitted byorderServiceOrder.settled@1— emitted byorder·payWarrantyClaim.approved@1— emitted bywarrantyClaimWarrantyClaim.reimbursed@1— emitted bywarrantyClaim
Discover & read
decode
exhaust.decode · GET /exhausts/decode · gate none · sandbox · answers ExhaustDecode@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.decode({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/decode?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustDecode@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"component": "exhaust system",
"configuration": "single",
"catalyst": "three-way",
"o2Sensors": 2,
"ratedBackpressurePsi": 1.5
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"component": "exhaust system",
"configuration": "single",
"catalyst": "three-way",
"o2Sensors": 2,
"ratedBackpressurePsi": 1.5
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}spec
exhaust.spec · GET /exhausts/spec · gate none · sandbox · answers ExhaustSpec@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.spec({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/spec?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustSpec@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"component": "exhaust system",
"configuration": "single",
"catalyst": "three-way",
"o2Sensors": 2,
"ratedBackpressurePsi": 1.5
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"component": "exhaust system",
"configuration": "single",
"catalyst": "three-way",
"o2Sensors": 2,
"ratedBackpressurePsi": 1.5
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}history
exhaust.history · GET /exhausts/history · gate none · sandbox · answers ExhaustHistory@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.history({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/history?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustHistory@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"events": [
{
"date": "2024-03-14",
"kind": "maintenance",
"description": "scheduled exhaust system service"
}
],
"count": 1
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"events": [
{
"date": "2024-03-14",
"kind": "maintenance",
"description": "scheduled exhaust system service"
}
],
"count": 1
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
exhaust.status · GET /exhausts/status · gate none · sandbox · answers ExhaustStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.status({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/status?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustStatus@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}healthCheck
exhaust.healthCheck · GET /exhausts/health-check · gate none · sandbox · answers ExhaustHealthCheck@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.healthCheck({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/health-check?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustHealthCheck@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}backpressureRead
exhaust.backpressureRead · GET /exhausts/backpressure-read · gate none · sandbox · answers ExhaustBackpressureRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.backpressureRead({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/backpressure-read?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustBackpressureRead@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"measurement": "backpressureRead",
"reading": 52,
"unit": "index",
"withinSpec": true
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"measurement": "backpressureRead",
"reading": 52,
"unit": "index",
"withinSpec": true
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}catEfficiencyRead
exhaust.catEfficiencyRead · GET /exhausts/cat-efficiency-read · gate none · sandbox · answers ExhaustCatEfficiencyRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.catEfficiencyRead({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/cat-efficiency-read?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustCatEfficiencyRead@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"measurement": "catEfficiencyRead",
"reading": 57,
"unit": "index",
"withinSpec": true
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"measurement": "catEfficiencyRead",
"reading": 57,
"unit": "index",
"withinSpec": true
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
exhaust.quote · POST /exhausts/quote · gate offer · sandbox · answers ExhaustQuote@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.quoted@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.quote({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/quote \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustQuote@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-c07d7609",
"laborCents": 33550,
"partsCents": 27450,
"subtotalCents": 61000,
"partSource": "aftermarket",
"currency": "USD"
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-c07d7609",
"laborCents": 33550,
"partsCents": 27450,
"subtotalCents": 61000,
"partSource": "aftermarket",
"currency": "USD"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}estimate
exhaust.estimate · POST /exhausts/estimate · gate offer · sandbox · answers ExhaustEstimate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.estimateRequested@1 · Exhaust.estimated@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.estimate({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/estimate \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustEstimate@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-38ed64e5",
"laborCents": 33550,
"partsCents": 27450,
"subtotalCents": 61000,
"partSource": "aftermarket",
"currency": "USD"
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-38ed64e5",
"laborCents": 33550,
"partsCents": 27450,
"subtotalCents": 61000,
"partSource": "aftermarket",
"currency": "USD"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
order
exhaust.order · POST /exhausts/order · gate offer · sandbox · answers ExhaustOrder@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.completed@1 · Exhaust.dispatched@1 · Exhaust.ordered@1 · Order.placed@1 · ServiceOrder.settled@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.order({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/order \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustOrder@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-ffd81d51",
"operation": "order",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-ffd81d51",
"operation": "order",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
exhaust.pay · POST /exhausts/pay · gate offer · sandbox · answers ExhaustPay@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.charged@1 · Exhaust.paid@1 · Exhaust.payFailed@1 · Exhaust.payRequested@1 · ServiceOrder.settled@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.pay({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/pay \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustPay@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-c7537c37",
"status": "settled",
"amountCents": 30500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-c7537c37",
"status": "settled",
"amountCents": 30500,
"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
exhaust.refund · POST /exhausts/refund · gate offer · sandbox · answers ExhaustRefund@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.refunded@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.refund({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/refund \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustRefund@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"refund": {
"id": "RF-56a03565",
"status": "issued",
"amountCents": 6100,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"refund": {
"id": "RF-56a03565",
"status": "issued",
"amountCents": 6100,
"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
exhaust.repair · POST /exhausts/repair · gate offer · sandbox · answers ExhaustRepair@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.repaired@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.repair({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/repair \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustRepair@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-c1073056",
"operation": "repair",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-c1073056",
"operation": "repair",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}replace
exhaust.replace · POST /exhausts/replace · gate offer · sandbox · answers ExhaustReplace@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.replaced@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.replace({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/replace \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustReplace@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-a6a6eb39",
"operation": "replace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-a6a6eb39",
"operation": "replace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}diagnose
exhaust.diagnose · POST /exhausts/diagnose · gate offer · sandbox · answers ExhaustDiagnose@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.diagnosed@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.diagnose({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/diagnose \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustDiagnose@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"faults": [],
"faultCount": 0
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"faults": [],
"faultCount": 0
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}inspect
exhaust.inspect · POST /exhausts/inspect · gate offer · sandbox · answers ExhaustInspect@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.inspectRequested@1 · Exhaust.inspected@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.inspect({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/inspect \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustInspect@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}weldRepair
exhaust.weldRepair · POST /exhausts/weld-repair · gate offer · sandbox · answers ExhaustWeldRepair@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.weldRepairFailed@1 · Exhaust.weldRepairRequested@1 · Exhaust.weldRepaired@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.weldRepair({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/weld-repair \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustWeldRepair@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-f057b0e6",
"operation": "weldRepair",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-f057b0e6",
"operation": "weldRepair",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}catReplace
exhaust.catReplace · POST /exhausts/cat-replace · gate offer · sandbox · answers ExhaustCatReplace@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.catReplaceFailed@1 · Exhaust.catReplaceRequested@1 · Exhaust.catReplaced@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.catReplace({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/cat-replace \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustCatReplace@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-9f92c89f",
"operation": "catReplace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-9f92c89f",
"operation": "catReplace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}mufflerReplace
exhaust.mufflerReplace · POST /exhausts/muffler-replace · gate offer · sandbox · answers ExhaustMufflerReplace@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.mufflerReplaceFailed@1 · Exhaust.mufflerReplaceRequested@1 · Exhaust.mufflerReplaced@1 · Exhaust.muffplerReplaced@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.mufflerReplace({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/muffler-replace \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustMufflerReplace@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-dbf8f854",
"operation": "mufflerReplace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-dbf8f854",
"operation": "mufflerReplace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}o2Replace
exhaust.o2Replace · POST /exhausts/o2-replace · gate offer · sandbox · answers ExhaustO2Replace@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.o2ReplaceFailed@1 · Exhaust.o2ReplaceRequested@1 · Exhaust.o2Replaced@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.o2Replace({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/o2-replace \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustO2Replace@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-ebc1a472",
"operation": "o2Replace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-ebc1a472",
"operation": "o2Replace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}sensorReplace
exhaust.sensorReplace · POST /exhausts/sensor-replace · gate offer · sandbox · answers ExhaustSensorReplace@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.sensorReplaced@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.sensorReplace({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/sensor-replace \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustSensorReplace@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-6975bf7f",
"operation": "sensorReplace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-6975bf7f",
"operation": "sensorReplace",
"status": "scheduled",
"costCents": 30500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
warrantyClaim
exhaust.warrantyClaim · POST /exhausts/warranty-claim · gate offer · sandbox · answers ExhaustWarrantyClaim@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
Emits — Exhaust.warrantyClaimFiled@1 · WarrantyClaim.approved@1 · WarrantyClaim.reimbursed@1.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.warrantyClaim({"vin":"1C6HJTAG0LL175906"})curl -X POST https://apis.vin/exhausts/warranty-claim \
-H 'content-type: application/json' \
-d '{"vin":"1C6HJTAG0LL175906"}'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.
{
"type": "OK",
"answers": "ExhaustWarrantyClaim@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"warranty": "expired",
"claim": {
"id": "WC-674e6dd1",
"decision": "denied",
"reason": "coverage-expired"
}
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"warranty": "expired",
"claim": {
"id": "WC-674e6dd1",
"decision": "denied",
"reason": "coverage-expired"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}warrantyCheck
exhaust.warrantyCheck · GET /exhausts/warranty-check · gate none · sandbox · answers ExhaustWarrantyCheck@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAG0LL175906 (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.
import { exhaust } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await exhaust.warrantyCheck({"vin":"1C6HJTAG0LL175906"})curl 'https://apis.vin/exhausts/warranty-check?vin=1C6HJTAG0LL175906'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.
{
"type": "OK",
"answers": "ExhaustWarrantyCheck@1",
"value": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"warranty": "expired",
"void": false,
"coverageMilesLeft": 0
},
"evidence": {
"vin": "1C6HJTAG0LL175906",
"system": "exhaust",
"asOf": "2026-08-10",
"warranty": "expired",
"void": false,
"coverageMilesLeft": 0
},
"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
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
evBattery
The evBattery noun — identity, lifecycle, events, and every capability as an anchored section: 25 capabilities, 0 live, 25 sandbox, 0 declared.
extraction
The extraction noun — identity, lifecycle, events, and every capability as an anchored section: 1 capability, 0 live, 1 sandbox, 0 declared.