Discover/carVertical API
live

carVertical APIcarvertical.com ↗

Decode any 17-character VIN with the carVertical API. Get vehicle identity, specs, VIN structure breakdown, and report section previews in one call.

Endpoint health
verified 3h ago
get_vin_preview
1/1 passing latest checkself-healing
Endpoints
1
Updated
4h ago

What is the carVertical API?

The carVertical API exposes the free pre-purchase VIN preview through a single endpoint, get_vin_preview, returning 7 top-level response fields including decoded vehicle specs, a full VIN component breakdown, and the list of report sections advertised by carVertical for a given market. Supply a VIN and an optional two-letter market code to retrieve make, model, model year, manufacture year, body type, and more without purchasing a full report.

This call costs1 credit / call— charged only on success
Try it
17-character Vehicle Identification Number (letters A-Z except I, O, Q, and digits). Case-insensitive; returned upper-cased.
carVertical market (2-letter lowercase country code) whose preview page is read; controls the language of `headline` and whether `report_may_include` is rendered. Confirmed values: us, gb, de.
→ api.parse.bot/scraper/c1e4565b-f093-4757-ba07-98deef82c07e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/c1e4565b-f093-4757-ba07-98deef82c07e/get_vin_preview?vin=WBA3A5C51CF256691&market=gb' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 1 totalmissing one? ·

Returns the free pre-purchase preview carVertical shows for one 17-character VIN, in one round trip. The result is one object: `headline` (the page's own status line in the market's language, e.g. one shape is 'Success! We've found data records for this BMW 328i'), `lookup_strategy` (the site's internal decode source tag as returned, e.g. 'vss' or 'vss-records'), `vehicle` (decoded identity and specs: make, model, series, generation, model_year, manufacture_year, body_type code as the site emits it such as 'sedan', fuel_types list, engine code/description/type, cylinders, rev at max power, doors, seats — every field is null or empty when the site does not decode it for that VIN, which is common for older or non-European VINs), `vin_components` (WMI/VDS/VIS split plus manufacturer, country and region of origin, and whether the check digit validates), and `report_may_include` (the labels of report sections the market page advertises for the paid report; this is a market-level list, not per-VIN record counts, and is empty for markets whose preview page does not render it, e.g. us and de — gb renders it). The site does not publish per-VIN record counts or per-record-type availability before purchase, so none are returned. A VIN the site rejects yields a stale_input (input_not_found) response.

Input
ParamTypeDescription
vinrequiredstring17-character Vehicle Identification Number (letters A-Z except I, O, Q, and digits). Case-insensitive; returned upper-cased.
marketstringcarVertical market (2-letter lowercase country code) whose preview page is read; controls the language of `headline` and whether `report_may_include` is rendered. Confirmed values: us, gb, de.
Response
{
  "type": "object",
  "fields": {
    "vin": "the VIN as the site echoes it (upper-case)",
    "market": "market code the preview was read from",
    "vehicle": "decoded vehicle object: make, model, model_label, series, generation, model_year (integer), manufacture_year (integer), body_type, fuel_types (array of strings), steering_wheel_placement, engine_code, engine_description, engine_type, number_of_cylinders, rev_at_max_power_rpm, number_of_doors, number_of_seats; unknown values are null / empty array",
    "headline": "the preview page's status headline, in the market's language",
    "vin_components": "VIN breakdown: wmi, vds, vis, manufacturer, country, region, checksum_valid (boolean)",
    "lookup_strategy": "site's decode-source tag string (e.g. vss, vss-records)",
    "report_may_include": "array of report-section labels the market advertises for the paid report (market-level, may be empty)"
  },
  "sample": {
    "data": {
      "vin": "WBA3A5C51CF256691",
      "market": "gb",
      "vehicle": {
        "make": "BMW",
        "model": "328",
        "series": "3 Series",
        "body_type": "sedan",
        "fuel_types": [
          "Gasoline"
        ],
        "generation": "F30",
        "model_year": 2012,
        "engine_code": "N20",
        "engine_type": "Internal Combustion",
        "model_label": "328i",
        "number_of_doors": 4,
        "number_of_seats": 5,
        "manufacture_year": null,
        "engine_description": "i",
        "number_of_cylinders": 4,
        "rev_at_max_power_rpm": 5000,
        "steering_wheel_placement": "LHD"
      },
      "headline": "Success! We’ve found data records for this BMW 328i",
      "vin_components": {
        "vds": "3A5C51",
        "vis": "CF256691",
        "wmi": "WBA",
        "region": "Europe",
        "country": "Germany",
        "manufacturer": "BMW",
        "checksum_valid": false
      },
      "lookup_strategy": "vss",
      "report_may_include": [
        "License plate change",
        "Write-off & scrap",
        "Market value",
        "Vehicle identity check",
        "Damage records",
        "Mileage history",
        "Theft records",
        "Outstanding finance",
        "Road tax",
        "MOT"
      ]
    },
    "status": "success"
  }
}

