docs.vin

syndication

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

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

Identity

Nounsyndication
PillarServices (facets: 5 data · 6 services · 1 commerce)
Capabilities12 — 0 live · 12 sandbox · 0 declared
EntitiesListing
Doorsaggregator.vin
SDKVin.syndication.* from apis.vin
Address/catalog/syndication#{action} — the anchor IS the wire name minus syndication.

Events

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

Discover & read

read

syndication.read · GET /syndications/read · gate none · sandbox · answers SyndicationRead@1

FieldTypeRequiredNotes
vinstringno

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

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

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.905Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationRead@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "syndication": {
      "listingId": "LST-cc4120cb",
      "position": "Draft",
      "live": false,
      "channels": 2
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "syndication": {
      "listingId": "LST-cc4120cb",
      "position": "Draft",
      "live": false,
      "channels": 2
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

validate

syndication.validate · POST /syndications/validate · gate offer · sandbox · answers SyndicationValidate@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.validated@1.

the SDK — syndication.validate
import { syndication } from 'apis.vin'

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

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.918Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationValidate@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "validation": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "validation": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

coverage

syndication.coverage · GET /syndications/coverage · gate key · sandbox · answers SyndicationCoverage@1

FieldTypeRequiredNotes
vinstringno

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

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

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.890Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationCoverage@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "coverage": {
      "listedUnits": 3,
      "channels": 2,
      "basis": "fleet-listed-iron"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "coverage": {
      "listedUnits": 3,
      "channels": 2,
      "basis": "fleet-listed-iron"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

feedStatus

syndication.feedStatus · GET /syndications/feed-status · gate key · sandbox · answers SyndicationFeedStatus@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await syndication.feedStatus({"vin":"1GYKPMRK2RZ127657"})
GET /syndications/feed-status
curl 'https://apis.vin/syndications/feed-status?vin=1GYKPMRK2RZ127657'

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.895Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationFeedStatus@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "feed": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "feed": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

channelFee

syndication.channelFee · POST /syndications/channel-fee · gate offer · sandbox · answers SyndicationChannelFee@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.channelFeeAssessed@1 · Syndication.failed@1.

the SDK — syndication.channelFee
import { syndication } from 'apis.vin'

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

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.890Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationChannelFee@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "fee": {
      "id": "SCF-79119379",
      "amountCents": 4900,
      "currency": "USD",
      "perChannel": true,
      "channels": 2,
      "status": "quoted"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "fee": {
      "id": "SCF-79119379",
      "amountCents": 4900,
      "currency": "USD",
      "perChannel": true,
      "channels": 2,
      "status": "quoted"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

sync

syndication.sync · POST /syndications/sync · gate offer · sandbox · answers SyndicationSync@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.synced@1.

the SDK — syndication.sync
import { syndication } from 'apis.vin'

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

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.908Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationSync@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "sync": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "sync": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

channels

syndication.channels · GET /syndications/channels · gate none · sandbox · answers SyndicationChannels@1

FieldTypeRequiredNotes
vinstringno

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

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

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.890Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationChannels@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "channels": [
      {
        "channel": "estate-storefront",
        "status": "available"
      },
      {
        "channel": "market-syndication",
        "status": "available"
      }
    ],
    "count": 2
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "channels": [
      {
        "channel": "estate-storefront",
        "status": "available"
      },
      {
        "channel": "market-syndication",
        "status": "available"
      }
    ],
    "count": 2
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

errors

syndication.errors · GET /syndications/errors · gate key · sandbox · answers SyndicationErrors@1

FieldTypeRequiredNotes
vinstringno

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

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

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.891Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationErrors@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "errors": [
      {
        "code": "refused-disposition-not-retail",
        "basis": "frontline-law"
      }
    ]
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "errors": [
      {
        "code": "refused-disposition-not-retail",
        "basis": "frontline-law"
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

map

syndication.map · POST /syndications/map · gate offer · sandbox · answers SyndicationMap@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.mapped@1.

the SDK — syndication.map
import { syndication } from 'apis.vin'

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

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.898Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationMap@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "mapping": {
      "listingId": "LST-cc4120cb",
      "fields": {
        "vin": "vehicle.vin",
        "priceCents": "offer.price",
        "photos": "media.gallery",
        "description": "listing.body"
      },
      "status": "mapped"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "mapping": {
      "listingId": "LST-cc4120cb",
      "fields": {
        "vin": "vehicle.vin",
        "priceCents": "offer.price",
        "photos": "media.gallery",
        "description": "listing.body"
      },
      "status": "mapped"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

push

syndication.push · POST /syndications/push · gate offer · sandbox · answers SyndicationPush@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.pushed@1.

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

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

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.905Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationPush@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "push": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    },
    "channels": [
      "estate-storefront",
      "market-syndication"
    ]
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "push": {
      "status": "refused-disposition-not-retail",
      "basis": "frontline-law"
    },
    "channels": [
      "estate-storefront",
      "market-syndication"
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

retract

syndication.retract · POST /syndications/retract · gate offer · sandbox · answers SyndicationRetract@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.retracted@1.

the SDK — syndication.retract
import { syndication } from 'apis.vin'

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

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.908Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationRetract@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "retraction": {
      "status": "withdrawn",
      "id": "LST-cc4120cb"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "retraction": {
      "status": "withdrawn",
      "id": "LST-cc4120cb"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

throttle

syndication.throttle · POST /syndications/throttle · gate offer · sandbox · answers SyndicationThrottle@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) · /1GYKPMRK2RZ127657 (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.

EmitsSyndication.throttled@1.

the SDK — syndication.throttle
import { syndication } from 'apis.vin'

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

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.916Z · HTTP 200
{
  "type": "OK",
  "answers": "SyndicationThrottle@1",
  "value": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "throttle": {
      "perChannelPerDay": 4,
      "channels": 2,
      "status": "applied"
    }
  },
  "evidence": {
    "vin": "1GYKPMRK2RZ127657",
    "noun": "syndication",
    "asOf": "2026-08-10",
    "throttle": {
      "perChannelPerDay": 4,
      "channels": 2,
      "status": "applied"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "desk-band-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.

Listing

Modeled

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

Syndication · Class model

Syndication · State machine

Syndication · Class model

Syndication · State machine

Syndication · 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.