Feeds
soonAn organization's own data set, built nightly, pulled by org key
This group's contract is frozen but its routes are not mounted on https://api.cardog.app yet. Shapes below are final.
- GET
/v2/feedsThe organization's feed contracts and where each one stands - GET
/v2/feeds/{dataset}/latestThe current run of one dataset, with signed links to its artifacts - GET
/v2/feeds/artifact/{runId}/{name}A feed artifact, through the signed link a latest read returns
/v2/feedsThe organization's feed contracts and where each one stands
Every active feed contract the key's organization holds, each with the pointer to its current run or `null` before the first run. A feed is the organization's own data set, built nightly from the Canadian vehicle record and scoped to what the organization is entitled to. Org key only: a user key or session is 403 `forbidden`. Costs 0 credits.
curl "https://api.cardog.app/v2/feeds" \
-H "x-api-key: $CARDOG_API_KEY"Response
200FeedsListfeedsobject[]contractobjectdatasetstringfieldmapstringformat"csv.gz" | "csv" | "jsonl.gz" | "jsonl" | "json.gz" | "json" | "parquet" | "pipe-csv"status"active" | "draft" | "suspended"cadenceobjectfullbooleandeltabooleanweekly_fullbooleanlatestobject | nullrunIdstringkind"full" | "delta"producedAtstring (date-time)Example response
1 keysErrors401403429500every non-2xx body is the error envelope
/v2/feeds/{dataset}/latestThe current run of one dataset, with signed links to its artifacts
The manifest of the current run, the dataset declaration the rows are typed by, and one signed 24-hour link per artifact (`full`, `delta`, and `deletes` when the dataset declares deletes). Open a link exactly as printed; it needs no key and costs 0 credits. Rows are csv, RFC 4180 quoted, sorted by the first field; a VIN matches a row by its pattern (positions 1–8, `*`, 10–11, plus 12–14 when position 3 is `9`). 404 when the organization holds no active contract for the dataset or no run has been published yet. Org key only.
Path parameters
datasetstringrequiredA dataset id, name@version, e.g. vehicle-identity@1. GET /v2/feeds lists the ones this organization holds
curl "https://api.cardog.app/v2/feeds/{dataset}/latest" \
-H "x-api-key: $CARDOG_API_KEY"Response
200FeedLatestcontractobjectdatasetstringfieldmapstringformat"csv.gz" | "csv" | "jsonl.gz" | "jsonl" | "json.gz" | "json" | "parquet" | "pipe-csv"status"active" | "draft" | "suspended"cadenceobjectfullbooleandeltabooleanweekly_fullbooleandatasetobjectidstringtitlestringstatus"ratified" | "draft"presetsobject[]optionalidstringtitlestringdescriptionstringfieldsstring[]keystring[]optionalratifiedAtstring (date-time)optionalsemanticsobjectupsertbooleandeletebooleanfieldsobject[]namestringtype"string" | "integer" | "number" | "boolean" | "date" | "timestamp" | "ref"requiredbooleanjoinKeybooleanoptionallifecyclestringoptionaldescriptionstringoptionalgroupstringoptionalpresetbooleanoptionalpairedWithstringoptionalmanifestobjectschema"feed-manifest@1"contractstringdatasetstringfieldmapstringrunIdstringkind"full" | "delta"baselineRunIdstringoptionalartifactsobject[]namestringrecordsintegerbytesintegersha256stringwindowobjectfromstring (date-time)tostring (date-time)producedAtstring (date-time)destinationPrefixstringcolumnsobject[]optionalnamestringsourcestringtype"string" | "integer" | "number" | "boolean" | "date" | "timestamp" | "ref"mappedbooleanoptionallayoutobjectoptionaldelimiter"," | " | " | "\t" | ";"headerbooleanlineEnding"lf" | "crlf"artifactsobject[]namestringrecordsintegerbytesintegersha256stringurlstring (uri)expiresAtstring (date-time)columnsobject[]optionalnamestringsourcestringtype"string" | "integer" | "number" | "boolean" | "date" | "timestamp" | "ref"mappedbooleanoptionallayoutobjectoptionaldelimiter"," | " | " | "\t" | ";"headerbooleanlineEnding"lf" | "crlf"Example response
6 keysErrors400401403404429500503every non-2xx body is the error envelope
/v2/feeds/artifact/{runId}/{name}no authA feed artifact, through the signed link a latest read returns
The bytes behind an `artifacts[].url` from `GET /v2/feeds/{dataset}/latest`. Open that link exactly as printed. It is signed and good for 24 hours; it needs no API key or session, and it costs 0 credits. `.gz` artifacts are served as `application/gzip`, plain ones as `text/csv`, `application/x-ndjson` or `application/json` by their extension; all as attachments. An invalid or expired link is 403 `forbidden`: request the latest read again for a fresh one. 404 when no artifact is held under that run and name; 503 when it could not be fetched right now.
Path parameters
runIdstringrequiredThe run id (the SHA-256 of the run's full), as printed in the link
namestringrequiredThe artifact name, as printed in the link
Query parameters
tstringrequiredPart of the link as printed
dstringrequiredPart of the link as printed
expintegerrequiredUnix time (seconds) the link stops working: 24 hours from the read that printed it
sigstringrequiredThe link's signature. Part of the link as printed; not something a caller computes
curl "https://api.cardog.app/v2/feeds/artifact/{runId}/{name}?t=%7Bt%7D&d=%7Bd%7D&exp=%7Bexp%7D&sig=%7Bsig%7D"Response200application/gzipThe artifact as the builder wrote it
Errors400403404429500503every non-2xx body is the error envelope
Generated from the contract. Machine-readable spec: GET https://api.cardog.app/v2/openapi.json · markdown twin: /docs/reference/feeds.md