tsb
The tsb noun — identity, lifecycle, events, and every capability as an anchored section: 9 capabilities, 0 live, 9 sandbox, 0 declared.
tsb is one of the estate's 317 automotive nouns — a job a car needs done. It carries 9 capabilities: 0 live, 9 sandbox, 0 declared · doors tsb.vin · aggregator.vin.
Identity
| Noun | tsb |
| Pillar | Data (facets: 5 data · 2 services · 2 commerce) |
| Capabilities | 9 — 0 live · 9 sandbox · 0 declared |
| Entities | RepairOrder |
| Doors | aggregator.vin · tsb.vin |
| SDK | Vin.tsb.* from apis.vin |
| Address | /catalog/tsb#{action} — the anchor IS the wire name minus tsb. |
Events
The vocabulary this noun can append to the record — 4 past-tense, versioned event types, each linked to the capability that emits it:
Tsb.applied@1— emitted byapplyTsb.performed@1— emitted byperformTsb.subscribed@1— emitted bysubscribeTsb.warrantyBilled@1— emitted bywarrantyBill
Discover & read
lookup
tsb.lookup · GET /tsbs/lookup · gate none · sandbox · answers TsbLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.lookup({"vin":"1FTFW1RG7LFB41048"})curl 'https://apis.vin/tsbs/lookup?vin=1FTFW1RG7LFB41048'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": "TsbLookup@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"bulletins": [
{
"id": "TSB-7cd4184b",
"subject": "electrical service bulletin"
},
{
"id": "TSB-7bd416b8",
"subject": "electrical service bulletin"
},
{
"id": "TSB-7ed41b71",
"subject": "electrical service bulletin"
}
]
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"bulletins": [
{
"id": "TSB-7cd4184b",
"subject": "electrical service bulletin"
},
{
"id": "TSB-7bd416b8",
"subject": "electrical service bulletin"
},
{
"id": "TSB-7ed41b71",
"subject": "electrical service bulletin"
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}decode
tsb.decode · GET /tsbs/decode · gate none · sandbox · answers TsbDecode@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.decode({"vin":"1FTFW1RG7LFB41048"})curl 'https://apis.vin/tsbs/decode?vin=1FTFW1RG7LFB41048'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": "TsbDecode@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"decoded": {
"bulletinId": "TSB-7cd4184b",
"subject": "electrical service bulletin",
"code": "P0562",
"system": "electrical"
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"decoded": {
"bulletinId": "TSB-7cd4184b",
"subject": "electrical service bulletin",
"code": "P0562",
"system": "electrical"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}applicableCheck
tsb.applicableCheck · GET /tsbs/applicable-check · gate none · sandbox · answers TsbApplicableCheck@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.applicableCheck({"vin":"1FTFW1RG7LFB41048"})curl 'https://apis.vin/tsbs/applicable-check?vin=1FTFW1RG7LFB41048'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": "TsbApplicableCheck@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"applicability": {
"applicable": true,
"count": 3,
"basis": "bulletin-board",
"bulletinIds": [
"TSB-7cd4184b",
"TSB-7bd416b8",
"TSB-7ed41b71"
]
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"applicability": {
"applicable": true,
"count": 3,
"basis": "bulletin-board",
"bulletinIds": [
"TSB-7cd4184b",
"TSB-7bd416b8",
"TSB-7ed41b71"
]
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}symptomMatch
tsb.symptomMatch · GET /tsbs/symptom-match · gate none · sandbox · answers TsbSymptomMatch@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.symptomMatch({"vin":"1FTFW1RG7LFB41048"})curl 'https://apis.vin/tsbs/symptom-match?vin=1FTFW1RG7LFB41048'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": "TsbSymptomMatch@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"match": {
"system": "electrical",
"code": "P0562",
"bulletinIds": [
"TSB-7cd4184b",
"TSB-7bd416b8",
"TSB-7ed41b71"
]
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"match": {
"system": "electrical",
"code": "P0562",
"bulletinIds": [
"TSB-7cd4184b",
"TSB-7bd416b8",
"TSB-7ed41b71"
]
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
apply
tsb.apply · POST /tsbs/apply · gate offer · sandbox · answers TsbApply@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 — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 — Tsb.applied@1.
import { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.apply({"vin":"1FTFW1RG7LFB41048"})curl -X POST https://apis.vin/tsbs/apply \
-H 'content-type: application/json' \
-d '{"vin":"1FTFW1RG7LFB41048"}'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": "TsbApply@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"work": {
"operation": "apply",
"status": "in-progress",
"bulletinId": "TSB-7cd4184b"
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"work": {
"operation": "apply",
"status": "in-progress",
"bulletinId": "TSB-7cd4184b"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}subscribe
tsb.subscribe · POST /tsbs/subscribe · gate offer · sandbox · answers TsbSubscribe@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 — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 — Tsb.subscribed@1.
import { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.subscribe({"vin":"1FTFW1RG7LFB41048"})curl -X POST https://apis.vin/tsbs/subscribe \
-H 'content-type: application/json' \
-d '{"vin":"1FTFW1RG7LFB41048"}'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": "TsbSubscribe@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"subscription": {
"id": "TSBSUB-9cf9e7ed",
"status": "active",
"scope": "vin"
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"subscription": {
"id": "TSBSUB-9cf9e7ed",
"status": "active",
"scope": "vin"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
warrantyBill
tsb.warrantyBill · POST /tsbs/warranty-bill · gate offer · sandbox · answers TsbWarrantyBill@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 — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 — Tsb.warrantyBilled@1.
import { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.warrantyBill({"vin":"1FTFW1RG7LFB41048"})curl -X POST https://apis.vin/tsbs/warranty-bill \
-H 'content-type: application/json' \
-d '{"vin":"1FTFW1RG7LFB41048"}'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": "TsbWarrantyBill@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"bill": {
"id": "TSBWB-bab12381",
"billable": true,
"status": "billable-to-warranty",
"warranty": "active",
"rate": {
"status": "no-remedy-rate-posted"
}
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"bill": {
"id": "TSBWB-bab12381",
"billable": true,
"status": "billable-to-warranty",
"warranty": "active",
"rate": {
"status": "no-remedy-rate-posted"
}
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
perform
tsb.perform · POST /tsbs/perform · gate offer · sandbox · answers TsbPerform@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 — tsb.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 — Tsb.performed@1.
import { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.perform({"vin":"1FTFW1RG7LFB41048"})curl -X POST https://apis.vin/tsbs/perform \
-H 'content-type: application/json' \
-d '{"vin":"1FTFW1RG7LFB41048"}'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": "TsbPerform@1",
"value": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"work": {
"operation": "perform",
"status": "in-progress",
"bulletinId": "TSB-7cd4184b"
}
},
"evidence": {
"vin": "1FTFW1RG7LFB41048",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-4d81fb51",
"concerns": [
{
"system": "electrical",
"verdict": "fail"
},
{
"system": "brakes",
"verdict": "attention"
}
],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
},
{
"line": 2,
"kind": "part",
"description": "replacement part",
"amountCents": 17233
}
],
"technicianId": "TECH-45cb9acd",
"estimateId": "EST-0920f34a",
"status": "InProgress",
"work": {
"operation": "perform",
"status": "in-progress",
"bulletinId": "TSB-7cd4184b"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
dtcCorrelate
tsb.dtcCorrelate · GET /tsbs/dtc-correlate · gate none · sandbox · answers TsbDtcCorrelate@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FTFW1RG7LFB41048 (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 { tsb } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.dtcCorrelate()curl 'https://apis.vin/tsbs/dtc-correlate'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": "TsbDtcCorrelate@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-1f2a3746",
"concerns": [],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
}
],
"technicianId": "TECH-3f68cc26",
"estimateId": "EST-feef6ee9",
"status": "Open",
"correlation": {
"codes": [],
"status": "no-stored-codes"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "tsb",
"asOf": "2026-08-10",
"id": "RO-1f2a3746",
"concerns": [],
"payType": "warranty",
"lines": [
{
"line": 1,
"kind": "labor",
"description": "labor operation",
"amountCents": 16500
}
],
"technicianId": "TECH-3f68cc26",
"estimateId": "EST-feef6ee9",
"status": "Open",
"correlation": {
"codes": [],
"status": "no-stored-codes"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "bulletin-board-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Data model
The record shape behind this noun — one entity, each property an evidence field. See the whole estate model on the data model page.
RepairOrder
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. One diagram, rendered from the estate model.
Tsb · Class model
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.