Documentation
The Cardog API puts VIN identity, canonical specs, Canadian-market listings, live market data, and recalls behind one key. Every parameter is an entity ref or a VIN; every response links to its neighbours; every error tells you what to do next.
Reading this as an agent? Every page has a markdown twin — append .md to any docs URL or send Accept: text/markdown. The whole platform is one fetch: curl https://cardog.app/docs.md
Your first call
curl "https://api.cardog.app/v2/listings/search?make=make:tesla&limit=3" \
-H "x-api-key: $CARDOG_API_KEY"Guides
Quickstart
Your first three calls: resolve free text to refs, then query with them.
The Vehicle Graph
The data model behind every endpoint: typed entities, permanent refs, and the grains that connect a VIN to specs, recalls, and the live market.
The ref grammar
Hold the platform's identifier language offline: @cardog/entities validates, builds, and types refs with zero API calls — resolution is where the API begins.
Authentication
API keys, both accepted headers, and the plan limits — straight from the code.
API conventions
The mechanics every v2 group shares: encoding, response shape, null semantics, and the stability contract.
Credits & limits
One commercial currency across the platform: per-family rates, plan allowances, live budget headers, and what happens at the edge.
Errors
The v2 error envelope and a complete correction recipe for every well-known code.
Decode a Canadian VIN by API
One VIN in, one identity card out — entity refs, VIN grains, and links, for 99.77% of Canadian VINs.
Understanding VINs
VIN structure and standards — what the 17 characters mean.
Market data
Instruments, quotes, and the tape: how live listings become a priced, historied market grammar.
Transport Canada recall lookup by VIN, by API
Per-VIN recall checks with citable authority — Transport Canada + NHTSA fused — and entity-scoped sweeps for fleets.
The Cardog MCP server: vehicle data as five tools
Connect Claude, Cursor, VS Code, and any MCP client to Cardog vehicle data.
For agents
The agent-native contract: one-fetch docs, errors that instruct, resolve-first, link traversal, refs as memory, machine-readable pricing, and MCP.
API reference
Generated from the v2 contract — one page per route group. Groups marked soon are frozen contract whose routes land shortly; everything marked live is serving on https://api.cardog.app today.
VIN
liveIdentity: VIN → refs, grains, links
5 operations
Entities
liveThe registry: browse, resolve, dereference
3 operations
Specs
liveThe attribute catalog + canonical spec sheets
2 operations
Listings
liveRef-native listing search, counts, facets
5 operations
Instruments
liveMarket symbology + instrument cards
2 operations
Quotes
liveThe live book per instrument
2 operations
Tape
livePrints + daily bars
2 operations
Recalls
liveTC+NHTSA fused, ref-keyed compliance
5 operations
Safety
liveNCAP ratings + complaints
2 operations
Platform
livePricing, spec, meta
2 operations
SDKs
Typed clients for the whole v2 surface — the TypeScript client validates every response against the same contract schemas the API serves, and the Python SDK is generated from the OpenAPI artifact. Every reference operation below carries samples in both, next to its curl line.
npm install @cardog/apipip install cardogimport { CardogClient } from "@cardog/api";
const client = new CardogClient({ apiKey: process.env.CARDOG_API_KEY });
const resolved = await client.v2.entities.resolve("2021 civic");
console.log(resolved.best);The identifier language itself is also on npm — @cardog/entities validates, builds, and types refs with zero API calls (see The ref grammar):
npm install @cardog/entitiesVIN decoding, offline
The decoder behind /v2/vin also ships as an open-source package — full decode in-process, no network, Node / browsers / Workers.
npm install @cardog/corgiFor agents
Every docs page has a markdown twin — append .md to any docs URL, or send Accept: text/markdown. The whole platform is one fetch:
curl https://cardog.app/docs.md