Vehicle identity
Parts
Last updated:
OEM part numbers for a model year or a build, with the recalls that name them and the manufacturer's own parts store.
/v2/parts/{ref} answers which manufacturer part numbers are on record for
a vehicle, why each one is on record, and where to buy it from the
manufacturer. Ask by model year, or by build code and get the answer for
that build's model year.

- 1The part number
partNumber, as the maker prints it.refis the join key. - 2Where it sits
component.asPublished, the system the authority files it under. - 3Why it is on record
recalls: the campaigns that name it for this model year. - 4Where to buy it
acquire: the maker's official parts store.
Parts for a model year
curl "https://api.cardog.app/v2/parts/model-year:hyundai%2Fioniq-5%2F2022" \
-H "x-api-key: $CARDOG_API_KEY" \
-H "Cardog-Version: 2026-10-26"Example
6 keyspartNumber is the number as the manufacturer prints it, the string a
parts counter or a checkout searches for. ref is the join key: separators
are dropped, so 04465-0E010 and 044650E010 are the same part. Every
part carries sources, the documents that name it, with their dates, and
recalls, the campaign refs among them. Follow one to
/v2/recalls/{ref}.
A build code is answered at its model year
curl "https://api.cardog.app/v2/parts/nano:KM8KM4ABNU" \
-H "x-api-key: $CARDOG_API_KEY" \
-H "Cardog-Version: 2026-10-26"The answer is the same as for the build's model year, and grain says so:
"model-year". A part listed for a model year applies to some builds of
it, not necessarily to every vehicle. From a VIN, GET /v2/vin/{vin}
links parts (the model year) and partsBuild (the build code).
Pairing, and the unpaired count
A recall that covers several vehicles and several parts is filed as every
part against every vehicle. Read naively, campaign 24V204000 puts the
GV60's charging unit on the IONIQ 5. A part is listed for a model year only
when the pairing is certain (one vehicle or one part in the campaign), or
when the manufacturer's own description names that model. A number the
campaign names without saying which vehicle it belongs to is counted in
coverage.unpaired and never listed. Listing it would claim a fit the
record does not make.
Where to buy

acquire at the top lists the manufacturer's official parts stores for the
make, by market, Canada first. A part's own acquire links, when present,
open that number on the official store. Every link goes to the
manufacturer's own site, never to a reseller. There are no prices: the
store has the current one.
What the list covers today
The part numbers manufacturers file with their recalls: about 14,000
numbers across every make NHTSA records. coverage.complete is always
false. This is the parts named on the public record, not the full
catalogue for the vehicle, and coverage.sources says where each answer
came from. More sources land in the same response without changing its
shape.
Errors: a ref that is not a model year or a build code is a 400
invalid_ref. A model year we have no record of is a 404. A model year
with nothing on record is a 200 with total: 0. Parts costs 3 credits a
request. Every field is in the reference.
Was this helpful?