The car object
One physical vehicle with its specs, all listings visible to your key, and, on detailed endpoints, full reports. Attributes a source didn't supply are usually omitted rather than set to null.
Unavailable root attributes are often omitted. Nested values may be null. /search returns availability flags without full report arrays; /cars and exact lookups attach reports. Listings are restricted to the key/domain scope but may include other listings of the same merged car. Never assume the first listing is the requested one.
Opaque internal car identifier. Preserve it as a string.
Always included, as true or false. true when the car has at least one public, published inspection on one of its listings; false when it has none. /search, /cars and /cars/{car_id} return the stored flag, so it can be true while inspections is empty (for example when the report belongs to a listing outside your source scope). /listing/{domain_id}/{listing_id} recomputes it from that listing only. Render reports from the inspections array; use the flag for badges and filters.
Always included, as true or false. true when at least one public vehicle history report is linked to a listing in your scope; false otherwise. Detailed endpoints recompute it from the returned vehicle_history_reports. For a per-source badge, use listings[].has_history_reports.
2 child attributes
2 child attributes
Interior color of the vehicle, normalized with the same color IDs as exterior color. Omitted when unknown.
2 child attributes
Stored vehicle type: 1 automobile, 2 motorcycle. Missing legacy type is returned as 1. One of: 1, 2.
Responses now include vehicle_type, generation_id, variant_id and trim_id; missing optional IDs are null. These fields participate in hash. Filters use stored root IDs only: cars without normalized IDs do not match the corresponding selections.
Responses now include vehicle_type, generation_id, variant_id and trim_id; missing optional IDs are null. These fields participate in hash. Filters use stored root IDs only: cars without normalized IDs do not match the corresponding selections.
Responses now include vehicle_type, generation_id, variant_id and trim_id; missing optional IDs are null. These fields participate in hash. Filters use stored root IDs only: cars without normalized IDs do not match the corresponding selections.
2 child attributes
2 child attributes
2 child attributes
2 child attributes
2 child attributes
2 child attributes
2 child attributes
1 = left (left-hand drive); 2 = right (right-hand drive). The response is an id/name object; the search filter accepts the integer ID. Omitted when unavailable, or null when the stored value cannot be resolved.
2 child attributes
One of: 1, 2.
One of: left, right.
SHA-256 of serialized vehicle data excluding root created_at/updated_at and listing created_at/last_seen_at/updated_at. Includes location_details, so adding this field or changing localized names can change the hash.
{31 keys
"brand": {2 keys
"model": {2 keys
"body_type": {2 keys
"transmission": {2 keys
"fuel": {2 keys
"color": {2 keys
"market_origin": {2 keys
"drive_wheels": {2 keys
"emission_standard": {2 keys
"steering_wheel_position": {2 keys
"option_ids": [6 items
]"listings": [2 items
]"inspections": [1 item
]"vehicle_history_reports": [1 item
]Example values chosen to show every field. IDs for enums, currency and locations are real; names, VINs and URLs are made up. A field you don't see in a real response was not supplied by the source.
Get API access
Connect your key to run every request on these pages against your own data. No key yet? Ask us for a demo key: the same JSON as the paid plans.