docs.vin

coop

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

coop is one of the estate's 317 automotive nouns — a job a car needs done. It carries 10 capabilities: 0 live, 10 sandbox, 0 declared · doors aggregator.vin.

Identity

Nouncoop
PillarData (facets: 5 data · 3 services · 2 commerce)
Capabilities10 — 0 live · 10 sandbox · 0 declared
EntitiesDealer
Doorsaggregator.vin
SDKVin.coop.* from apis.vin
Address/catalog/coop#{action} — the anchor IS the wire name minus coop.

Events

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

Discover & read

read

coop.read · GET /coops/read · gate none · sandbox · answers CoopRead@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1GCWGAF74M1180969 (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 — coop.read
import { coop } from 'apis.vin'

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

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopRead@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "fund": {
      "program": "certified-pre-owned",
      "enrollmentId": "EN-2d347bf0",
      "accruedCents": 23750,
      "rateBp": 100,
      "basis": "floorplan-draw-100bp"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "fund": {
      "program": "certified-pre-owned",
      "enrollmentId": "EN-2d347bf0",
      "accruedCents": 23750,
      "rateBp": 100,
      "basis": "floorplan-draw-100bp"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

eligibility

coop.eligibility · GET /coops/eligibility · gate key · sandbox · answers CoopEligibility@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1GCWGAF74M1180969 (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 — coop.eligibility
import { coop } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await coop.eligibility({"vin":"1GCWGAF74M1180969"})
GET /coops/eligibility
curl 'https://apis.vin/coops/eligibility?vin=1GCWGAF74M1180969'

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopEligibility@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "eligibility": {
      "eligible": true,
      "basis": "program-enrollment",
      "enrollmentId": "EN-2d347bf0",
      "program": "certified-pre-owned"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "eligibility": {
      "eligible": true,
      "basis": "program-enrollment",
      "enrollmentId": "EN-2d347bf0",
      "program": "certified-pre-owned"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

audit

coop.audit · GET /coops/audit · gate key · sandbox · answers CoopAudit@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1GCWGAF74M1180969 (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 — coop.audit
import { coop } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await coop.audit({"vin":"1GCWGAF74M1180969"})
GET /coops/audit
curl 'https://apis.vin/coops/audit?vin=1GCWGAF74M1180969'

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.727Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopAudit@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "audit": {
      "entries": [
        {
          "kind": "accrual",
          "amountCents": 23750,
          "basis": "floorplan-draw-100bp"
        },
        {
          "kind": "claim-payout",
          "amountCents": -23750,
          "claimId": "CC-04f9505c"
        }
      ],
      "netCents": 0,
      "balanced": true
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "audit": {
      "entries": [
        {
          "kind": "accrual",
          "amountCents": 23750,
          "basis": "floorplan-draw-100bp"
        },
        {
          "kind": "claim-payout",
          "amountCents": -23750,
          "claimId": "CC-04f9505c"
        }
      ],
      "netCents": 0,
      "balanced": true
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

enroll

coop.enroll · POST /coops/enroll · gate offer · sandbox · answers CoopEnroll@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) · /1GCWGAF74M1180969 (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.

EmitsCoop.enrolled@1.

the SDK — coop.enroll
import { coop } from 'apis.vin'

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

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopEnroll@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "enrollment": {
      "id": "EN-2d347bf0",
      "program": "certified-pre-owned",
      "amountCents": 149500,
      "currency": "USD",
      "status": "already-enrolled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "enrollment": {
      "id": "EN-2d347bf0",
      "program": "certified-pre-owned",
      "amountCents": 149500,
      "currency": "USD",
      "status": "already-enrolled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

reimburse

coop.reimburse · POST /coops/reimburse · gate offer · sandbox · answers CoopReimburse@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) · /1GCWGAF74M1180969 (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.

EmitsCoop.failed@1 · Coop.reimbursed@1.

the SDK — coop.reimburse
import { coop } from 'apis.vin'

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

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopReimburse@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "payout": {
      "id": "CP-6d37d252",
      "claimId": "CC-04f9505c",
      "amountCents": 23750,
      "currency": "USD",
      "status": "paid",
      "basis": "accrued-fund"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "payout": {
      "id": "CP-6d37d252",
      "claimId": "CC-04f9505c",
      "amountCents": 23750,
      "currency": "USD",
      "status": "paid",
      "basis": "accrued-fund"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

claimPay

coop.claimPay · POST /coops/claim-pay · gate offer · sandbox · answers CoopClaimPay@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) · /1GCWGAF74M1180969 (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.

EmitsCoop.claimPaid@1 · Coop.failed@1.

the SDK — coop.claimPay
import { coop } from 'apis.vin'

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

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.727Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopClaimPay@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "payout": {
      "id": "CP-6d37d252",
      "claimId": "CC-04f9505c",
      "amountCents": 23750,
      "currency": "USD",
      "status": "paid",
      "basis": "accrued-fund"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "payout": {
      "id": "CP-6d37d252",
      "claimId": "CC-04f9505c",
      "amountCents": 23750,
      "currency": "USD",
      "status": "paid",
      "basis": "accrued-fund"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

preApprove

coop.preApprove · POST /coops/pre-approve · gate offer · sandbox · answers CoopPreApprove@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) · /1GCWGAF74M1180969 (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.

EmitsCoop.preApproved@1.

the SDK — coop.preApprove
import { coop } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await coop.preApprove({"vin":"1GCWGAF74M1180969"})
POST /coops/pre-approve
curl -X POST https://apis.vin/coops/pre-approve \
  -H 'content-type: application/json' \
  -d '{"vin":"1GCWGAF74M1180969"}'

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopPreApprove@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "preApproval": {
      "claimId": "CC-04f9505c",
      "status": "pre-approved",
      "capCents": 23750,
      "basis": "accrued-fund"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "preApproval": {
      "claimId": "CC-04f9505c",
      "status": "pre-approved",
      "capCents": 23750,
      "basis": "accrued-fund"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

submitClaim

coop.submitClaim · POST /coops/submit-claim · gate offer · sandbox · answers CoopSubmitClaim@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) · /1GCWGAF74M1180969 (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.

EmitsCoop.claimSubmitted@1.

the SDK — coop.submitClaim
import { coop } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await coop.submitClaim({"vin":"1GCWGAF74M1180969"})
POST /coops/submit-claim
curl -X POST https://apis.vin/coops/submit-claim \
  -H 'content-type: application/json' \
  -d '{"vin":"1GCWGAF74M1180969"}'

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopSubmitClaim@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "claim": {
      "id": "CC-04f9505c",
      "status": "submitted",
      "amountCents": 23750,
      "basis": "accrued-fund"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "claim": {
      "id": "CC-04f9505c",
      "status": "submitted",
      "amountCents": 23750,
      "basis": "accrued-fund"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

accrued

coop.accrued · GET /coops/accrued · gate key · sandbox · answers CoopAccrued@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1GCWGAF74M1180969 (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 — coop.accrued
import { coop } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await coop.accrued({"vin":"1GCWGAF74M1180969"})
GET /coops/accrued
curl 'https://apis.vin/coops/accrued?vin=1GCWGAF74M1180969'

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.634Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopAccrued@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "accrual": {
      "fundCents": 23750,
      "rateBp": 100,
      "basis": "floorplan-draw-100bp"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "accrual": {
      "fundCents": 23750,
      "rateBp": 100,
      "basis": "floorplan-draw-100bp"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

compliance

coop.compliance · GET /coops/compliance · gate key · sandbox · answers CoopCompliance@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1GCWGAF74M1180969 (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 — coop.compliance
import { coop } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await coop.compliance({"vin":"1GCWGAF74M1180969"})
GET /coops/compliance
curl 'https://apis.vin/coops/compliance?vin=1GCWGAF74M1180969'

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.728Z · HTTP 200
{
  "type": "OK",
  "answers": "CoopCompliance@1",
  "value": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "compliance": {
      "claimId": "CC-04f9505c",
      "status": "compliant",
      "basis": "brand-guidelines"
    }
  },
  "evidence": {
    "noun": "coop",
    "asOf": "2026-08-10",
    "dealerId": "DLR-b9066ade",
    "rooftopIds": [
      "DLR-b9066ade"
    ],
    "dealerLicense": "DL-7bcdd2ef",
    "auctionStanding": "active",
    "compliance": {
      "claimId": "CC-04f9505c",
      "status": "compliant",
      "basis": "brand-guidelines"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "marketing-desk-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.

Dealer

Modeled

The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 4 diagrams, rendered from the estate model.

Coop · Class model

Coop · State machine

Coop · State machine

Coop · Sequence


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