Skip to main content
The vehicle is the primary object in AutosnapAI. It represents a single real-world vehicle in a dealer’s inventory, uniquely identified by its VIN + dealership.
v1.0 schema lock. The set of keys documented on this page is the locked v1.0 contract for vehicles[i] in the Fetch Inventory response. We will never remove a documented key, never rename a documented key, and never change a documented type without bumping to v2 (see Versioning). New fields may be added additively; your client must tolerate unknown keys.
Stable schema — every documented key is always present. Every vehicle object returned by the API contains every documented field. When a value is unavailable for that vehicle, the field is populated with null rather than omitted. Your client should expect every key to exist on every record and check for null to determine availability.

Object shape

Core identifiers

VIN uniqueness is per-dealer, not global. Inventory is scoped to each dealership. The same VIN may legitimately appear as separate records at multiple dealerships when:
  • A dealer group shares used-inventory across multiple rooftop websites (both sites publicly list the same physical vehicle, typically with identical stocknum and price)
  • A vehicle has recently transferred between dealers and the prior dealer’s site has not yet removed the listing
Use the composite key (dealership_id, vin) for uniqueness. If you need to deduplicate across dealers, prefer the record with the most recent last_seen timestamp. The internal id (UUID) is always globally unique and safe to store as a primary key on your side.

Condition and certification

Specifications

Pricing fields

The API converts zero values to null for these fields: msrp, price, internet_price, list_price, invoice_price, book_value, discount_amount, final_price, total_discounts, total_fees, city_mpg, hwy_mpg, age_days, and engine_cyl_count.
price_components and photo_url_list are returned as native JSON objects/arrays, not as JSON strings. You can access them directly without parsing (e.g. vehicle.price_components.final_price in JavaScript or vehicle["price_components"]["final_price"] in Python).

Colors

Dates and lifecycle

Media and features

Field availability varies by dealership website provider. Not all fields are populated for every vehicle. Fields that are not available from a given provider are returned as null or 0.

Field availability

Field availability varies per provider, per dealer, and per VIN. Plan for nulls on every field except id, vin, year, make, model, and condition. See Provider Coverage for per-provider field details.

How to get vehicle data

Use the Fetch Inventory endpoint to retrieve paginated vehicle records for any active dealership.

Deeper per-VIN data

The base vehicle object captures the inventory fields every dealership publishes. For richer per-VIN data — third-party history records, dealer-provided service documentation, warranty paperwork, and more — see Premium Data Packages. Packages are optional add-ons, disabled by default, and enabled per-dealership through your account manager.