remanPart
The remanPart noun — identity, lifecycle, events, and every capability as an anchored section: 14 capabilities, 0 live, 14 sandbox, 0 declared.
remanPart 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 | remanPart |
| Pillar | Data (facets: 6 data · 3 services · 5 commerce) |
| Capabilities | 14 — 0 live · 14 sandbox · 0 declared |
| Entities | Part |
| Doors | aggregator.vin |
| SDK | Vin.remanPart.* from apis.vin |
| Address | /catalog/remanPart#{action} — the anchor IS the wire name minus remanPart. |
Events
The vocabulary this noun can append to the record — 10 past-tense, versioned event types, each linked to the capability that emits it:
Order.placed@1— emitted byorderRemanPart.charged@1— emitted bypayRemanPart.coreCharged@1— emitted bycoreChargeRemanPart.coreGraded@1— emitted bygradeCoreRemanPart.coreReturned@1— emitted bycoreReturnRemanPart.ordered@1— emitted byorderRemanPart.quoted@1— emitted byquoteRemanPart.remanufactured@1— emitted byremanRemanPart.returned@1— emitted byreturnServiceOrder.settled@1— emitted byorder·pay
Discover & read
lookup
remanPart.lookup · GET /reman-parts/lookup · gate none · sandbox · answers RemanPartLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5XYP5DGC1PG362186 (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 { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.lookup({"vin":"5XYP5DGC1PG362186"})curl 'https://apis.vin/reman-parts/lookup?vin=5XYP5DGC1PG362186'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": "RemanPartLookup@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"lookup": "lookup",
"partNumber": "RM-dfb87b75",
"component": "remanufactured component",
"fits": true,
"partSource": "reman"
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"lookup": "lookup",
"partNumber": "RM-dfb87b75",
"component": "remanufactured component",
"fits": true,
"partSource": "reman"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}availability
remanPart.availability · GET /reman-parts/availability · gate none · sandbox · answers RemanPartAvailability@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5XYP5DGC1PG362186 (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 { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.availability({"vin":"5XYP5DGC1PG362186"})curl 'https://apis.vin/reman-parts/availability?vin=5XYP5DGC1PG362186'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": "RemanPartAvailability@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"onHand": 15,
"binLocation": "B-30",
"status": "counted"
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"onHand": 15,
"binLocation": "B-30",
"status": "counted"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}gradeLookup
remanPart.gradeLookup · GET /reman-parts/grade-lookup · gate none · sandbox · answers RemanPartGradeLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5XYP5DGC1PG362186 (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 { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.gradeLookup({"vin":"5XYP5DGC1PG362186"})curl 'https://apis.vin/reman-parts/grade-lookup?vin=5XYP5DGC1PG362186'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": "RemanPartGradeLookup@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"grade": "A",
"basis": "clean"
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"grade": "A",
"basis": "clean"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}coreEligibility
remanPart.coreEligibility · GET /reman-parts/core-eligibility · gate none · sandbox · answers RemanPartCoreEligibility@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5XYP5DGC1PG362186 (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 { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.coreEligibility({"vin":"5XYP5DGC1PG362186"})curl 'https://apis.vin/reman-parts/core-eligibility?vin=5XYP5DGC1PG362186'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": "RemanPartCoreEligibility@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"core": {
"eligible": false,
"reason": "no-donor-vehicle",
"donorStatus": "not-a-donor"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"core": {
"eligible": false,
"reason": "no-donor-vehicle",
"donorStatus": "not-a-donor"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
remanPart.quote · POST /reman-parts/quote · gate offer · sandbox · answers RemanPartQuote@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) · /5XYP5DGC1PG362186 (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 — RemanPart.quoted@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.quote({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/quote \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartQuote@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"quote": {
"id": "RQ-9f745280",
"amountCents": 19200,
"newComparableCents": 24000,
"coreDepositCents": 3500,
"currency": "USD",
"status": "extended"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"quote": {
"id": "RQ-9f745280",
"amountCents": 19200,
"newComparableCents": 24000,
"coreDepositCents": 3500,
"currency": "USD",
"status": "extended"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}priceLookup
remanPart.priceLookup · GET /reman-parts/price-lookup · gate none · sandbox · answers RemanPartPriceLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5XYP5DGC1PG362186 (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 { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.priceLookup({"vin":"5XYP5DGC1PG362186"})curl 'https://apis.vin/reman-parts/price-lookup?vin=5XYP5DGC1PG362186'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": "RemanPartPriceLookup@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"unitPriceCents": 19200,
"newComparableCents": 24000,
"currency": "USD",
"priceLevel": "reman"
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"unitPriceCents": 19200,
"newComparableCents": 24000,
"currency": "USD",
"priceLevel": "reman"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
order
remanPart.order · POST /reman-parts/order · gate offer · sandbox · answers RemanPartOrder@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) · /5XYP5DGC1PG362186 (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 — Order.placed@1 · RemanPart.ordered@1 · ServiceOrder.settled@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.order({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/order \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartOrder@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"order": {
"id": "ORD-3c3f61bc",
"item": "remanufactured component",
"status": "placed",
"amountCents": 19200,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"order": {
"id": "ORD-3c3f61bc",
"item": "remanufactured component",
"status": "placed",
"amountCents": 19200,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
remanPart.pay · POST /reman-parts/pay · gate offer · sandbox · answers RemanPartPay@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) · /5XYP5DGC1PG362186 (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 — RemanPart.charged@1 · ServiceOrder.settled@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.pay({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/pay \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartPay@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"payment": {
"id": "PAY-9134729a",
"status": "settled",
"amountCents": 19200,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"payment": {
"id": "PAY-9134729a",
"status": "settled",
"amountCents": 19200,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}coreCharge
remanPart.coreCharge · POST /reman-parts/core-charge · gate offer · sandbox · answers RemanPartCoreCharge@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) · /5XYP5DGC1PG362186 (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 — RemanPart.coreCharged@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.coreCharge({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/core-charge \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartCoreCharge@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"fee": {
"kind": "core-deposit",
"amountCents": 3500,
"currency": "USD",
"status": "charged"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"fee": {
"kind": "core-deposit",
"amountCents": 3500,
"currency": "USD",
"status": "charged"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
return
remanPart.return · POST /reman-parts/return · gate offer · sandbox · answers RemanPartReturn@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) · /5XYP5DGC1PG362186 (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 — RemanPart.returned@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.return({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/return \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartReturn@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"refund": {
"id": "RF-cce3569a",
"kind": "return",
"status": "issued",
"amountCents": 19200,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"refund": {
"id": "RF-cce3569a",
"kind": "return",
"status": "issued",
"amountCents": 19200,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}coreReturn
remanPart.coreReturn · POST /reman-parts/core-return · gate offer · sandbox · answers RemanPartCoreReturn@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) · /5XYP5DGC1PG362186 (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 — RemanPart.coreReturned@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.coreReturn({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/core-return \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartCoreReturn@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"refund": {
"id": "RF-00469411",
"kind": "core-deposit",
"status": "issued",
"amountCents": 3500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"refund": {
"id": "RF-00469411",
"kind": "core-deposit",
"status": "issued",
"amountCents": 3500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
crossReference
remanPart.crossReference · GET /reman-parts/cross-reference · gate none · sandbox · answers RemanPartCrossReference@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5XYP5DGC1PG362186 (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 { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.crossReference()curl 'https://apis.vin/reman-parts/cross-reference'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": "RemanPartCrossReference@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "remanPart",
"asOf": "2026-08-10",
"lookup": "crossReference",
"partNumber": "RM-eb98a1cd",
"crossesTo": {
"partNumber": "P-75699500",
"partSource": "oe"
},
"partSource": "reman"
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "remanPart",
"asOf": "2026-08-10",
"lookup": "crossReference",
"partNumber": "RM-eb98a1cd",
"crossesTo": {
"partNumber": "P-75699500",
"partSource": "oe"
},
"partSource": "reman"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}gradeCore
remanPart.gradeCore · POST /reman-parts/grade-core · gate offer · sandbox · answers RemanPartGradeCore@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) · /5XYP5DGC1PG362186 (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 — RemanPart.coreGraded@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.gradeCore({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/grade-core \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartGradeCore@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"coreGrade": {
"grade": "A",
"outcome": "accepted"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"coreGrade": {
"grade": "A",
"outcome": "accepted"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reman
remanPart.reman · POST /reman-parts/reman · gate offer · sandbox · answers RemanPartReman@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) · /5XYP5DGC1PG362186 (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 — RemanPart.remanufactured@1.
import { remanPart } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await remanPart.reman({"vin":"5XYP5DGC1PG362186"})curl -X POST https://apis.vin/reman-parts/reman \
-H 'content-type: application/json' \
-d '{"vin":"5XYP5DGC1PG362186"}'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": "RemanPartReman@1",
"value": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"reman": {
"status": "refused",
"reason": "no-donor-vehicle",
"donorStatus": "not-a-donor"
}
},
"evidence": {
"vin": "5XYP5DGC1PG362186",
"noun": "remanPart",
"asOf": "2026-08-10",
"partNumber": "RM-dfb87b75",
"reman": {
"status": "refused",
"reason": "no-donor-vehicle",
"donorStatus": "not-a-donor"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "parts-counter-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.
Part
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.