close
docs.vin

source

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

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

Identity

Nounsource
PillarData (facets: 6 data · 6 services · 2 commerce)
Capabilities14 — 0 live · 14 sandbox · 0 declared
EntitiesConnection
Doorsaggregator.vin
SDKVin.source.* from apis.vin
Address/catalog/source#{action} — the anchor IS the wire name minus source.

Events

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

Discover & read

read

source.read · GET /sources/read · gate none · sandbox · answers SourceRead@1

FieldTypeRequiredNotes
vinstringno

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

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

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:17.588Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceRead@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "source": {
      "id": "SRC-b692d167",
      "connection": "active",
      "entitlements": [
        "read",
        "pull",
        "push"
      ]
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "source": {
      "id": "SRC-b692d167",
      "connection": "active",
      "entitlements": [
        "read",
        "pull",
        "push"
      ]
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

verify

source.verify · GET /sources/verify · gate key · sandbox · answers SourceVerify@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await source.verify({"vin":"7SAYGDED7TF515801"})
GET /sources/verify
curl 'https://apis.vin/sources/verify?vin=7SAYGDED7TF515801'

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:17.588Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceVerify@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "verification": {
      "id": "SRC-b692d167",
      "verified": true,
      "connection": "active"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "verification": {
      "id": "SRC-b692d167",
      "verified": true,
      "connection": "active"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

coverage

source.coverage · GET /sources/coverage · gate key · sandbox · answers SourceCoverage@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await source.coverage({"vin":"7SAYGDED7TF515801"})
GET /sources/coverage
curl 'https://apis.vin/sources/coverage?vin=7SAYGDED7TF515801'

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:17.478Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceCoverage@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "coverage": {
      "connections": 5,
      "byStatus": {
        "pending": 1,
        "active": 1,
        "degraded": 1,
        "expired": 1,
        "revoked": 1
      }
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "coverage": {
      "connections": 5,
      "byStatus": {
        "pending": 1,
        "active": 1,
        "degraded": 1,
        "expired": 1,
        "revoked": 1
      }
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

subscribe

source.subscribe · POST /sources/subscribe · gate offer · sandbox · answers SourceSubscribe@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) · /7SAYGDED7TF515801 (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.

EmitsSource.subscribed@1.

the SDK — source.subscribe
import { source } from 'apis.vin'

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

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:17.588Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceSubscribe@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "subscription": {
      "id": "SS-95aa003c",
      "plan": "data-feed",
      "amountCents": 9900,
      "currency": "USD",
      "status": "active"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "subscription": {
      "id": "SS-95aa003c",
      "plan": "data-feed",
      "amountCents": 9900,
      "currency": "USD",
      "status": "active"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

credential

source.credential · POST /sources/credential · gate offer · sandbox · answers SourceCredential@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) · /7SAYGDED7TF515801 (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.

EmitsSource.credentialed@1.

the SDK — source.credential
import { source } from 'apis.vin'

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

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:17.480Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceCredential@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "credential": {
      "id": "CRD-1b02c67c",
      "sourceId": "SRC-b692d167",
      "scope": [
        "read",
        "pull",
        "push"
      ],
      "status": "issued"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "credential": {
      "id": "CRD-1b02c67c",
      "sourceId": "SRC-b692d167",
      "scope": [
        "read",
        "pull",
        "push"
      ],
      "status": "issued"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

provision

source.provision · POST /sources/provision · gate offer · sandbox · answers SourceProvision@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) · /7SAYGDED7TF515801 (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.

EmitsSource.provisioned@1.

the SDK — source.provision
import { source } from 'apis.vin'

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

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:17.498Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceProvision@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "provisioning": {
      "status": "already-provisioned",
      "id": "SRC-b692d167",
      "connection": "active"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "provisioning": {
      "status": "already-provisioned",
      "id": "SRC-b692d167",
      "connection": "active"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

reconcile

source.reconcile · POST /sources/reconcile · gate offer · sandbox · answers SourceReconcile@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) · /7SAYGDED7TF515801 (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.

EmitsSource.reconciled@1.

the SDK — source.reconcile
import { source } from 'apis.vin'

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

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:17.588Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceReconcile@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "reconciliation": {
      "id": "SRC-b692d167",
      "pulled": 4,
      "matched": 4,
      "discrepancies": 0,
      "status": "clean"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "reconciliation": {
      "id": "SRC-b692d167",
      "pulled": 4,
      "matched": 4,
      "discrepancies": 0,
      "status": "clean"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

perQueryPay

source.perQueryPay · POST /sources/per-query-pay · gate offer · sandbox · answers SourcePerQueryPay@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) · /7SAYGDED7TF515801 (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.

EmitsSource.failed@1 · Source.queryPaid@1.

the SDK — source.perQueryPay
import { source } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await source.perQueryPay({"vin":"7SAYGDED7TF515801"})
POST /sources/per-query-pay
curl -X POST https://apis.vin/sources/per-query-pay \
  -H 'content-type: application/json' \
  -d '{"vin":"7SAYGDED7TF515801"}'

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:17.494Z · HTTP 200
{
  "type": "OK",
  "answers": "SourcePerQueryPay@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "payment": {
      "id": "PAY-6c3bda2f",
      "amountCents": 25,
      "currency": "USD",
      "unit": "query",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "payment": {
      "id": "PAY-6c3bda2f",
      "amountCents": 25,
      "currency": "USD",
      "unit": "query",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

subscribePay

source.subscribePay · POST /sources/subscribe-pay · gate offer · sandbox · answers SourceSubscribePay@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) · /7SAYGDED7TF515801 (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.

EmitsSource.failed@1 · Source.subscriptionPaid@1.

the SDK — source.subscribePay
import { source } from 'apis.vin'

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

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:17.588Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceSubscribePay@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "payment": {
      "id": "PAY-16a0db68",
      "amountCents": 9900,
      "currency": "USD",
      "period": "monthly",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "payment": {
      "id": "PAY-16a0db68",
      "amountCents": 9900,
      "currency": "USD",
      "period": "monthly",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

catalog

source.catalog · GET /sources/catalog · gate none · sandbox · answers SourceCatalog@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await source.catalog({"vin":"7SAYGDED7TF515801"})
GET /sources/catalog
curl 'https://apis.vin/sources/catalog?vin=7SAYGDED7TF515801'

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:17.478Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceCatalog@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "catalog": {
      "id": "SRC-b692d167",
      "channels": [
        "location",
        "odometer",
        "battery",
        "diagnostics"
      ],
      "channelCount": 4
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "catalog": {
      "id": "SRC-b692d167",
      "channels": [
        "location",
        "odometer",
        "battery",
        "diagnostics"
      ],
      "channelCount": 4
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

entitlements

source.entitlements · GET /sources/entitlements · gate none · sandbox · answers SourceEntitlements@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await source.entitlements({"vin":"7SAYGDED7TF515801"})
GET /sources/entitlements
curl 'https://apis.vin/sources/entitlements?vin=7SAYGDED7TF515801'

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:17.482Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceEntitlements@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "entitlements": {
      "id": "SRC-b692d167",
      "connection": "active",
      "scopes": [
        "read",
        "pull",
        "push"
      ]
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "entitlements": {
      "id": "SRC-b692d167",
      "connection": "active",
      "scopes": [
        "read",
        "pull",
        "push"
      ]
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

freshness

source.freshness · GET /sources/freshness · gate key · sandbox · answers SourceFreshness@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await source.freshness({"vin":"7SAYGDED7TF515801"})
GET /sources/freshness
curl 'https://apis.vin/sources/freshness?vin=7SAYGDED7TF515801'

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:17.492Z · HTTP 200
{
  "type": "OK",
  "answers": "SourceFreshness@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "freshness": {
      "id": "SRC-b692d167",
      "freshness": "live",
      "connection": "active"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "freshness": {
      "id": "SRC-b692d167",
      "freshness": "live",
      "connection": "active"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

pull

source.pull · POST /sources/pull · gate offer · sandbox · answers SourcePull@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) · /7SAYGDED7TF515801 (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.

EmitsSource.pulled@1 · Source.requested@1.

the SDK — source.pull
import { source } from 'apis.vin'

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

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:17.499Z · HTTP 200
{
  "type": "OK",
  "answers": "SourcePull@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "pull": {
      "status": "pulled",
      "id": "SRC-b692d167",
      "channels": [
        "location",
        "odometer",
        "battery",
        "diagnostics"
      ],
      "freshness": "live"
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "pull": {
      "status": "pulled",
      "id": "SRC-b692d167",
      "channels": [
        "location",
        "odometer",
        "battery",
        "diagnostics"
      ],
      "freshness": "live"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

push

source.push · POST /sources/push · gate offer · sandbox · answers SourcePush@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) · /7SAYGDED7TF515801 (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.

EmitsSource.pushed@1.

the SDK — source.push
import { source } from 'apis.vin'

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

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:17.588Z · HTTP 200
{
  "type": "OK",
  "answers": "SourcePush@1",
  "value": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "push": {
      "status": "accepted",
      "id": "SRC-b692d167",
      "channels": [
        "location",
        "odometer",
        "battery",
        "diagnostics"
      ]
    }
  },
  "evidence": {
    "vin": "7SAYGDED7TF515801",
    "noun": "source",
    "asOf": "2026-08-10",
    "sourceId": "SRC-b692d167",
    "push": {
      "status": "accepted",
      "id": "SRC-b692d167",
      "channels": [
        "location",
        "odometer",
        "battery",
        "diagnostics"
      ]
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "car-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.

Connection

Modeled

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

Source · Class model

Source · State machine

Source · State machine


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