CarsXE History API
Vehicle history reporting — 1 operation (getVehicleHistory) returning title records, junk and salvage events, insurance records, odometer readings and brand history for a VIN.
Vehicle history reporting — 1 operation (getVehicleHistory) returning title records, junk and salvage events, insurance records, odometer readings and brand history for a VIN.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/carsxe-history-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.1.0
info:
title: CarsXE History API
description: 'CarsXE is a B2B vehicle data API by PiWaves, LLC. It provides vehicle
specifications (VIN decoding), market values, vehicle history, recalls,
license plate decoding, vehicle images, plate/VIN image recognition,
Year Make Model data and OBD code decoding.
## Authentication
Most requests use a CarsXE API key in the `key` query parameter, e.g.
`https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=...`. Supported endpoints
also accept x402 payment without a CarsXE key. Recalls Batch x402 follow-up
requests use the scoped `X-CarsXE-Batch-Token` returned at submission.
## Caching
Many endpoints cache upstream results. A cached response may include the
message "The response is from the cache".
'
version: 1.0.0
contact:
name: CarsXE
url: https://api.carsxe.com
servers:
- url: https://api.carsxe.com
security:
- ApiKeyQuery: []
tags:
- name: History
description: Vehicle history reports
paths:
/history:
get:
operationId: getVehicleHistory
security:
- ApiKeyQuery: []
- X402Payment: []
- {}
tags:
- History
summary: Vehicle History
description: Retrieve a vehicle history report by VIN, including title, brand, junk/salvage and
insurance records.
parameters:
- $ref: '#/components/parameters/vin'
- $ref: '#/components/parameters/format'
responses:
'200':
description: History report retrieved.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
vin:
type: string
junkAndSalvageInformation:
type: array
items:
type: object
additionalProperties: true
insuranceInformation:
type: array
items:
type: object
additionalProperties: true
brandsRecordCount:
type: number
brandsInformation:
type: array
items:
type: object
additionalProperties: true
vinChanged:
type: boolean
currentTitleInformation:
type: array
items:
type: object
additionalProperties: true
historyInformation:
type: array
items:
type: object
additionalProperties: true
additionalProperties: true
'400':
description: Missing or invalid VIN.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
missingVin:
value:
success: false
message: Missing vin (vehicle identification number)
wrongLength:
value:
success: false
message: Wrong VIN length, must be 17 characters
'401':
$ref: '#/components/responses/Unauthorized'
'403':
description: This API key has been blocked for the History API.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
message: This API key has been blocked, please contact support if you believe this is
an error.
'404':
description: No history data found for this VIN.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
message: No data found for this VIN
'429':
$ref: '#/components/responses/UsageLimitExceeded'
'500':
$ref: '#/components/responses/InternalServerError'
components:
parameters:
format:
name: format
in: query
required: false
schema:
type: string
enum:
- json
- xml
default: json
description: The format of the response. One of `json` or `xml`.
vin:
name: vin
in: query
required: true
schema:
type: string
minLength: 17
maxLength: 17
description: The 17 character long vehicle identification number.
responses:
InternalServerError:
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
message: Internal server error
Unauthorized:
description: Missing API key, unknown/disabled API key, or inactive account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
missingKey:
value:
success: false
message: Missing API key
userNotFound:
value:
success: false
message: User with this API key was not found or the API key is disabled
userNotActive:
value:
success: false
message: User with this API key is not active. To activate update your billing on https://carsxe.com/dashboard/billing
UsageLimitExceeded:
description: API usage limit exceeded for the current billing period.
content:
application/json:
schema:
$ref: '#/components/schemas/UsageLimitError'
example:
success: false
message: API usage limit exceeded
usage:
current: 1000
limit: 1000
remaining: 0
schemas:
Error:
type: object
properties:
success:
type: boolean
const: false
message:
type: string
required:
- success
- message
additionalProperties: true
UsageLimitError:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
usage:
type: object
properties:
current:
type: number
description: Current usage in the billing period.
limit:
type: number
description: Included quota for the billing period.
remaining:
type: number
description: Remaining included quota.
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: key
description: Your CarsXE API key, passed as the `key` query parameter.
X402Payment:
type: apiKey
in: header
name: PAYMENT-SIGNATURE
description: x402 payment proof for supported operations. Start without a CarsXE key to receive
HTTP 402 payment requirements, then retry the identical request with the payment header produced
by your x402 client. CarsXE also accepts the legacy X-PAYMENT header.