sourcing
The sourcing noun — identity, lifecycle, events, and every capability as an anchored section: 13 capabilities, 0 live, 13 sandbox, 0 declared.
sourcing is one of the estate's 317 automotive nouns — a job a car needs done. It carries 13 capabilities: 0 live, 13 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | sourcing |
| Pillar | Data (facets: 5 data · 5 services · 3 commerce) |
| Capabilities | 13 — 0 live · 13 sandbox · 0 declared |
| Entities | InventoryItem |
| Doors | aggregator.vin |
| SDK | Vin.sourcing.* from apis.vin |
| Address | /catalog/sourcing#{action} — the anchor IS the wire name minus sourcing. |
Events
The vocabulary this noun can append to the record — 10 past-tense, versioned event types, each linked to the capability that emits it:
Sourcing.acquired@1— emitted byacquireSourcing.appraised@1— emitted byappraiseSourcing.bought@1— emitted bybuySourcing.failed@1— emitted bybuy·pay·quoteSourcing.offered@1— emitted byofferSourcing.paid@1— emitted bypaySourcing.quoted@1— emitted byquoteSourcing.requested@1— emitted byappraiseSourcing.scanned@1— emitted byscanSourcing.sourced@1— emitted bysource
Discover & read
read
sourcing.read · GET /sourcings/read · gate none · sandbox · answers SourcingRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVARS2SJ220241 (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 { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.read({"vin":"5GAEVARS2SJ220241"})curl 'https://apis.vin/sourcings/read?vin=5GAEVARS2SJ220241'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": "SourcingRead@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"target": {
"id": "SRC-033bb116",
"stage": "identified",
"channel": "private-party",
"appraisal": "Requested"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"target": {
"id": "SRC-033bb116",
"stage": "identified",
"channel": "private-party",
"appraisal": "Requested"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}scan
sourcing.scan · POST /sourcings/scan · gate offer · sandbox · answers SourcingScan@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) · /5GAEVARS2SJ220241 (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 — Sourcing.scanned@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.scan({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/scan \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingScan@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"scan": {
"id": "SCN-5d226fb2",
"candidates": [
{
"vin": "1FL0TS0URCE000000",
"stage": "identified",
"channel": "lease-return"
},
{
"vin": "1FL0TB1D000000000",
"stage": "bidding",
"channel": "private-party"
}
]
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"scan": {
"id": "SCN-5d226fb2",
"candidates": [
{
"vin": "1FL0TS0URCE000000",
"stage": "identified",
"channel": "lease-return"
},
{
"vin": "1FL0TB1D000000000",
"stage": "bidding",
"channel": "private-party"
}
]
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
sourcing.quote · POST /sourcings/quote · gate offer · sandbox · answers SourcingQuote@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) · /5GAEVARS2SJ220241 (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 — Sourcing.failed@1 · Sourcing.quoted@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.quote({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/quote \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingQuote@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"quote": {
"targetId": "SRC-033bb116",
"amountCents": 1850000,
"currency": "USD",
"status": "quoted"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"quote": {
"targetId": "SRC-033bb116",
"amountCents": 1850000,
"currency": "USD",
"status": "quoted"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}appraise
sourcing.appraise · POST /sourcings/appraise · gate offer · sandbox · answers SourcingAppraise@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) · /5GAEVARS2SJ220241 (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 — Sourcing.appraised@1 · Sourcing.requested@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.appraise({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/appraise \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingAppraise@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"appraisal": {
"id": "APR-8123af86",
"standing": "Requested",
"amountCents": 1850000,
"currency": "USD"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"appraisal": {
"id": "APR-8123af86",
"standing": "Requested",
"amountCents": 1850000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}offer
sourcing.offer · POST /sourcings/offer · gate offer · sandbox · answers SourcingOffer@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) · /5GAEVARS2SJ220241 (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 — Sourcing.offered@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.offer({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/offer \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingOffer@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"offer": {
"id": "OFR-7c875c87",
"amountCents": 1850000,
"currency": "USD",
"status": "draft"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"offer": {
"id": "OFR-7c875c87",
"amountCents": 1850000,
"currency": "USD",
"status": "draft"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
sourcing.pay · POST /sourcings/pay · gate offer · sandbox · answers SourcingPay@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) · /5GAEVARS2SJ220241 (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 — Sourcing.failed@1 · Sourcing.paid@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.pay({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/pay \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingPay@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"payment": {
"id": "PAY-a20957e3",
"amountCents": 1850000,
"currency": "USD",
"status": "settled"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"payment": {
"id": "PAY-a20957e3",
"amountCents": 1850000,
"currency": "USD",
"status": "settled"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}buy
sourcing.buy · POST /sourcings/buy · gate offer · sandbox · answers SourcingBuy@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) · /5GAEVARS2SJ220241 (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 — Sourcing.bought@1 · Sourcing.failed@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.buy({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/buy \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingBuy@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"acquisition": {
"id": "ACQ-9a3a3521",
"status": "acquired",
"costCents": 1850000,
"currency": "USD",
"stockNumber": "STK-36de033b"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"acquisition": {
"id": "ACQ-9a3a3521",
"status": "acquired",
"costCents": 1850000,
"currency": "USD",
"stockNumber": "STK-36de033b"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
acquire
sourcing.acquire · POST /sourcings/acquire · gate offer · sandbox · answers SourcingAcquire@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) · /5GAEVARS2SJ220241 (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 — Sourcing.acquired@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.acquire({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/acquire \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingAcquire@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"acquisition": {
"id": "ACQ-1177eb1d",
"status": "acquired",
"costCents": 1850000,
"currency": "USD",
"stockNumber": "STK-36de033b"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"acquisition": {
"id": "ACQ-1177eb1d",
"status": "acquired",
"costCents": 1850000,
"currency": "USD",
"stockNumber": "STK-36de033b"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}channels
sourcing.channels · GET /sourcings/channels · gate none · sandbox · answers SourcingChannels@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVARS2SJ220241 (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 { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.channels({"vin":"5GAEVARS2SJ220241"})curl 'https://apis.vin/sourcings/channels?vin=5GAEVARS2SJ220241'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": "SourcingChannels@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"channels": [
{
"channel": "lease-return",
"recommended": false
},
{
"channel": "trade-in",
"recommended": false
},
{
"channel": "auction",
"recommended": false
},
{
"channel": "private-party",
"recommended": true
},
{
"channel": "factory-allocation",
"recommended": false
}
]
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"channels": [
{
"channel": "lease-return",
"recommended": false
},
{
"channel": "trade-in",
"recommended": false
},
{
"channel": "auction",
"recommended": false
},
{
"channel": "private-party",
"recommended": true
},
{
"channel": "factory-allocation",
"recommended": false
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}demandSignal
sourcing.demandSignal · GET /sourcings/demand-signal · gate key · sandbox · answers SourcingDemandSignal@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVARS2SJ220241 (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 { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.demandSignal({"vin":"5GAEVARS2SJ220241"})curl 'https://apis.vin/sourcings/demand-signal?vin=5GAEVARS2SJ220241'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": "SourcingDemandSignal@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"demand": {
"signal": "high",
"turnDays": 29,
"targetDays": 45
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"demand": {
"signal": "high",
"turnDays": 29,
"targetDays": 45
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}marketSupply
sourcing.marketSupply · GET /sourcings/market-supply · gate key · sandbox · answers SourcingMarketSupply@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVARS2SJ220241 (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 { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.marketSupply({"vin":"5GAEVARS2SJ220241"})curl 'https://apis.vin/sourcings/market-supply?vin=5GAEVARS2SJ220241'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": "SourcingMarketSupply@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"supply": {
"daysSupply": 42,
"demand": "high",
"channel": "private-party"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"supply": {
"daysSupply": 42,
"demand": "high",
"channel": "private-party"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}opportunityScore
sourcing.opportunityScore · GET /sourcings/opportunity-score · gate key · sandbox · answers SourcingOpportunityScore@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVARS2SJ220241 (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 { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.opportunityScore({"vin":"5GAEVARS2SJ220241"})curl 'https://apis.vin/sourcings/opportunity-score?vin=5GAEVARS2SJ220241'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": "SourcingOpportunityScore@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"opportunity": {
"score": 65,
"marginCents": 450000,
"askingCents": 2300000,
"costCents": 1850000,
"currency": "USD"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"opportunity": {
"score": 65,
"marginCents": 450000,
"askingCents": 2300000,
"costCents": 1850000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}source
sourcing.source · POST /sourcings/source · gate offer · sandbox · answers SourcingSource@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) · /5GAEVARS2SJ220241 (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 — Sourcing.sourced@1.
import { sourcing } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await sourcing.source({"vin":"5GAEVARS2SJ220241"})curl -X POST https://apis.vin/sourcings/source \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVARS2SJ220241"}'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": "SourcingSource@1",
"value": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"sourcing": {
"id": "SRC-033bb116",
"status": "already-in-funnel",
"stage": "identified",
"channel": "private-party"
}
},
"evidence": {
"vin": "5GAEVARS2SJ220241",
"noun": "sourcing",
"asOf": "2026-08-10",
"stage": "identified",
"sourcing": {
"id": "SRC-033bb116",
"status": "already-in-funnel",
"stage": "identified",
"channel": "private-party"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "stock-and-book-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.
InventoryItem
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 3 diagrams, rendered from the estate model.
Sourcing · Class model
Sourcing · State machine
Sourcing · State machine
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.