courtesyTransport
The courtesyTransport noun — identity, lifecycle, events, and every capability as an anchored section: 12 capabilities, 0 live, 12 sandbox, 0 declared.
courtesyTransport is one of the estate's 317 automotive nouns — a job a car needs done. It carries 12 capabilities: 0 live, 12 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | courtesyTransport |
| Pillar | Services (facets: 3 data · 5 services · 4 commerce) |
| Capabilities | 12 — 0 live · 12 sandbox · 0 declared |
| Entities | Rental |
| Doors | aggregator.vin |
| SDK | Vin.courtesyTransport.* from apis.vin |
| Address | /catalog/courtesyTransport#{action} — the anchor IS the wire name minus courtesyTransport. |
Events
The vocabulary this noun can append to the record — 19 past-tense, versioned event types, each linked to the capability that emits it:
CourtesyTransport.assignLoanerRequested@1— emitted byassignLoanerCourtesyTransport.billRequested@1— emitted bybillCourtesyTransport.billed@1— emitted bybillCourtesyTransport.bookRideshareRequested@1— emitted bybookRideshareCourtesyTransport.dispatchShuttleRequested@1— emitted bydispatchShuttleCourtesyTransport.loanerAssigned@1— emitted byassignLoanerCourtesyTransport.paid@1— emitted bypayCourtesyTransport.payFailed@1— emitted bypayCourtesyTransport.payRequested@1— emitted bypayCourtesyTransport.quoteRequested@1— emitted byquoteCourtesyTransport.quoted@1— emitted byquoteCourtesyTransport.reserveRequested@1— emitted byreserveCourtesyTransport.reserved@1— emitted byreserveCourtesyTransport.returnRequested@1— emitted byreturnCourtesyTransport.returned@1— emitted byreturnCourtesyTransport.rideshareBooked@1— emitted bybookRideshareCourtesyTransport.shuttleDispatched@1— emitted bydispatchShuttleCourtesyTransport.warrantyCoverRequested@1— emitted bywarrantyCoverCourtesyTransport.warrantyCovered@1— emitted bywarrantyCover
Discover & read
status
courtesyTransport.status · GET /courtesy-transports/status · gate none · sandbox · answers CourtesyTransportStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT6W3LU2SWG29932 (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 { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.status({"vin":"1FT6W3LU2SWG29932"})curl 'https://apis.vin/courtesy-transports/status?vin=1FT6W3LU2SWG29932'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": "CourtesyTransportStatus@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"desk": {
"kind": "retail-rental",
"eligible": false,
"stint": {
"id": "RNT-189dae51",
"position": "Quoted"
}
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"desk": {
"kind": "retail-rental",
"eligible": false,
"stint": {
"id": "RNT-189dae51",
"position": "Quoted"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}availability
courtesyTransport.availability · GET /courtesy-transports/availability · gate none · sandbox · answers CourtesyTransportAvailability@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT6W3LU2SWG29932 (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 { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.availability({"vin":"1FT6W3LU2SWG29932"})curl 'https://apis.vin/courtesy-transports/availability?vin=1FT6W3LU2SWG29932'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": "CourtesyTransportAvailability@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"availability": {
"loaner": {
"available": true,
"kind": "retail-rental",
"dayRateCents": 11049,
"currency": "USD"
},
"shuttle": {
"available": true,
"feeCents": 0
},
"rideshare": {
"available": false,
"reason": "no-open-repair-order"
}
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"availability": {
"loaner": {
"available": true,
"kind": "retail-rental",
"dayRateCents": 11049,
"currency": "USD"
},
"shuttle": {
"available": true,
"feeCents": 0
},
"rideshare": {
"available": false,
"reason": "no-open-repair-order"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}eligibility
courtesyTransport.eligibility · GET /courtesy-transports/eligibility · gate none · sandbox · answers CourtesyTransportEligibility@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT6W3LU2SWG29932 (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 { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.eligibility({"vin":"1FT6W3LU2SWG29932"})curl 'https://apis.vin/courtesy-transports/eligibility?vin=1FT6W3LU2SWG29932'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": "CourtesyTransportEligibility@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"eligibility": {
"eligible": false,
"kind": "retail-rental",
"reason": "no-open-repair-order"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"eligibility": {
"eligible": false,
"kind": "retail-rental",
"reason": "no-open-repair-order"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
courtesyTransport.quote · POST /courtesy-transports/quote · gate offer · sandbox · answers CourtesyTransportQuote@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.quoteRequested@1 · CourtesyTransport.quoted@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.quote({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/quote \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportQuote@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"quote": {
"id": "RNT-189dae51",
"kind": "retail-rental",
"status": "not-eligible-no-open-repair-order",
"loanerDayRateCents": 11049,
"shuttleFeeCents": 0,
"rideshareCreditCents": 2500,
"depositCents": 20000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"quote": {
"id": "RNT-189dae51",
"kind": "retail-rental",
"status": "not-eligible-no-open-repair-order",
"loanerDayRateCents": 11049,
"shuttleFeeCents": 0,
"rideshareCreditCents": 2500,
"depositCents": 20000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
reserve
courtesyTransport.reserve · POST /courtesy-transports/reserve · gate offer · sandbox · answers CourtesyTransportReserve@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.reserveRequested@1 · CourtesyTransport.reserved@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.reserve({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/reserve \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportReserve@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"reservation": {
"status": "reserved",
"id": "RNT-189dae51",
"renter": "Ava Good"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"reservation": {
"status": "reserved",
"id": "RNT-189dae51",
"renter": "Ava Good"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
courtesyTransport.pay · POST /courtesy-transports/pay · gate offer · sandbox · answers CourtesyTransportPay@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.paid@1 · CourtesyTransport.payFailed@1 · CourtesyTransport.payRequested@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.pay({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/pay \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportPay@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"payment": {
"id": "PAY-2f5d8dfc",
"status": "settled",
"amountCents": 22098,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"payment": {
"id": "PAY-2f5d8dfc",
"status": "settled",
"amountCents": 22098,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}bill
courtesyTransport.bill · POST /courtesy-transports/bill · gate offer · sandbox · answers CourtesyTransportBill@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.billRequested@1 · CourtesyTransport.billed@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.bill({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/bill \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportBill@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"bill": {
"id": "CTB-907aa753",
"days": 2,
"dayRateCents": 11049,
"totalCents": 22098,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"bill": {
"id": "CTB-907aa753",
"days": 2,
"dayRateCents": 11049,
"totalCents": 22098,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
return
courtesyTransport.return · POST /courtesy-transports/return · gate offer · sandbox · answers CourtesyTransportReturn@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.returnRequested@1 · CourtesyTransport.returned@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.return({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/return \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportReturn@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"checkIn": {
"status": "not-checked-out",
"id": "RNT-189dae51",
"position": "Quoted"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"checkIn": {
"status": "not-checked-out",
"id": "RNT-189dae51",
"position": "Quoted"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
assignLoaner
courtesyTransport.assignLoaner · POST /courtesy-transports/assign-loaner · gate offer · sandbox · answers CourtesyTransportAssignLoaner@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.assignLoanerRequested@1 · CourtesyTransport.loanerAssigned@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.assignLoaner({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/assign-loaner \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportAssignLoaner@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"assignment": {
"status": "not-eligible-no-open-repair-order",
"kind": "retail-rental",
"basis": "wave-14-courtesy-story"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"assignment": {
"status": "not-eligible-no-open-repair-order",
"kind": "retail-rental",
"basis": "wave-14-courtesy-story"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}bookRideshare
courtesyTransport.bookRideshare · POST /courtesy-transports/book-rideshare · gate offer · sandbox · answers CourtesyTransportBookRideshare@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.bookRideshareRequested@1 · CourtesyTransport.rideshareBooked@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.bookRideshare({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/book-rideshare \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportBookRideshare@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"ride": {
"status": "not-eligible-no-open-repair-order",
"kind": "retail-rental"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"ride": {
"status": "not-eligible-no-open-repair-order",
"kind": "retail-rental"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}dispatchShuttle
courtesyTransport.dispatchShuttle · POST /courtesy-transports/dispatch-shuttle · gate offer · sandbox · answers CourtesyTransportDispatchShuttle@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.dispatchShuttleRequested@1 · CourtesyTransport.shuttleDispatched@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.dispatchShuttle({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/dispatch-shuttle \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportDispatchShuttle@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"shuttle": {
"status": "dispatched",
"unit": "courtesy-shuttle",
"appointmentId": "APT-dc3bb465",
"standing": "booked",
"etaMinutes": 19,
"feeCents": 0
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"shuttle": {
"status": "dispatched",
"unit": "courtesy-shuttle",
"appointmentId": "APT-dc3bb465",
"standing": "booked",
"etaMinutes": 19,
"feeCents": 0
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}warrantyCover
courtesyTransport.warrantyCover · POST /courtesy-transports/warranty-cover · gate offer · sandbox · answers CourtesyTransportWarrantyCover@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) · /1FT6W3LU2SWG29932 (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 — CourtesyTransport.warrantyCoverRequested@1 · CourtesyTransport.warrantyCovered@1.
import { courtesyTransport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await courtesyTransport.warrantyCover({"vin":"1FT6W3LU2SWG29932"})curl -X POST https://apis.vin/courtesy-transports/warranty-cover \
-H 'content-type: application/json' \
-d '{"vin":"1FT6W3LU2SWG29932"}'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": "CourtesyTransportWarrantyCover@1",
"value": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"coverage": {
"covered": true,
"modes": [
"loaner",
"shuttle",
"rideshare-credit"
],
"basis": "wave-6-claim-law"
}
},
"evidence": {
"vin": "1FT6W3LU2SWG29932",
"noun": "courtesyTransport",
"asOf": "2026-08-10",
"roId": "RO-4b6cb0e9",
"coverage": {
"covered": true,
"modes": [
"loaner",
"shuttle",
"rideshare-credit"
],
"basis": "wave-6-claim-law"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "courtesy-desk-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.
Rental
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
cooling
The cooling noun — identity, lifecycle, events, and every capability as an anchored section: 25 capabilities, 0 live, 25 sandbox, 0 declared.
creditApplication
The creditApplication noun — identity, lifecycle, events, and every capability as an anchored section: 14 capabilities, 0 live, 14 sandbox, 0 declared.