docs.vin

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

Nounexhaust
PillarServices (facets: 8 data · 9 services · 6 commerce)
Capabilities23 — 0 live · 23 sandbox · 0 declared
EntitiesRepairOrder
Doorsaggregator.vin
SDKVin.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:

Discover & read

decode

exhaust.decode · GET /exhausts/decode · gate none · sandbox · answers ExhaustDecode@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.decode
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"})
GET /exhausts/decode
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.

receipt · executed 2026-08-17T12:42:11.329Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.spec
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"})
GET /exhausts/spec
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.

receipt · executed 2026-08-17T12:42:11.363Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.history
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"})
GET /exhausts/history
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.

receipt · executed 2026-08-17T12:42:11.343Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.status
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"})
GET /exhausts/status
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.

receipt · executed 2026-08-17T12:42:11.371Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.healthCheck
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"})
GET /exhausts/health-check
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.

receipt · executed 2026-08-17T12:42:11.339Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.backpressureRead
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"})
GET /exhausts/backpressure-read
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.

receipt · executed 2026-08-17T12:42:11.301Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.catEfficiencyRead
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"})
GET /exhausts/cat-efficiency-read
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.

receipt · executed 2026-08-17T12:42:11.325Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.quoted@1.

the SDK — exhaust.quote
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"})
POST /exhausts/quote
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.

receipt · executed 2026-08-17T12:42:11.347Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.estimateRequested@1 · Exhaust.estimated@1.

the SDK — exhaust.estimate
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"})
POST /exhausts/estimate
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.

receipt · executed 2026-08-17T12:42:11.338Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.completed@1 · Exhaust.dispatched@1 · Exhaust.ordered@1 · Order.placed@1 · ServiceOrder.settled@1.

the SDK — exhaust.order
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"})
POST /exhausts/order
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.

receipt · executed 2026-08-17T12:42:11.345Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.charged@1 · Exhaust.paid@1 · Exhaust.payFailed@1 · Exhaust.payRequested@1 · ServiceOrder.settled@1.

the SDK — exhaust.pay
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"})
POST /exhausts/pay
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.

receipt · executed 2026-08-17T12:42:11.346Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.refunded@1.

the SDK — exhaust.refund
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"})
POST /exhausts/refund
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.

receipt · executed 2026-08-17T12:42:11.347Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.repaired@1.

the SDK — exhaust.repair
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"})
POST /exhausts/repair
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.

receipt · executed 2026-08-17T12:42:11.347Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.replaced@1.

the SDK — exhaust.replace
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"})
POST /exhausts/replace
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.

receipt · executed 2026-08-17T12:42:11.356Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.diagnosed@1.

the SDK — exhaust.diagnose
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"})
POST /exhausts/diagnose
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.

receipt · executed 2026-08-17T12:42:11.337Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.inspectRequested@1 · Exhaust.inspected@1.

the SDK — exhaust.inspect
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"})
POST /exhausts/inspect
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.

receipt · executed 2026-08-17T12:42:11.344Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.weldRepairFailed@1 · Exhaust.weldRepairRequested@1 · Exhaust.weldRepaired@1.

the SDK — exhaust.weldRepair
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"})
POST /exhausts/weld-repair
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.

receipt · executed 2026-08-17T12:42:11.381Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.catReplaceFailed@1 · Exhaust.catReplaceRequested@1 · Exhaust.catReplaced@1.

the SDK — exhaust.catReplace
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"})
POST /exhausts/cat-replace
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.

receipt · executed 2026-08-17T12:42:11.328Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.mufflerReplaceFailed@1 · Exhaust.mufflerReplaceRequested@1 · Exhaust.mufflerReplaced@1 · Exhaust.muffplerReplaced@1.

the SDK — exhaust.mufflerReplace
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"})
POST /exhausts/muffler-replace
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.

receipt · executed 2026-08-17T12:42:11.344Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.o2ReplaceFailed@1 · Exhaust.o2ReplaceRequested@1 · Exhaust.o2Replaced@1.

the SDK — exhaust.o2Replace
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"})
POST /exhausts/o2-replace
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.

receipt · executed 2026-08-17T12:42:11.344Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.sensorReplaced@1.

the SDK — exhaust.sensorReplace
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"})
POST /exhausts/sensor-replace
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.

receipt · executed 2026-08-17T12:42:11.361Z · HTTP 200
{
  "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

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) · /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.

EmitsExhaust.warrantyClaimFiled@1 · WarrantyClaim.approved@1 · WarrantyClaim.reimbursed@1.

the SDK — exhaust.warrantyClaim
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"})
POST /exhausts/warranty-claim
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.

receipt · executed 2026-08-17T12:42:11.381Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — exhaust.warrantyCheck
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"})
GET /exhausts/warranty-check
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.

receipt · executed 2026-08-17T12:42:11.376Z · HTTP 200
{
  "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.