docs.vin

conditionReport

The conditionReport noun — identity, lifecycle, events, and every capability as an anchored section: 23 capabilities, 0 live, 23 sandbox, 0 declared.

conditionReport 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.

Identity

NounconditionReport
PillarData (facets: 9 data · 9 services · 5 commerce)
Capabilities23 — 0 live · 23 sandbox · 0 declared
EntitiesConditionReport
Doorsaggregator.vin
SDKVin.conditionReport.* from apis.vin
Address/catalog/conditionReport#{action} — the anchor IS the wire name minus conditionReport.

Events

The vocabulary this noun can append to the record — 30 past-tense, versioned event types, each linked to the capability that emits it:

Discover & read

read

conditionReport.read · GET /condition-reports/read · gate none · sandbox · answers ConditionReportRead@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.read
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.read({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/read
curl 'https://apis.vin/condition-reports/read?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.303Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportRead@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45,
      "damageCount": 0
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45,
      "damageCount": 0
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

decode

conditionReport.decode · GET /condition-reports/decode · gate key · sandbox · answers ConditionReportDecode@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.decoded@1.

the SDK — conditionReport.decode
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.decode({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/decode
curl 'https://apis.vin/condition-reports/decode?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.289Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportDecode@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45,
      "damageCount": 0
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45,
      "damageCount": 0
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

history

conditionReport.history · GET /condition-reports/history · gate none · sandbox · answers ConditionReportHistory@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.history
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.history({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/history
curl 'https://apis.vin/condition-reports/history?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.293Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportHistory@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "events": [
      {
        "date": "2024-03-14",
        "kind": "routine",
        "description": "routine condition report record"
      }
    ]
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "events": [
      {
        "date": "2024-03-14",
        "kind": "routine",
        "description": "routine condition report record"
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

verify

conditionReport.verify · GET /condition-reports/verify · gate none · sandbox · answers ConditionReportVerify@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.verify
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.verify({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/verify
curl 'https://apis.vin/condition-reports/verify?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.325Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportVerify@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "verified": true,
    "grade": "clean"
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "verified": true,
    "grade": "clean"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

compare

conditionReport.compare · GET /condition-reports/compare · gate none · sandbox · answers ConditionReportCompare@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.compare
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.compare({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/compare
curl 'https://apis.vin/condition-reports/compare?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.286Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportCompare@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "priorGrade": "clean",
    "delta": "none",
    "consistent": true
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "priorGrade": "clean",
    "delta": "none",
    "consistent": true
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

grade

conditionReport.grade · GET /condition-reports/grade · gate key · sandbox · answers ConditionReportGrade@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.graded@1.

the SDK — conditionReport.grade
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.grade({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/grade
curl 'https://apis.vin/condition-reports/grade?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.289Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportGrade@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "grade": "clean",
    "scoreTenths": 45,
    "requestedVerb": "grade"
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "grade": "clean",
    "scoreTenths": 45,
    "requestedVerb": "grade"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

reGrade

conditionReport.reGrade · POST /condition-reports/re-grade · gate offer · sandbox · answers ConditionReportReGrade@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.reGradeRequested@1 · ConditionReport.reGraded@1.

the SDK — conditionReport.reGrade
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.reGrade({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/re-grade
curl -X POST https://apis.vin/condition-reports/re-grade \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.303Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportReGrade@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "grade": "clean",
    "scoreTenths": 45,
    "requestedVerb": "reGrade"
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "grade": "clean",
    "scoreTenths": 45,
    "requestedVerb": "reGrade"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

conditionReport.quote · POST /condition-reports/quote · gate offer · sandbox · answers ConditionReportQuote@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.failed@1 · ConditionReport.quoted@1.

the SDK — conditionReport.quote
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.quote({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/quote
curl -X POST https://apis.vin/condition-reports/quote \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.297Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportQuote@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "grade": "clean",
    "quote": {
      "id": "CRQ-63a8e949",
      "amountCents": 15000,
      "currency": "USD",
      "status": "extended"
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "grade": "clean",
    "quote": {
      "id": "CRQ-63a8e949",
      "amountCents": 15000,
      "currency": "USD",
      "status": "extended"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

request

conditionReport.request · POST /condition-reports/request · gate offer · sandbox · answers ConditionReportRequest@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.requested@1.

the SDK — conditionReport.request
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.request({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/request
curl -X POST https://apis.vin/condition-reports/request \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.312Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportRequest@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "requested",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "requested",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

order

conditionReport.order · POST /condition-reports/order · gate offer · sandbox · answers ConditionReportOrder@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.completed@1 · ConditionReport.dispatched@1 · ConditionReport.ordered@1 · ServiceOrder.settled@1.

the SDK — conditionReport.order
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.order({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/order
curl -X POST https://apis.vin/condition-reports/order \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.293Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportOrder@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-a3052391",
      "item": "condition report",
      "status": "placed",
      "amountCents": 15000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "order": {
      "id": "ORD-a3052391",
      "item": "condition report",
      "status": "placed",
      "amountCents": 15000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

conditionReport.pay · POST /condition-reports/pay · gate offer · sandbox · answers ConditionReportPay@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.failed@1 · ConditionReport.paid@1 · ConditionReport.payFailed@1 · ConditionReport.payRequested@1.

the SDK — conditionReport.pay
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.pay({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/pay
curl -X POST https://apis.vin/condition-reports/pay \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.294Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportPay@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-2e452877",
      "status": "settled",
      "amountCents": 15000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-2e452877",
      "status": "settled",
      "amountCents": 15000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

capture

conditionReport.capture · POST /condition-reports/capture · gate offer · sandbox · answers ConditionReportCapture@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.captureFailed@1 · ConditionReport.captureRequested@1 · ConditionReport.captured@1.

the SDK — conditionReport.capture
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.capture({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/capture
curl -X POST https://apis.vin/condition-reports/capture \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.277Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportCapture@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

perform

conditionReport.perform · POST /condition-reports/perform · gate offer · sandbox · answers ConditionReportPerform@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.performed@1 · ConditionReport.requested@1.

the SDK — conditionReport.perform
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.perform({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/perform
curl -X POST https://apis.vin/condition-reports/perform \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.294Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportPerform@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

generate

conditionReport.generate · POST /condition-reports/generate · gate offer · sandbox · answers ConditionReportGenerate@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.generateRequested@1 · ConditionReport.generated@1.

the SDK — conditionReport.generate
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.generate({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/generate
curl -X POST https://apis.vin/condition-reports/generate \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.289Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportGenerate@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "complete",
      "grade": "clean",
      "scoreTenths": 45
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

publish

conditionReport.publish · POST /condition-reports/publish · gate offer · sandbox · answers ConditionReportPublish@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.published@1.

the SDK — conditionReport.publish
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.publish({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/publish
curl -X POST https://apis.vin/condition-reports/publish \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.294Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportPublish@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "published",
      "grade": "clean",
      "scoreTenths": 45,
      "damageCount": 0
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "published",
      "grade": "clean",
      "scoreTenths": 45,
      "damageCount": 0
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

update

conditionReport.update · POST /condition-reports/update · gate offer · sandbox · answers ConditionReportUpdate@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.updateRequested@1 · ConditionReport.updated@1.

the SDK — conditionReport.update
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.update({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/update
curl -X POST https://apis.vin/condition-reports/update \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.325Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportUpdate@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "updated",
      "grade": "clean",
      "revision": 3
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "updated",
      "grade": "clean",
      "revision": 3
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

annotate

conditionReport.annotate · POST /condition-reports/annotate · gate offer · sandbox · answers ConditionReportAnnotate@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.annotateRequested@1 · ConditionReport.annotated@1.

the SDK — conditionReport.annotate
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.annotate({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/annotate
curl -X POST https://apis.vin/condition-reports/annotate \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.272Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportAnnotate@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "updated",
      "grade": "clean",
      "revision": 3
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "report": {
      "id": "CR-7d341872",
      "status": "updated",
      "grade": "clean",
      "revision": 3
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

dispute

conditionReport.dispute · POST /condition-reports/dispute · gate offer · sandbox · answers ConditionReportDispute@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.disputeRequested@1 · ConditionReport.disputed@1.

the SDK — conditionReport.dispute
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.dispute({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/dispute
curl -X POST https://apis.vin/condition-reports/dispute \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.289Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportDispute@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "dispute": {
      "id": "DSP-b6330835",
      "status": "no-grounds"
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "dispute": {
      "id": "DSP-b6330835",
      "status": "no-grounds"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

audioEngineTest

conditionReport.audioEngineTest · GET /condition-reports/audio-engine-test · gate none · sandbox · answers ConditionReportAudioEngineTest@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.audioEngineTest
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.audioEngineTest()
GET /condition-reports/audio-engine-test
curl 'https://apis.vin/condition-reports/audio-engine-test'

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.

receipt · executed 2026-08-16T14:50:09.699Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportAudioEngineTest@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-2ff1fbd6",
    "verdict": "pass",
    "engineAudio": "nominal"
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-2ff1fbd6",
    "verdict": "pass",
    "engineAudio": "nominal"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

damageMap

conditionReport.damageMap · GET /condition-reports/damage-map · gate none · sandbox · answers ConditionReportDamageMap@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.damageMap
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.damageMap({"vin":"1FT8W3BT3TEC01831"})
GET /condition-reports/damage-map
curl 'https://apis.vin/condition-reports/damage-map?vin=1FT8W3BT3TEC01831'

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.

receipt · executed 2026-08-17T12:42:09.286Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportDamageMap@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "grade": "clean",
    "damages": [],
    "count": 0
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "grade": "clean",
    "damages": [],
    "count": 0
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

guarantee

conditionReport.guarantee · POST /condition-reports/guarantee · gate key · sandbox · answers ConditionReportGuarantee@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.guaranteed@1.

the SDK — conditionReport.guarantee
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.guarantee()
POST /condition-reports/guarantee
curl -X POST https://apis.vin/condition-reports/guarantee \
  -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.

receipt · executed 2026-08-16T14:50:09.700Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportGuarantee@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-2ff1fbd6",
    "guaranteed": true
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-2ff1fbd6",
    "guaranteed": true
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

virtualLift

conditionReport.virtualLift · GET /condition-reports/virtual-lift · gate none · sandbox · answers ConditionReportVirtualLift@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

the SDK — conditionReport.virtualLift
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.virtualLift()
GET /condition-reports/virtual-lift
curl 'https://apis.vin/condition-reports/virtual-lift'

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.

receipt · executed 2026-08-16T14:50:09.703Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportVirtualLift@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-2ff1fbd6",
    "undercarriage": "clean"
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-2ff1fbd6",
    "undercarriage": "clean"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

warrantyAttach

conditionReport.warrantyAttach · POST /condition-reports/warranty-attach · gate offer · sandbox · answers ConditionReportWarrantyAttach@1

FieldTypeRequiredNotes
vinstringno

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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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.

EmitsConditionReport.warrantyAttachRequested@1 · ConditionReport.warrantyAttached@1.

the SDK — conditionReport.warrantyAttach
import { conditionReport } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.warrantyAttach({"vin":"1FT8W3BT3TEC01831"})
POST /condition-reports/warranty-attach
curl -X POST https://apis.vin/condition-reports/warranty-attach \
  -H 'content-type: application/json' \
  -d '{"vin":"1FT8W3BT3TEC01831"}'

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.

receipt · executed 2026-08-17T12:42:09.326Z · HTTP 200
{
  "type": "OK",
  "answers": "ConditionReportWarrantyAttach@1",
  "value": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "attach": {
      "attached": false,
      "reason": "coverage-expired"
    }
  },
  "evidence": {
    "vin": "1FT8W3BT3TEC01831",
    "noun": "conditionReport",
    "asOf": "2026-08-10",
    "reportId": "CR-7d341872",
    "attach": {
      "attached": false,
      "reason": "coverage-expired"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-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.

ConditionReport

Schema

PropertyType
vinstring
gradestring
damagesDamage[]

Relationships

FromToCardinalityAs
inspectionconditionReport1:0..1produces

Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.