API reference

Parts

Last updated:

OEM part numbers by model year, linked to the manufacturer's official parts store

GET/v2/parts/{ref}since 2026-10-26

OEM part numbers for a model year or build code, with where to buy them

The manufacturer part numbers on record for a model year, each with the document that names it and, where known, a link to that number on the manufacturer's official parts store. The root `acquire` lists the official stores for the make by market. Parts apply at the model-year grain: a part listed applies to some builds of the model year, not necessarily every vehicle. A `nano:` ref is answered at its model year. Today's source is the part numbers manufacturers file with NHTSA recalls, so `coverage.complete` is false: this is not the full catalogue. No prices; the store has the current one.

Path parameters

refstringrequired

A model-year: or nano: ref. Slashes in refs must be URL-encoded (%2F).

curl "https://api.cardog.app/v2/parts/model-year:hyundai%2Fioniq-5%2F2022" \
  -H "x-api-key: $CARDOG_API_KEY"

Response

200Parts
refstring

The queried ref

grain"model-year"

The grain the parts apply at. "model-year": each part applies to some builds of the model year, not necessarily every vehicle. A nano request is answered at this grain.

modelYearRefstring

Entity ref ({domain}:{key}) in the "model-year" domain. Example: "model-year:toyota/rav4/2021"

totalinteger
partsobject[]
refstring

Entity ref ({domain}:{key}) in the "part" domain. Example: "part:hyundai/4295118110"

partNumberstring

The number as the manufacturer printed it, e.g. "42951-18110"

makestring

The make the part is sold under

namestring | null

The manufacturer's name for the part

descriptionstring | null
componentobject | null

The component the part belongs to. A ref into the shared component tree joins this object when the tree ships (additive).

asPublishedstring

The system it belongs to, verbatim as the authority files it, e.g. "PARKING BRAKE:ELECTRICAL:CONTROL MODULE:SOFTWARE". The same field name recall rows use for the same text.

sourcesobject[]
sourcestring

Who published it, as an ocean source id, e.g. "gov:nhtsa"

refstring

The document that names the part (today: the recall campaign it was filed with)

observedAtstring | null

When that document was published (ISO date); null if undated

recallsstring[]

The recall campaigns that name this part for this model year: the distinct recall refs among sources.

acquireobject[]optional

This number on the manufacturer's official store, where a link to it is known. Absent otherwise; use the root acquire stores.

market"CA" | "US"

Market the store sells into

kind"search" | "product"

"search" opens the store's search for this number; "product" opens the part's own page

urlstring (uri)
acquireobject[]

The manufacturer's official parts stores for this make, by market. Empty when none is on file.

makestring

Entity ref ({domain}:{key}) in the "make" domain. Example: "make:toyota"

market"CA" | "US"

Market the store sells into

namestring

The store's own name, e.g. "Hyundai Canada Parts"

urlstring (uri)

The store's home page (absolute URL on the manufacturer's site)

coverageobject
completefalse

Always false today: the list is the part numbers named on the public record, not the full catalogue for the vehicle

sourcesstring[]

Sources the list is built from, e.g. ["gov:nhtsa"]

unpairedinteger

Part numbers a document names for several vehicles at once without saying which is this one's (a multi-vehicle recall filed as a cross product). Not in parts: listing them would claim a fit the record does not make.

linksobjectoptional

Related resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}

Example response

8 keys
"response": {
"ref": "model-year:hyundai/ioniq-5/2022",
"grain": "model-year",
"modelYearRef": "model-year:hyundai/ioniq-5/2022",
"total": 2,
"parts": [
0: {8 items},
1: {8 items}
],
"acquire": [
0: {4 items}
],
"coverage": {
"complete": false,
"sources": [1 item],
"unpaired": 1
},
"links": {
"self": "/v2/parts/model-year%3Ahyundai%2Fioniq-5%2F2022",
"recalls": "/v2/recalls/entity/model-year%3Ahyundai%2Fioniq-5%2F2022",
"specs": "/v2/specs/model-year%3Ahyundai%2Fioniq-5%2F2022",
"entity": "/v2/entities/model-year%3Ahyundai%2Fioniq-5%2F2022"
}
}

Errors400401402404429500every 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/parts.md