About the carVertical API

What get_vin_preview returns

The get_vin_preview endpoint accepts a 17-character VIN (letters A–Z excluding I, O, and Q, plus digits; case-insensitive) and an optional market parameter. The vehicle object in the response includes make, model, model_label, series, generation, model_year (integer), manufacture_year (integer), and body_type — all decoded from the VIN without requiring a paid report. The headline field returns the preview page's status line in the market's language, which can confirm whether carVertical has data records for that specific VIN.

VIN structure and validation

The vin_components object breaks the identifier into its standard segments: wmi (World Manufacturer Identifier), vds (Vehicle Descriptor Section), and vis (Vehicle Identifier Section), alongside derived fields manufacturer, country, region, and checksum_valid (boolean). The checksum_valid boolean is useful for pre-validating a VIN before making downstream calls or purchasing a full carVertical report.

Market coverage and report section labels

The market parameter accepts a 2-letter lowercase country code corresponding to a carVertical regional storefront. This controls the language of the headline field and determines which report section labels are returned in report_may_include — an array of strings describing what the paid report would cover in that market. The array may be empty for markets with limited coverage. The lookup_strategy field returns a tag string (e.g., vss, vss-records) indicating how carVertical categorises its own decode result.

Scope

This API returns only data exposed on carVertical's public free preview — vehicle identity, VIN breakdown, and advertised report sections. Accident history, odometer records, ownership history, and other paid-report data are not included in this response.

Reliability & maintenanceVerified

The carVertical API is a managed, monitored endpoint for carvertical.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when carvertical.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official carvertical.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Pre-validate a VIN's checksum and structure before submitting it to downstream vehicle history services
  • Decode make, model, model year, and body type from a raw VIN string for used-car listing enrichment
  • Determine manufacture year vs. model year discrepancies from the vehicle object for fleet management tools
  • Localise vehicle identity data by querying with different market codes to match a buyer's regional context
  • Audit which report sections carVertical advertises per market using report_may_include for competitive analysis
  • Surface wmi, country, and manufacturer fields to verify vehicle origin in import/export workflows
  • Display a status headline in the user's local language using the headline field in a multilingual car-buying app
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does carVertical have an official developer API?+
carVertical offers a partner/affiliate program but does not publish a general-purpose public developer API with open registration. The Parse API provides structured access to the data on carVertical's public VIN preview pages.
What does get_vin_preview return for a VIN carVertical has no records for?+
The endpoint still returns the decoded vehicle object and vin_components derived from the VIN's structure itself. The headline field will reflect carVertical's own no-records status message for the selected market, and lookup_strategy may differ from a record-matched result (e.g., vss rather than vss-records).
Does the API return accident history, mileage records, or ownership data?+
No. Those fields are part of carVertical's paid report and are not exposed on the public preview. The API covers vehicle identity (make, model, model_year, manufacture_year, body_type), VIN structure (wmi, vds, vis, checksum_valid), and the list of report section labels (report_may_include). You can fork this API on Parse and revise it to add an endpoint that handles paid-report data if you have the necessary access.
How does the `market` parameter affect the response?+
Passing a 2-letter lowercase country code (e.g., lt, de, us) selects the carVertical regional storefront to read the preview from. This changes the language of the headline field and may change the contents of report_may_include, since different markets advertise different report sections. If omitted, a default market is used.
Can I look up multiple VINs in a single request or get batch results?+
The current endpoint processes one VIN per request. Batch or multi-VIN queries are not currently supported. You can fork this API on Parse and revise it to add a batch endpoint that iterates over a list of VINs.
Page content last updated . Spec covers 1 endpoint from carvertical.com.
Related APIs in AutomotiveSee all →