auction
The auction noun — identity, lifecycle, events, and every capability as an anchored section: 23 capabilities, 0 live, 23 sandbox, 0 declared.
auction 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 · wholesale.vin · auction.vin.
Identity
| Noun | auction |
| Pillar | Services (facets: 7 data · 9 services · 7 commerce) |
| Capabilities | 23 — 0 live · 23 sandbox · 0 declared |
| Entities | Auction |
| Doors | aggregator.vin · auction.vin · wholesale.vin |
| SDK | Vin.auction.* from apis.vin |
| Address | /catalog/auction#{action} — the anchor IS the wire name minus auction. |
Lifecycle
Auction — AuctionFSM: 9 states, 11 transitions — Scheduled · Open · Running · IfBid · NoSale · Sold · Settled · Disbursed · Closed. Each transition is a past-tense event on the record.
Events
The vocabulary this noun can append to the record — 24 past-tense, versioned event types, each linked to the capability that emits it:
Arbitration.filed@1— emitted bybidAuction.autoBid@1— emitted byautobidAuction.bidPlaced@1— emitted bybidAuction.buyItNowExercised@1— emitted bybuyItNowAuction.buyerFeeAssessed@1— emitted bybuyerFeeAuction.closed@1— emitted bycloseAuction.disbursed@1— emitted bydisburseAuction.failed@1— emitted bybuyerFee·disburse·sellerFee·settleAuction.ifBidSent@1— emitted byifBidAuction.laneRun@1— emitted byrunAuction.noSaled@1— emitted bynoSaleAuction.opened@1— emitted byopenAuction.reRun@1— emitted byreRunAuction.registered@1— emitted byregisterAuction.sellerFeeAssessed@1— emitted bysellerFeeAuction.settled@1— emitted bysettleAuction.watched@1— emitted bywatchBid.lost@1— emitted bybidBid.passed@1— emitted bybidBid.placed@1— emitted bybidBid.won@1— emitted bybidProxyBid.capped@1— emitted byproxyBidProxyBid.set@1— emitted byproxyBidVehicle.bought@1— emitted bybid·proxyBid
Discover & read
lookup
auction.lookup · GET /auctions/lookup · gate none · sandbox · answers AuctionLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.lookup({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/lookup?vin=5N1AZ2DJXRC126527'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": "AuctionLookup@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"runRef": "RUN-04KBRHX",
"laneRef": "LANE-07Y3UDW",
"grade": "3.0",
"announcements": [
"structural-none"
],
"asOf": "2026-08-10"
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"runRef": "RUN-04KBRHX",
"laneRef": "LANE-07Y3UDW",
"grade": "3.0",
"announcements": [
"structural-none"
],
"asOf": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "market-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}read
auction.read · GET /auctions/read · gate none · sandbox · answers AuctionRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.read({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/read?vin=5N1AZ2DJXRC126527'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": "AuctionRead@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"auction": {
"id": "CSN-eb2cf49e",
"position": "Scheduled",
"lane": 4,
"run": 67
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"auction": {
"id": "CSN-eb2cf49e",
"position": "Scheduled",
"lane": 4,
"run": 67
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}results
auction.results · GET /auctions/results · gate key · sandbox · answers AuctionResults@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.results({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/results?vin=5N1AZ2DJXRC126527'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": "AuctionResults@1",
"value": {
"laneRef": "LANE-07Y3UDW",
"vin": "5N1AZ2DJXRC126527",
"state": "sold",
"salePrice": {
"amount": "23651.00",
"currency": "USD"
},
"bidCount": 0,
"asOf": "2026-08-10"
},
"evidence": {
"laneRef": "LANE-07Y3UDW",
"vin": "5N1AZ2DJXRC126527",
"state": "sold",
"salePrice": {
"amount": "23651.00",
"currency": "USD"
},
"bidCount": 0,
"asOf": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "market-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}runList
auction.runList · GET /auctions/run-list · gate key · sandbox · answers AuctionRunList@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.runList({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/run-list?vin=5N1AZ2DJXRC126527'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": "AuctionRunList@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"runList": {
"consignments": 9,
"byPosition": {
"Scheduled": 1,
"Open": 1,
"Running": 1,
"IfBid": 1,
"NoSale": 1,
"Sold": 1,
"Settled": 1,
"Disbursed": 1,
"Closed": 1
}
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"runList": {
"consignments": 9,
"byPosition": {
"Scheduled": 1,
"Open": 1,
"Running": 1,
"IfBid": 1,
"NoSale": 1,
"Sold": 1,
"Settled": 1,
"Disbursed": 1,
"Closed": 1
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}laneStatus
auction.laneStatus · GET /auctions/lane-status · gate key · sandbox · answers AuctionLaneStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.laneStatus({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/lane-status?vin=5N1AZ2DJXRC126527'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": "AuctionLaneStatus@1",
"value": {
"laneRef": "LANE-07Y3UDW",
"state": "closed",
"runsRemaining": 0,
"currentRunRef": null,
"asOf": "2026-08-10"
},
"evidence": {
"laneRef": "LANE-07Y3UDW",
"state": "closed",
"runsRemaining": 0,
"currentRunRef": null,
"asOf": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "market-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
bid
auction.bid · POST /auctions/bid · gate offer · sandbox · answers WholesaleBid@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | yes | — |
venue | string | yes | abstract venue id from auction.registry — NEVER a single named source |
amount | string | yes | — |
connection | string | no | dealer entitlement/standing via C7 |
authority | 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.
Delegated calls require a typed Mandate — { ceiling, perAction, expires, tripwires }; the ceiling is a field, not a conversation.
Door — wholesale.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 · Auction.bidPlaced@1 · Bid.lost@1 · Bid.passed@1 · Bid.placed@1 · Bid.won@1 · Vehicle.bought@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.bid({"vin":"5N1AZ2DJXRC126527","venue":"venue","amount":"amount"})curl -X POST https://apis.vin/auctions/bid \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527","venue":"venue","amount":"amount"}'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": "WholesaleBid@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"lotId": "AV-LOT-9C4AA421",
"bidRef": "AV-BID-1",
"accepted": true,
"currentHigh": {
"amount": "100000",
"currency": "USD"
},
"highBidderRef": "AV-BIDDER-SANDBOX",
"leading": true,
"bidType": "hard",
"bidAmount": {
"amount": "100000",
"currency": "USD"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"lotId": "AV-LOT-9C4AA421",
"bidRef": "AV-BID-1",
"accepted": true,
"currentHigh": {
"amount": "100000",
"currency": "USD"
},
"highBidderRef": "AV-BIDDER-SANDBOX",
"leading": true,
"bidType": "hard",
"bidAmount": {
"amount": "100000",
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-venue-sandbox"
},
"events": [
"Auction.bidPlaced@1"
],
"meter": {
"charged": "0.00",
"posted": false
},
"connect": {
"type": "OFFER",
"kind": "connect",
"reason": "CONNECTION_ABSENT",
"portClass": "auction-market",
"state": "absent",
"url": "https://integrates.vin/connect/auction-market",
"message": "auction.bid is live via connection — certified, connect to activate: complete the auction-market link ceremony at https://integrates.vin/connect/auction-market. The credential vault (auth.vin) holds the token, and the same call answers simulated:false — activation is the token, never a deploy."
}
}buyerFee
auction.buyerFee · POST /auctions/buyer-fee · gate offer · sandbox · answers AuctionBuyerFee@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.buyerFeeAssessed@1 · Auction.failed@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.buyerFee({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/buyer-fee \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionBuyerFee@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"fee": {
"side": "buyer",
"amountCents": 55500,
"currency": "USD",
"basis": "hammer"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"fee": {
"side": "buyer",
"amountCents": 55500,
"currency": "USD",
"basis": "hammer"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}sellerFee
auction.sellerFee · POST /auctions/seller-fee · gate offer · sandbox · answers AuctionSellerFee@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.failed@1 · Auction.sellerFeeAssessed@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.sellerFee({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/seller-fee \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionSellerFee@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"fee": {
"side": "seller",
"amountCents": 44400,
"currency": "USD",
"basis": "hammer"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"fee": {
"side": "seller",
"amountCents": 44400,
"currency": "USD",
"basis": "hammer"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}autobid
auction.autobid · POST /auctions/autobid · gate key · sandbox · answers AuctionAutobid@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.autoBid@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.autobid()curl -X POST https://apis.vin/auctions/autobid \
-H 'content-type: application/json' \
-d '{}'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": "AuctionAutobid@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "auction",
"asOf": "2026-08-10",
"autobid": {
"status": "no-consignment-on-file"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "auction",
"asOf": "2026-08-10",
"autobid": {
"status": "no-consignment-on-file"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}ifBid
auction.ifBid · POST /auctions/if-bid · gate offer · sandbox · answers AuctionIfBid@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.ifBidSent@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.ifBid({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/if-bid \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionIfBid@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"ifBid": {
"status": "no-if-bid",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"ifBid": {
"status": "no-if-bid",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}proxyBid
auction.proxyBid · POST /auctions/proxy-bid · gate offer · sandbox · answers ProxyBid@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | yes | — |
venue | string | yes | — |
ceiling | string | yes | max/auto-bid |
authority | string | yes | — |
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.
Delegated calls require a typed Mandate — { ceiling, perAction, expires, tripwires }; the ceiling is a field, not a conversation.
Door — wholesale.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — ProxyBid.capped@1 · ProxyBid.set@1 · Vehicle.bought@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.proxyBid({"vin":"5N1AZ2DJXRC126527","venue":"venue","ceiling":"ceiling","authority":"authority"})curl -X POST https://apis.vin/auctions/proxy-bid \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527","venue":"venue","ceiling":"ceiling","authority":"authority"}'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": "ProxyBid@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"lotId": "AV-LOT-9C4AA421",
"bidRef": "AV-BID-1",
"accepted": true,
"currentHigh": {
"amount": "100000",
"currency": "USD"
},
"highBidderRef": "AV-BIDDER-SANDBOX",
"leading": true,
"bidType": "proxy",
"ceiling": {
"amount": "100000",
"currency": "USD"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"lotId": "AV-LOT-9C4AA421",
"bidRef": "AV-BID-1",
"accepted": true,
"currentHigh": {
"amount": "100000",
"currency": "USD"
},
"highBidderRef": "AV-BIDDER-SANDBOX",
"leading": true,
"bidType": "proxy",
"ceiling": {
"amount": "100000",
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-venue-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
},
"connect": {
"type": "OFFER",
"kind": "connect",
"reason": "CONNECTION_ABSENT",
"portClass": "auction-market",
"state": "absent",
"url": "https://integrates.vin/connect/auction-market",
"message": "auction.proxyBid is live via connection — certified, connect to activate: complete the auction-market link ceremony at https://integrates.vin/connect/auction-market. The credential vault (auth.vin) holds the token, and the same call answers simulated:false — activation is the token, never a deploy."
}
}Apply & book
schedule
auction.schedule · GET /auctions/schedule · gate none · sandbox · answers AuctionSchedule@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.schedule({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/schedule?vin=5N1AZ2DJXRC126527'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": "AuctionSchedule@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"schedule": {
"status": "already-scheduled",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"schedule": {
"status": "already-scheduled",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}register
auction.register · POST /auctions/register · gate offer · sandbox · answers AuctionRegister@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.registered@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.register({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/register \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionRegister@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"registration": {
"status": "registered",
"bidder": "Ava Good",
"bidderNumber": 314
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"registration": {
"status": "registered",
"bidder": "Ava Good",
"bidderNumber": 314
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}open
auction.open · POST /auctions/open · gate offer · sandbox · answers AuctionOpen@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.opened@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.open({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/open \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionOpen@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"opening": {
"status": "opened",
"id": "CSN-eb2cf49e"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"opening": {
"status": "opened",
"id": "CSN-eb2cf49e"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
disburse
auction.disburse · POST /auctions/disburse · gate offer · sandbox · answers AuctionDisburse@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.disbursed@1 · Auction.failed@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.disburse({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/disburse \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionDisburse@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"disbursement": {
"status": "not-yet-settled",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"disbursement": {
"status": "not-yet-settled",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}settle
auction.settle · POST /auctions/settle · gate offer · sandbox · answers AuctionSettle@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.failed@1 · Auction.settled@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.settle({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/settle \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionSettle@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"settlement": {
"status": "not-sold",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"settlement": {
"status": "not-sold",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
close
auction.close · POST /auctions/close · gate offer · sandbox · answers AuctionClose@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.closed@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.close({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/close \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionClose@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"closing": {
"status": "not-yet-disbursed",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"closing": {
"status": "not-yet-disbursed",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
buyItNow
auction.buyItNow · POST /auctions/buy-it-now · gate key · sandbox · answers AuctionBuyItNow@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.buyItNowExercised@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.buyItNow()curl -X POST https://apis.vin/auctions/buy-it-now \
-H 'content-type: application/json' \
-d '{}'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": "BLOCKED",
"reason": "INVALID_VIN",
"position": 9,
"message": "the supplied VIN is not a valid 17-char VIN (check-digit seat is position 9)",
"received": "",
"events": [],
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "sandbox"
}
}marketIndex
auction.marketIndex · GET /auctions/market-index · gate key · sandbox · answers AuctionMarketIndex@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.marketIndex({"vin":"5N1AZ2DJXRC126527"})curl 'https://apis.vin/auctions/market-index?vin=5N1AZ2DJXRC126527'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": "AuctionMarketIndex@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"segment": "compact-suv",
"wholesaleBasis": {
"low": {
"amount": "2226174",
"currency": "USD"
},
"average": {
"amount": "2343342",
"currency": "USD"
},
"high": {
"amount": "2460509",
"currency": "USD"
}
},
"adjustments": [
{
"factor": "mileage",
"amountBp": -734
},
{
"factor": "region",
"amountBp": 0
},
{
"factor": "segment-demand",
"amountBp": 101
}
],
"sampleSize": 44,
"region": "national",
"asOf": "2026-08-10"
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"segment": "compact-suv",
"wholesaleBasis": {
"low": {
"amount": "2226174",
"currency": "USD"
},
"average": {
"amount": "2343342",
"currency": "USD"
},
"high": {
"amount": "2460509",
"currency": "USD"
}
},
"adjustments": [
{
"factor": "mileage",
"amountBp": -734
},
{
"factor": "region",
"amountBp": 0
},
{
"factor": "segment-demand",
"amountBp": 101
}
],
"sampleSize": 44,
"region": "national",
"asOf": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "auction-venue-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}noSale
auction.noSale · POST /auctions/no-sale · gate offer · sandbox · answers AuctionNoSale@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.noSaled@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.noSale({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/no-sale \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionNoSale@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"noSale": {
"status": "not-a-no-sale",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"noSale": {
"status": "not-a-no-sale",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reRun
auction.reRun · POST /auctions/re-run · gate offer · sandbox · answers AuctionReRun@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.reRun@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.reRun({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/re-run \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionReRun@1",
"value": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"reRun": {
"status": "no-grounds-to-rerun",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"evidence": {
"vin": "5N1AZ2DJXRC126527",
"noun": "auction",
"asOf": "2026-08-10",
"reRun": {
"status": "no-grounds-to-rerun",
"id": "CSN-eb2cf49e",
"position": "Scheduled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}run
auction.run · POST /auctions/run · gate offer · sandbox · answers AuctionRun@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 — auction.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.laneRun@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.run({"vin":"5N1AZ2DJXRC126527"})curl -X POST https://apis.vin/auctions/run \
-H 'content-type: application/json' \
-d '{"vin":"5N1AZ2DJXRC126527"}'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": "AuctionRun@1",
"value": {
"runId": "RUN-04KBRHX",
"laneRef": "LANE-07Y3UDW",
"vin": "5N1AZ2DJXRC126527",
"state": "sold",
"reserve": {
"amount": "14047.00",
"currency": "USD"
},
"highBid": {
"amount": "16254.00",
"currency": "USD"
},
"winnerRef": "BIDDER-12IWX4U",
"asOf": "2026-08-10"
},
"evidence": {
"runId": "RUN-04KBRHX",
"laneRef": "LANE-07Y3UDW",
"vin": "5N1AZ2DJXRC126527",
"state": "sold",
"reserve": {
"amount": "14047.00",
"currency": "USD"
},
"highBid": {
"amount": "16254.00",
"currency": "USD"
},
"winnerRef": "BIDDER-12IWX4U",
"asOf": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "market-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}watch
auction.watch · POST /auctions/watch · gate key · sandbox · answers AuctionWatch@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ2DJXRC126527 (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 — Auction.watched@1.
import { auction } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await auction.watch()curl -X POST https://apis.vin/auctions/watch \
-H 'content-type: application/json' \
-d '{}'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": "AuctionWatch@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "auction",
"asOf": "2026-08-10",
"auction": {
"status": "no-consignment-on-file"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "auction",
"asOf": "2026-08-10",
"auction": {
"status": "no-consignment-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-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.
Auction
Schema
| Property | Type | Notes |
|---|---|---|
id | id | auc_ |
lane | string | — |
runNumber | int | — |
vin | string | — |
sellerId | ref→Party | — |
reserve | money | — |
status | AuctionFSM | — |
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
auction | vehicle | *:1 | runs |
auction | party | *:1 | consigned-by |
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 4 diagrams, rendered from the estate model.
Auction · Class model
Auction · State machine
Auction · State machine
Auction · Sequence
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
arbitration
The arbitration noun — identity, lifecycle, events, and every capability as an anchored section: 14 capabilities, 0 live, 14 sandbox, 0 declared.
bankruptcy
The bankruptcy noun — identity, lifecycle, events, and every capability as an anchored section: 7 capabilities, 0 live, 7 sandbox, 0 declared.