Home  /  Docs  /  HTTP API
REST API

CheckMyVIN HTTP API

Single JSON endpoint. NHTSA VPIC decode + recalls + AI summary in one response. Free tier 100 requests / IP / UTC day.

Endpoint

POST https://checkmyvin.net/api/decode

Quick start

curl -X POST https://checkmyvin.net/api/decode \
  -H "Content-Type: application/json" \
  -d '{"vin":"1FTFW1ET5DFC10312"}'

Response shape

{
  "vin": "1FTFW1ET5DFC10312",
  "vehicle": {
    "make": "FORD",
    "model": "F-150",
    "modelYear": "2013",
    "engineDisplacement": "3.5",
    "driveType": "4WD/4-Wheel Drive/4x4",
    "fuelType": "Gasoline",
    "plantCity": "DEARBORN",
    "plantCountry": "UNITED STATES (USA)"
  },
  "recalls": [
    { "campNo": "...", "component": "...", "summary": "...", "remedy": "..." }
  ],
  "maintenance": {
    "oil": "5W-30 (WSS-M2C961-A1)",
    "oilCapacity": "5.7 L (6.0 qt)",
    "tireSize": "Varies by trim — check door-jamb label"
  },
  "ai": {
    "overview": "...",
    "strengths": ["..."],
    "issues": ["..."],
    "buyingAdvice": "...",
    "maintenanceTips": "...",
    "score": 6
  },
  "generatedAt": "2026-06-11T12:00:00.000Z"
}

Rate limit

The free tier enforces 100 requests per IP per UTC day. Every response includes:

HeaderMeaning
X-RateLimit-Limit100 (current daily cap).
X-RateLimit-RemainingRequests left in the current UTC day window.
X-RateLimit-ResetSeconds until UTC midnight (when the counter resets).
X-CacheHIT if served from the 7-day KV cache; MISS on fresh decode.

When the limit is exceeded, the API returns HTTP 429 with a Retry-After header. Cached responses (X-Cache: HIT) still count against the limit — request budget is per IP, not per unique VIN.

Errors

StatusMeaning
400Invalid VIN format OR NHTSA returned no make/year. Response body includes error, errorText (NHTSA verbatim when available), and a partial vehicle object.
429Rate limit exceeded for this IP.
500Internal error generating the report (unexpected — please retry).

OpenAPI

Machine-readable OpenAPI 3.1 spec: https://checkmyvin.net/openapi.json — import directly into Postman, Insomnia, Stainless, or OpenAI's Custom GPT actions builder.

Prefer MCP?

If you're wiring this into an AI assistant, the MCP server gives Claude / ChatGPT direct tool access without you writing glue code.