arbitration
The arbitration noun — identity, lifecycle, events, and every capability as an anchored section: 14 capabilities, 0 live, 14 sandbox, 0 declared.
arbitration is one of the estate's 317 automotive nouns — a job a car needs done. It carries 14 capabilities: 0 live, 14 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | arbitration |
| Pillar | Services (facets: 4 data · 6 services · 4 commerce) |
| Capabilities | 14 — 0 live · 14 sandbox · 0 declared |
| Entities | Arbitration |
| Doors | aggregator.vin |
| SDK | Vin.arbitration.* from apis.vin |
| Address | /catalog/arbitration#{action} — the anchor IS the wire name minus arbitration. |
Lifecycle
Arbitration — ArbitrationFSM: 4 states, 3 transitions — Filed · UnderReview · Resolved · Denied. Each transition is a past-tense event on the record.
Events
The vocabulary this noun can append to the record — 12 past-tense, versioned event types, each linked to the capability that emits it:
Arbitration.appealed@1— emitted byappealArbitration.creditIssued@1— emitted bycreditArbitration.failed@1— emitted bycredit·refund·repairAllowance·settleArbitration.filed@1— emitted byfileArbitration.mediated@1— emitted bymediateArbitration.refunded@1— emitted byrefundArbitration.repairAllowanceIssued@1— emitted byrepairAllowanceArbitration.requested@1— emitted byfileArbitration.resolved@1— emitted byresolveArbitration.reviewed@1— emitted byreviewArbitration.ruled@1— emitted byruleArbitration.settled@1— emitted bysettle
Discover & read
read
arbitration.read · GET /arbitrations/read · gate none · sandbox · answers ArbitrationRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.read({"vin":"KL4CJ2SM5GB607431"})curl 'https://apis.vin/arbitrations/read?vin=KL4CJ2SM5GB607431'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": "ArbitrationRead@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"claim": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"claim": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
arbitration.status · GET /arbitrations/status · gate none · sandbox · answers ArbitrationStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.status({"vin":"KL4CJ2SM5GB607431"})curl 'https://apis.vin/arbitrations/status?vin=KL4CJ2SM5GB607431'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": "ArbitrationStatus@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"claim": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"claim": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
file
arbitration.file · POST /arbitrations/file · gate offer · sandbox · answers ArbitrationFile@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.filed@1 · Arbitration.requested@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.file({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/file \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationFile@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"filing": {
"status": "filed",
"id": "ARB-3447788f",
"saleId": "SL-8bab660d",
"basis": "undisclosed-condition",
"windowDays": 7
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"filing": {
"status": "filed",
"id": "ARB-3447788f",
"saleId": "SL-8bab660d",
"basis": "undisclosed-condition",
"windowDays": 7
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
settle
arbitration.settle · POST /arbitrations/settle · gate offer · sandbox · answers ArbitrationSettle@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.failed@1 · Arbitration.settled@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.settle({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/settle \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationSettle@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"settlement": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"settlement": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refund
arbitration.refund · POST /arbitrations/refund · gate offer · sandbox · answers ArbitrationRefund@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.failed@1 · Arbitration.refunded@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.refund({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/refund \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationRefund@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"refund": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"refund": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
appeal
arbitration.appeal · POST /arbitrations/appeal · gate offer · sandbox · answers ArbitrationAppeal@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.appealed@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.appeal({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/appeal \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationAppeal@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"appeal": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"appeal": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
credit
arbitration.credit · POST /arbitrations/credit · gate offer · sandbox · answers ArbitrationCredit@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.creditIssued@1 · Arbitration.failed@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.credit({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/credit \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationCredit@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"credit": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"credit": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}evidence
arbitration.evidence · GET /arbitrations/evidence · gate key · sandbox · answers ArbitrationEvidence@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.evidence({"vin":"KL4CJ2SM5GB607431"})curl 'https://apis.vin/arbitrations/evidence?vin=KL4CJ2SM5GB607431'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": "ArbitrationEvidence@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"evidence": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"evidence": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}mediate
arbitration.mediate · POST /arbitrations/mediate · gate offer · sandbox · answers ArbitrationMediate@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.mediated@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.mediate({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/mediate \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationMediate@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"mediation": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"mediation": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}policy
arbitration.policy · GET /arbitrations/policy · gate none · sandbox · answers ArbitrationPolicy@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.policy({"vin":"KL4CJ2SM5GB607431"})curl 'https://apis.vin/arbitrations/policy?vin=KL4CJ2SM5GB607431'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": "ArbitrationPolicy@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"policy": {
"windowDays": 7,
"grounds": [
"transit-damage",
"undisclosed-condition"
],
"forum": "lane-arbitration",
"feeCents": 0,
"currency": "USD"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"policy": {
"windowDays": 7,
"grounds": [
"transit-damage",
"undisclosed-condition"
],
"forum": "lane-arbitration",
"feeCents": 0,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}repairAllowance
arbitration.repairAllowance · POST /arbitrations/repair-allowance · gate offer · sandbox · answers ArbitrationRepairAllowance@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.failed@1 · Arbitration.repairAllowanceIssued@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.repairAllowance({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/repair-allowance \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationRepairAllowance@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"allowance": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"allowance": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}resolve
arbitration.resolve · POST /arbitrations/resolve · gate offer · sandbox · answers ArbitrationResolve@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.resolved@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.resolve({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/resolve \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationResolve@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"resolution": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"resolution": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}review
arbitration.review · POST /arbitrations/review · gate offer · sandbox · answers ArbitrationReview@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.reviewed@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.review({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/review \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationReview@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"review": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"review": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}rule
arbitration.rule · POST /arbitrations/rule · gate offer · sandbox · answers ArbitrationRule@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) · /KL4CJ2SM5GB607431 (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 — Arbitration.ruled@1.
import { arbitration } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await arbitration.rule({"vin":"KL4CJ2SM5GB607431"})curl -X POST https://apis.vin/arbitrations/rule \
-H 'content-type: application/json' \
-d '{"vin":"KL4CJ2SM5GB607431"}'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": "ArbitrationRule@1",
"value": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"ruling": {
"status": "no-arbitration-on-file"
}
},
"evidence": {
"vin": "KL4CJ2SM5GB607431",
"noun": "arbitration",
"asOf": "2026-08-10",
"ruling": {
"status": "no-arbitration-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-aftermath-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.
Arbitration
Schema
| Property | Type | Notes |
|---|---|---|
id | id | arb_ |
saleId | ref→Sale | — |
vin | string | — |
filedBy | ref→Party | — |
claim | string | — |
status | ArbitrationFSM | — |
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
arbitration | sale | *:1 | disputes |
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.