Certified Data API

Certified Vehicle Data API for Developers

Integrate certified, audit-ready vehicle history data into your application via our RESTful API. Sourced from over 900 official registries and 1B+ verified records across 45+ countries, backed by a 99.95% uptime SLA.

https://api.autocertif.com/v1

Quick Start

1

Get Your API Key

Sign up for a certified business account and generate your API key from the dashboard. Sandbox keys are available for compliance testing with no rate charges.

2

Make Your First Call

Authenticate with your API key and certificate key, then send your first request to any endpoint. Start with the vehicle identity endpoint for an instant, source-traced response.

3

Get Results

Receive structured JSON with certified vehicle data, source attribution and a verification timestamp on every field. Parse, display or archive the results as needed.

Authentication

Every API request is authenticated with two credentials: a Bearer token in the Authorization header and your X-Certificate-Key header. Keys are issued, rotated and revoked from your certified business dashboard, with full access logging for compliance.

Example Request
curl -X GET https://api.autocertif.com/v1/vehicles/WBA3A5G59DNP26082/identity \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Certificate-Key: YOUR_CERTIFICATE_KEY" \
  -H "Content-Type: application/json"

Keep your keys safe! Never expose your API key or X-Certificate-Key in client-side code. Store them in environment variables and route calls through a server-side proxy to keep your credentials and audit trail secure.

Endpoints

The Certified Data API exposes five core endpoints: request a certified report, retrieve a certificate, track certification status, run bulk certifications and resolve a VIN identity. Every certificate carries a tamper-proof seal, source attribution and a certified_at timestamp.

POST/v1/certificates

Request Certificate

Request a certified vehicle report from a VIN or license plate. Every data point is traced to its official source, sealed and timestamped.

Parameters

NameTypeRequiredDescription
vinstringConditional17-character Vehicle Identification Number. Required unless license_plate is provided.
license_platestringConditionalRegistration plate. Required unless vin is provided.
countrystringYesISO country code of registration, for example FR
depthstringNoCertification depth: standard (default) or full
Example Request
curl -X POST https://api.autocertif.com/v1/certificates \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Certificate-Key: YOUR_CERTIFICATE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vin": "WBA3A5G59DNP26082", "country": "FR", "depth": "full"}'
GET/v1/certificates/{certificate_id}

Retrieve Certificate

Retrieve a previously issued certificate by its identifier, including its seal, checks and confidence score.

Parameters

NameTypeRequiredDescription
certificate_idstringYesCertificate identifier returned when the report was requested (path parameter)
Example Request
curl -X GET https://api.autocertif.com/v1/certificates/cert_8f2a91 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Certificate-Key: YOUR_CERTIFICATE_KEY"
GET/v1/certificates/{certificate_id}/status

Certificate Status

Check the processing and certification status of a certificate while its official sources are being verified.

Parameters

NameTypeRequiredDescription
certificate_idstringYesCertificate identifier to inspect (path parameter)
Example Request
curl -X GET https://api.autocertif.com/v1/certificates/cert_8f2a91/status \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Certificate-Key: YOUR_CERTIFICATE_KEY"
POST/v1/certificates/bulk

Bulk Certificates

Submit a batch of identifiers for certification in a single call. Each certificate is sealed independently and can be retrieved or tracked individually.

Parameters

NameTypeRequiredDescription
identifiersarrayYesArray of VIN or license plate strings (max 100 per request)
countrystringYesISO country code applied to the batch, for example FR
depthstringNoCertification depth applied to every item: standard (default) or full
Example Request
curl -X POST https://api.autocertif.com/v1/certificates/bulk \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Certificate-Key: YOUR_CERTIFICATE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"identifiers": ["WBA3A5G59DNP26082", "WVWZZZ3CZWE123456"], "country": "FR", "depth": "full"}'
GET/v1/vehicles/{vin}/identity

Vehicle Identity

Decode a VIN against official manufacturer registries to return make, model, year and certified specifications, without issuing a full certificate.

Parameters

NameTypeRequiredDescription
vinstringYes17-character Vehicle Identification Number (path parameter)
include_specsbooleanNoInclude full certified technical specifications
Example Request
curl -X GET https://api.autocertif.com/v1/vehicles/WBA3A5G59DNP26082/identity \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Certificate-Key: YOUR_CERTIFICATE_KEY"

