docs.vin

dnc

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

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

Identity

Noundnc
PillarData (facets: 5 data · 5 services · 1 commerce)
Capabilities11 — 0 live · 11 sandbox · 0 declared
EntitiesCustomer
Doorsaggregator.vin
SDKVin.dnc.* from apis.vin
Address/catalog/dnc#{action} — the anchor IS the wire name minus dnc.

Events

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

Discover & read

read

dnc.read · GET /dncs/read · gate none · sandbox · answers DncRead@1

FieldTypeRequiredNotes
vinstringno

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

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

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:10.442Z · HTTP 200
{
  "type": "OK",
  "answers": "DncRead@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "standing": {
      "listed": false,
      "consent": {
        "identityId": "ID-11f17424",
        "status": "granted",
        "channels": [
          "email",
          "sms",
          "phone"
        ],
        "capturedAt": "2026-04-12"
      }
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "standing": {
      "listed": false,
      "consent": {
        "identityId": "ID-11f17424",
        "status": "granted",
        "channels": [
          "email",
          "sms",
          "phone"
        ],
        "capturedAt": "2026-04-12"
      }
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

check

dnc.check · GET /dncs/check · gate key · sandbox · answers DncCheck@1

FieldTypeRequiredNotes
vinstringno

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

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

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:10.431Z · HTTP 200
{
  "type": "OK",
  "answers": "DncCheck@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "dnc": {
      "listed": false,
      "identityId": "ID-11f17424"
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "dnc": {
      "listed": false,
      "identityId": "ID-11f17424"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

registryLookup

dnc.registryLookup · GET /dncs/registry-lookup · gate key · sandbox · answers DncRegistryLookup@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await dnc.registryLookup({"vin":"1GC4YTEYXLF332832"})
GET /dncs/registry-lookup
curl 'https://apis.vin/dncs/registry-lookup?vin=1GC4YTEYXLF332832'

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:10.442Z · HTTP 200
{
  "type": "OK",
  "answers": "DncRegistryLookup@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "registry": {
      "listed": false,
      "source": "national-dnc-registry",
      "identityId": "ID-11f17424"
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "registry": {
      "listed": false,
      "source": "national-dnc-registry",
      "identityId": "ID-11f17424"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

reVerify

dnc.reVerify · POST /dncs/re-verify · gate offer · sandbox · answers DncReVerify@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) · /1GC4YTEYXLF332832 (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.

EmitsDnc.reVerified@1.

the SDK — dnc.reVerify
import { dnc } from 'apis.vin'

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

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:10.443Z · HTTP 200
{
  "type": "OK",
  "answers": "DncReVerify@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "verification": {
      "status": "re-verified",
      "listed": false,
      "consent": {
        "identityId": "ID-11f17424",
        "status": "granted",
        "channels": [
          "email",
          "sms",
          "phone"
        ],
        "capturedAt": "2026-04-12"
      }
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "verification": {
      "status": "re-verified",
      "listed": false,
      "consent": {
        "identityId": "ID-11f17424",
        "status": "granted",
        "channels": [
          "email",
          "sms",
          "phone"
        ],
        "capturedAt": "2026-04-12"
      }
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

dnc.pay · POST /dncs/pay · gate offer · sandbox · answers DncPay@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) · /1GC4YTEYXLF332832 (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.

EmitsDnc.failed@1 · Dnc.paid@1.

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

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

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:10.441Z · HTTP 200
{
  "type": "OK",
  "answers": "DncPay@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "payment": {
      "id": "PAY-c77761bd",
      "kind": "registry-access",
      "amountCents": 4950,
      "currency": "USD",
      "status": "settled",
      "basis": "half-of-dealer-data-plan"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "payment": {
      "id": "PAY-c77761bd",
      "kind": "registry-access",
      "amountCents": 4950,
      "currency": "USD",
      "status": "settled",
      "basis": "half-of-dealer-data-plan"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

consentCapture

dnc.consentCapture · POST /dncs/consent-capture · gate offer · sandbox · answers DncConsentCapture@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) · /1GC4YTEYXLF332832 (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.

EmitsDnc.consentCaptured@1.

the SDK — dnc.consentCapture
import { dnc } from 'apis.vin'

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

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:10.432Z · HTTP 200
{
  "type": "OK",
  "answers": "DncConsentCapture@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "capture": {
      "status": "captured",
      "consent": {
        "identityId": "ID-11f17424",
        "status": "granted",
        "channels": [
          "email",
          "sms",
          "phone"
        ],
        "capturedAt": "2026-04-12"
      }
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "capture": {
      "status": "captured",
      "consent": {
        "identityId": "ID-11f17424",
        "status": "granted",
        "channels": [
          "email",
          "sms",
          "phone"
        ],
        "capturedAt": "2026-04-12"
      }
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

consentRecord

dnc.consentRecord · GET /dncs/consent-record · gate none · sandbox · answers DncConsentRecord@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await dnc.consentRecord({"vin":"1GC4YTEYXLF332832"})
GET /dncs/consent-record
curl 'https://apis.vin/dncs/consent-record?vin=1GC4YTEYXLF332832'

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:10.435Z · HTTP 200
{
  "type": "OK",
  "answers": "DncConsentRecord@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "record": {
      "id": "CR-c578225a",
      "identityId": "ID-11f17424",
      "status": "granted",
      "channels": [
        "email",
        "sms",
        "phone"
      ],
      "capturedAt": "2026-04-12"
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "record": {
      "id": "CR-c578225a",
      "identityId": "ID-11f17424",
      "status": "granted",
      "channels": [
        "email",
        "sms",
        "phone"
      ],
      "capturedAt": "2026-04-12"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

litigatorScrub

dnc.litigatorScrub · GET /dncs/litigator-scrub · gate key · sandbox · answers DncLitigatorScrub@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await dnc.litigatorScrub({"vin":"1GC4YTEYXLF332832"})
GET /dncs/litigator-scrub
curl 'https://apis.vin/dncs/litigator-scrub?vin=1GC4YTEYXLF332832'

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:10.440Z · HTTP 200
{
  "type": "OK",
  "answers": "DncLitigatorScrub@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "litigator": {
      "flagged": false,
      "matches": 0,
      "identityId": "ID-11f17424"
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "litigator": {
      "flagged": false,
      "matches": 0,
      "identityId": "ID-11f17424"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

optOut

dnc.optOut · POST /dncs/opt-out · gate offer · sandbox · answers DncOptOut@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) · /1GC4YTEYXLF332832 (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.

EmitsDnc.optedOut@1.

the SDK — dnc.optOut
import { dnc } from 'apis.vin'

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

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:10.440Z · HTTP 200
{
  "type": "OK",
  "answers": "DncOptOut@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "optOut": {
      "status": "opt-out-recorded",
      "identityId": "ID-11f17424",
      "honoredWithinDays": 10
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "optOut": {
      "status": "opt-out-recorded",
      "identityId": "ID-11f17424",
      "honoredWithinDays": 10
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

scrub

dnc.scrub · POST /dncs/scrub · gate offer · sandbox · answers DncScrub@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) · /1GC4YTEYXLF332832 (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.

EmitsDnc.scrubbed@1.

the SDK — dnc.scrub
import { dnc } from 'apis.vin'

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

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:10.444Z · HTTP 200
{
  "type": "OK",
  "answers": "DncScrub@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "scrub": {
      "audience": "persona-cast",
      "checked": 12,
      "listedCount": 0,
      "scrubbed": 0
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "scrub": {
      "audience": "persona-cast",
      "checked": 12,
      "listedCount": 0,
      "scrubbed": 0
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

suppress

dnc.suppress · POST /dncs/suppress · gate offer · sandbox · answers DncSuppress@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) · /1GC4YTEYXLF332832 (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.

EmitsDnc.suppressed@1.

the SDK — dnc.suppress
import { dnc } from 'apis.vin'

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

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:10.444Z · HTTP 200
{
  "type": "OK",
  "answers": "DncSuppress@1",
  "value": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "suppression": {
      "status": "suppressed",
      "identityId": "ID-11f17424",
      "honoredWithinDays": 10
    }
  },
  "evidence": {
    "vin": "1GC4YTEYXLF332832",
    "noun": "dnc",
    "asOf": "2026-08-10",
    "partyId": "ID-11f17424",
    "type": "person",
    "name": "Ava Good",
    "identifiers": [
      {
        "kind": "cast-key",
        "value": "ava-good"
      }
    ],
    "roles": [
      {
        "role": "customer"
      }
    ],
    "status": "active",
    "suppression": {
      "status": "suppressed",
      "identityId": "ID-11f17424",
      "honoredWithinDays": 10
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "contact-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.

Customer

Modeled

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

Dnc · Class model


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