# The Used Car Index NHTSA vehicle records, verified sales-denominator rates when available, and observed listing changes. No safety verdict, recommendation, repair advice, photos or dealer-written text. A delisted listing does not establish a completed transaction. GET /v1/demo/vehicle_risk?make=Toyota&model=RAV4&year=2018 (no credential; rate limited for trying the API; real use needs a key) GET /v1/vehicle_risk?make=Toyota&model=RAV4&year=2018 GET /v1/compare_vehicles?vehicles=toyota:rav4:2018,honda:cr-v:2018 POST /v1/compare_vehicles with {"vehicles":[{"make":"Toyota","model":"RAV4","year":2018},{"make":"Honda","model":"CR-V","year":2018}]} GET /v1/listing_changes with optional make, model, year, vin, event_type, since, until, limit (1..200), cursor GET /v1/usage returns the caller's plan and minute/day/month counters, free of charge. GET /healthz checks D1. GET /openapi.json has the full interface. GET / serves documentation and live plan limits. Auth: Authorization: Bearer or X-API-Key. Keys share UTC minute, day and month caps across HTTP and MCP. Vehicle/listing calls cost 1 unit; comparisons cost N (2..5, bounded by max_compare). Invalid input costs nothing. Admitted requests, including 404, count. Quota rejections (429) write nothing and consume no units. X-RateLimit-* headers describe the lowest fraction remaining; 429 adds Retry-After. Public discovery responses use window none and zero rate headers; the demo lookup reports shared plan headers. All routes have IP throttling; limiter denials include Retry-After. Errors are RFC 9457 problem+json with code. Bodies are capped at 64 KB. No authenticated response caching. POST /mcp: stateless Streamable HTTP JSON, Accept: application/json, text/event-stream. initialize, ping, tools/list are public. tools/call needs a key. Tools: vehicle_risk, compare_vehicles, listing_changes. Results include JSON text and structuredContent. GET /.well-known/mcp/server-card.json gives endpoint discovery. GET and DELETE /mcp return 405. Source boundaries: complaints API plus bulk file, merged/deduplicated by ODI number; recalls; investigations; manufacturer component systems/subsystems. Verified goodcarbadcar.net sales denominators only, otherwise null with a reason. Jev model_tags cover model years 2012 and newer, about 43 percent of complaints overall, and are separate from NHTSA flags in complaints. Fields include model, schema_version, tagged_complaints, complaints_total, tagged_share; failure_modes and severities contain label, count, share, mean_confidence, high_confidence_count (at least 0.8) and low_confidence_count (below 0.5). Confidence is the model's own probability for its chosen label (0 to 1), not accuracy. Labels describe tagged complaints only. Absent tags are null with model_tags_null_reason. Counts are observed records, rates are calendar-year proxies, and neither is a verdict.