Response Format

Every certificate is returned as a consistent JSON object: a unique certificate_id, a verification seal, the decoded vehicle, the certified checks, a confidence score and metadata documenting the request context.

JSON Response
{
  "certificate_id": "cert_8f2a91",
  "vin": "WBA3A5G59DNP26082",
  "certified_at": "2026-03-12T10:04:00Z",
  "seal": {
    "id": "seal_3kf9",
    "valid": true
  },
  "vehicle": {
    "make": "BMW",
    "model": "320d",
    "year": 2019
  },
  "checks": {
    "mileage": {
      "value": 142350,
      "unit": "km",
      "verified": true
    },
    "accidents": 0,
    "theft": "none",
    "title": "clean"
  },
  "official_sources": 8200,
  "confidence_score": 9.1,
  "meta": {
    "country": "FR",
    "depth": "full"
  }
}

Response Fields

certificate_idUnique identifier of the issued certificate, prefixed cert_
vinThe certified Vehicle Identification Number
certified_atISO 8601 timestamp at which the certificate was sealed
sealTamper-proof verification seal, with its id (prefixed seal_) and valid flag
vehicleDecoded vehicle identity: make, model and year
checks.mileageOdometer reading with unit and certified verification status
checks.accidentsNumber of certified accident records
checks.theftTheft status verified against official law-enforcement databases: none or flagged
checks.titleTitle status certified against the official registry: clean or branded
official_sourcesTotal number of official data sources cross-checked for this certificate
confidence_scoreCertification confidence on a 0 to 10 scale
metaRequest context: country of registration and certification depth

Error Handling

The API uses standard HTTP status codes. Every error returns a descriptive message and a detail field with a request ID to support debugging and audit.

CodeMessageDescription
400Bad RequestThe request body or parameters are malformed or missing required fields.
401UnauthorizedThe API key is missing, invalid, or has been revoked.
403ForbiddenThe API key does not have permission for this endpoint or resource.
404Not FoundThe requested resource (certificate, vehicle) was not found.
429Too Many RequestsRate limit exceeded. Check the X-Certificate-RateLimit headers and retry after the reset window.
500Server ErrorAn internal error occurred. Retry the request or contact support if it persists.
Error Response Example
{
  "status": "error",
  "error": {
    "code": 401,
    "message": "Unauthorized",
    "detail": "The provided API key is invalid or has expired."
  }
}

Rate Limits

API requests are rate-limited by subscription tier, each governed by a contractual SLA. Current limit usage is reported in the response headers of every call.

Starter

Requests / min

60

Requests / day

1,000

Concurrent

5

Growth

Requests / min

300

Requests / day

10,000

Concurrent

20

Enterprise

Requests / min

1,000+

Requests / day

Unlimited

Concurrent

100+

Rate Limit Headers

Every API response includes headers so you can track usage against your SLA in real time.

  • X-Certificate-RateLimit-Limit, Maximum requests allowed per window
  • X-Certificate-RateLimit-Remaining, Requests remaining in the current window
  • X-Certificate-RateLimit-Reset, Unix timestamp when the rate limit resets

Webhooks

Receive real-time, signed notifications when a certificate is issued or when important account events occur. Configure and verify webhook endpoints from your dashboard.

Supported Events

  • certificate.issued, A certificate was sealed and issued successfully
  • certificate.failed, Certification could not be completed
  • bulk.completed, All certificates in a batch are sealed
  • bulk.partial, Some certificates in a batch are sealed
  • subscription.usage, Approaching rate limit or quota threshold

Webhook Security

Every webhook payload is signed with HMAC-SHA256 using your webhook secret. Verify the X-Certificate-Signature header to confirm authenticity and integrity before processing.

Webhook Payload Example
{
  "event": "certificate.issued",
  "timestamp": "2026-03-12T10:04:00Z",
  "data": {
    "certificate_id": "cert_8f2a91",
    "vin": "WBA3A5G59DNP26082",
    "status": "certified",
    "seal": {
      "id": "seal_3kf9",
      "valid": true
    },
    "certificate_url": "https://api.autocertif.com/v1/certificates/cert_8f2a91"
  }
}

Ready to build on certified data?

Create your certified developer account and start integrating official, SLA-backed vehicle data into your applications today.