{"openapi":"3.1.0","info":{"title":"The Used Car Index","version":"1.0.0","description":"Observed vehicle records, stored verified sales rates, and listing changes. No rating, verdict or repair advice."},"servers":[{"url":"/"}],"paths":{"/":{"get":{"summary":"Documentation and live examples","security":[],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/healthz":{"get":{"summary":"D1 health check","security":[],"parameters":[],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/openapi.json":{"get":{"summary":"This OpenAPI 3.1 document","security":[],"parameters":[],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/llms.txt":{"get":{"summary":"Plain text agent reference","security":[],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/.well-known/mcp/server-card.json":{"get":{"summary":"MCP discovery card","security":[],"parameters":[],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"},"endpoint":{"type":"string","format":"uri"},"transport":{"const":"streamable-http"},"auth":{"const":"bearer"},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name","description"]}}},"required":["name","version","description","endpoint","transport","auth","tools"]}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/vehicle_risk":{"get":{"summary":"Recorded facts for one vehicle (1 unit)","security":[{"bearerAuth":[]},{"apiKey":[]}],"parameters":[{"name":"make","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"model","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","minimum":2000,"maximum":2027}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleRisk"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/demo/vehicle_risk":{"get":{"summary":"Try recorded vehicle facts without a key (1 shared demo unit)","security":[],"parameters":[{"name":"make","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"model","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","minimum":2000,"maximum":2027}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleRisk"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"description":"Rate limited and meant for trying the API. Real use needs a key. Uses shared demo quotas and returns 503 when the demo is not configured."}},"/v1/compare_vehicles":{"get":{"summary":"Compact facts and factual orderings (N units)","security":[{"bearerAuth":[]},{"apiKey":[]}],"parameters":[{"name":"vehicles","in":"query","required":true,"schema":{"type":"string","description":"2..5 comma-separated make:model:year items; URL-encode. Limited by max_compare."}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comparison"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"post":{"summary":"Compare 2..5 vehicles, bounded by max_compare (N units)","security":[{"bearerAuth":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicles":{"type":"array","items":{"$ref":"#/components/schemas/VehicleInput"},"minItems":2,"maxItems":5}},"required":["vehicles"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comparison"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/listing_changes":{"get":{"summary":"Observed listing changes (1 unit)","security":[{"bearerAuth":[]},{"apiKey":[]}],"parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"model","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","minimum":2000,"maximum":2027}},{"name":"vin","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-HJ-NPR-Z0-9]{17}$"}},{"name":"event_type","in":"query","required":false,"schema":{"enum":["new","price_drop","relisted","delisted"]}},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Inclusive start date."}},{"name":"until","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Inclusive end date."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Opaque next_cursor; retain the same filters."}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingChanges"}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/usage":{"get":{"summary":"Own plan and UTC counters (no charge)","security":[{"bearerAuth":[]},{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"$ref":"#/components/schemas/Plan"},"counters":{"type":"object","properties":{"minute":{"$ref":"#/components/schemas/Counter"},"day":{"$ref":"#/components/schemas/Counter"},"month":{"$ref":"#/components/schemas/Counter"}},"required":["minute","day","month"]}},"required":["plan","counters"]}}}},"400":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/mcp":{"post":{"summary":"Stateless Streamable HTTP MCP","description":"initialize, ping and tools/list require no key; tools/call requires a key. Accept must include application/json and text/event-stream. JSON responses, 64 KB request limit. Same schemas and unit charges as HTTP.","security":[{},{"bearerAuth":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number","null"]},"method":{"type":"string"},"params":{"type":"object"}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-RateLimit-Window":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC result; tool results contain JSON text and structuredContent."}}}},"202":{"description":"Notification accepted"},"400":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"401":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"403":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"404":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"413":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"415":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"429":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"string"}}}},"500":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"503":{"description":"JSON-RPC error; data contains a problem. 401 includes WWW-Authenticate: Bearer. 429 includes Retry-After; binding denials use problem+json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}}}},"get":{"summary":"Unsupported; use POST","security":[],"responses":{"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"delete":{"summary":"Unsupported; stateless server","security":[],"responses":{"405":{"description":"RFC 9457 problem with stable code; 429 includes Retry-After.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key; distinct from administrative credentials."},"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"Problem":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"}},"required":["type","title","status","detail","code"],"additionalProperties":true},"RpcError":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number","null"]},"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Problem"}},"required":["code","message","data"]}},"required":["jsonrpc","id","error"]},"VehicleInput":{"type":"object","properties":{"make":{"type":"string","minLength":1,"maxLength":64},"model":{"type":"string","minLength":1,"maxLength":64},"year":{"type":"integer","minimum":2000,"maximum":2027}},"required":["make","model","year"],"additionalProperties":false},"Vehicle":{"type":"object","properties":{"make":{"type":"string","minLength":1,"maxLength":64},"model":{"type":"string","minLength":1,"maxLength":64},"year":{"type":"integer","minimum":2000,"maximum":2027},"family_key":{"type":"string"},"matched_models":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string"},"complaints":{"type":"integer","minimum":0}},"required":["model","complaints"]}},"resolved_via":{"enum":["vehicle_models","family_key"]}},"required":["make","model","year","family_key","matched_models","resolved_via"]},"Rate":{"type":"object","properties":{"complaints_per_100k_sold":{"type":["number","null"]},"units_sold":{"type":["number","null"]},"sales_year":{"type":["number","null"]},"basis":{"type":["string","null"]},"source":{"type":["string","null"]},"source_url":{"type":["string","null"]},"null_reason":{"type":["string","null"]}},"required":["complaints_per_100k_sold","units_sold","sales_year","basis","source","source_url","null_reason"]},"Plan":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"per_minute":{"type":"integer","minimum":0},"per_day":{"type":"integer","minimum":0},"per_month":{"type":"integer","minimum":0},"max_compare":{"type":"integer","minimum":1,"maximum":5},"mcp_enabled":{"type":"boolean"}},"required":["id","label","per_minute","per_day","per_month","max_compare","mcp_enabled"]},"Counter":{"type":"object","properties":{"period_start":{"type":"string"},"units":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"remaining":{"type":"integer","minimum":0},"reset_at":{"type":"string"}},"required":["period_start","units","limit","remaining","reset_at"]},"VehicleRisk":{"type":"object","properties":{"vehicle":{"$ref":"#/components/schemas/Vehicle"},"complaints":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"with_crash":{"type":"integer","minimum":0},"with_fire":{"type":"integer","minimum":0},"with_injury":{"type":"integer","minimum":0},"injuries":{"type":"integer","minimum":0},"deaths":{"type":"integer","minimum":0},"by_source":{"type":"object","properties":{"both":{"type":"integer","minimum":0},"bulk_only":{"type":"integer","minimum":0},"api_only":{"type":"integer","minimum":0}},"required":["both","bulk_only","api_only"]},"coverage_complete":{"type":"boolean"},"top_systems":{"type":"array","items":{"type":"object","properties":{"system":{"type":"string"},"count":{"type":"integer","minimum":0},"share":{"type":"number","minimum":0}},"required":["system","count","share"]}},"top_subsystems":{"type":"array","items":{"type":"object","properties":{"system":{"type":"string"},"subsystem":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["system","subsystem","count"]}}},"required":["total","with_crash","with_fire","with_injury","injuries","deaths","by_source","coverage_complete","top_systems","top_subsystems"]},"recalls":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"do_not_drive":{"type":"integer","minimum":0},"park_outside":{"type":"integer","minimum":0},"potential_units_max":{"type":["number","null"]},"by_system":{"type":"array","items":{"type":"object","properties":{"system":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["system","count"]}},"latest":{"type":"array","items":{"type":"object","properties":{"campaign_number":{"type":"string"},"received_date":{"type":["string","null"]},"systems":{"type":"array","items":{"type":"string"}},"defect":{"type":["string","null"]},"consequence":{"type":["string","null"]},"remedy":{"type":["string","null"]},"do_not_drive":{"type":["boolean","null"]},"park_outside":{"type":["boolean","null"]},"truncated":{"type":"boolean"},"url":{"type":"string"}},"required":["campaign_number","received_date","systems","defect","consequence","remedy","do_not_drive","park_outside","truncated","url"]},"maxItems":10}},"required":["total","do_not_drive","park_outside","potential_units_max","by_system","latest"]},"investigations":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"open":{"type":"integer","minimum":0},"items":{"type":"array","items":{"type":"object","properties":{"action_number":{"type":"string"},"opened_date":{"type":["string","null"]},"closed_date":{"type":["string","null"]},"campaign_numbers":{"type":"array","items":{"type":"string"}},"subject":{"type":["string","null"]},"summary":{"type":["string","null"]},"systems":{"type":"array","items":{"type":"string"}},"url":{"type":["string","null"]}},"required":["action_number","opened_date","closed_date","campaign_numbers","subject","summary","systems","url"]}}},"required":["total","open","items"]},"manufacturer_communications":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"by_system":{"type":"array","items":{"type":"object","properties":{"system":{"type":"string"},"subsystem":{"type":"string"},"source_field":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["system","subsystem","source_field","count"]}},"recent":{"type":"array","items":{"type":"object"},"maxItems":10}},"required":["total","by_system","recent"]},"rate":{"$ref":"#/components/schemas/Rate"},"model_tags":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ModelTags"}]},"model_tags_null_reason":{"enum":[null,"no_tagged_complaints"],"description":"no_tagged_complaints when model_tags is null; otherwise null."},"data":{"type":"object","properties":{"built_at":{"type":["string","null"]},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"]}},"notes":{"type":"array","items":{"type":"string"}}},"required":["built_at","sources","notes"]}},"required":["vehicle","complaints","recalls","investigations","manufacturer_communications","rate","model_tags","model_tags_null_reason","data"]},"ModelTags":{"type":"object","properties":{"model":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":2,"uniqueItems":true}],"description":"Stored tagged_by provenance. One model string, or all model versions if several contributed."},"schema_version":{"const":"tag-v1"},"tagged_complaints":{"type":"integer","minimum":0},"complaints_total":{"type":"integer","minimum":0},"tagged_share":{"type":"number","minimum":0,"maximum":1,"description":"Tagged complaints divided by the NHTSA complaint total."},"failure_modes":{"type":"array","items":{"type":"object","properties":{"label":{"enum":["mechanical_failure","electrical_electronic","fluid_or_fuel_leak","fire_or_overheating","loss_of_control","restraint_or_airbag","visibility_or_lighting","structural_or_corrosion","noise_or_comfort","unclear"]},"count":{"type":"integer","minimum":0},"share":{"type":"number","minimum":0,"maximum":1,"description":"Count divided by tagged_complaints."},"mean_confidence":{"type":"number","minimum":0,"maximum":1,"description":"Stored mean of the model probabilities for this chosen label; not accuracy."},"high_confidence_count":{"type":"integer","minimum":0,"description":"Confidence at least 0.8."},"low_confidence_count":{"type":"integer","minimum":0,"description":"Confidence below 0.5."}},"required":["label","count","share","mean_confidence","high_confidence_count","low_confidence_count"]},"maxItems":10},"severities":{"type":"array","items":{"type":"object","properties":{"label":{"enum":["none","low","moderate","high","critical"]},"count":{"type":"integer","minimum":0},"share":{"type":"number","minimum":0,"maximum":1,"description":"Count divided by tagged_complaints."},"mean_confidence":{"type":"number","minimum":0,"maximum":1,"description":"Stored mean of the model probabilities for this chosen label; not accuracy."},"high_confidence_count":{"type":"integer","minimum":0,"description":"Confidence at least 0.8."},"low_confidence_count":{"type":"integer","minimum":0,"description":"Confidence below 0.5."}},"required":["label","count","share","mean_confidence","high_confidence_count","low_confidence_count"]},"maxItems":5},"confidence_note":{"type":"string","description":"Confidence is the model's own probability for the label it chose (0 to 1), not accuracy."},"note":{"type":"string","description":"Model-generated labels on tagged complaints only (model years 2012 and newer), separate from NHTSA's own flags in complaints."}},"required":["model","schema_version","tagged_complaints","complaints_total","tagged_share","failure_modes","severities","confidence_note","note"]},"Comparison":{"type":"object","properties":{"vehicles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"vehicle":{"type":"object"},"not_found":{"type":"boolean"},"suggestions":{"type":"array","items":{"type":"object"}},"complaints":{"type":["object","null"]},"recalls":{"type":["object","null"]},"investigations":{"type":["object","null"]},"manufacturer_communications":{"type":["object","null"]},"rate":{"oneOf":[{"$ref":"#/components/schemas/Rate"},{"type":"null"}]},"top_systems":{"type":"array","items":{"type":"object","properties":{"system":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["system","count"]}}},"required":["key","vehicle","not_found","complaints","recalls","investigations","manufacturer_communications","rate","top_systems"]}},"comparison":{"type":"object","properties":{"fewest_complaints_per_100k":{"type":"object","properties":{"ordered":{"type":"array","items":{"type":"string"}},"unrated":{"type":"array","items":{"type":"string"}}},"required":["ordered","unrated"]},"most_recalls":{"type":"array","items":{"type":"string"}},"most_complaints":{"type":"array","items":{"type":"string"}}},"required":["fewest_complaints_per_100k","most_recalls","most_complaints"]}},"required":["vehicles","comparison"]},"ListingEvent":{"type":"object","properties":{"id":{"type":"integer","minimum":0},"event_date":{"type":"string","format":"date"},"event_type":{"enum":["new","price_drop","relisted","delisted"]},"vin":{"type":"string","pattern":"^[A-HJ-NPR-Z0-9]{17}$"},"make":{"type":"string","minLength":1,"maxLength":64},"model":{"type":"string","minLength":1,"maxLength":64},"year":{"type":"integer","minimum":2000,"maximum":2027},"price_old":{"type":["number","null"]},"price_new":{"type":["number","null"]},"mileage":{"type":["number","null"]},"listing_url":{"type":"string","format":"uri"},"source":{"type":"string"}},"required":["id","event_date","event_type","vin","make","model","year","price_old","price_new","mileage","listing_url","source"],"additionalProperties":false},"ListingChanges":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/ListingEvent"}},"next_cursor":{"type":["string","null"]},"collectors":{"type":"object","properties":{"status":{"enum":["no_active_sources","active"]},"sources_active":{"type":"integer","minimum":0},"last_run_at":{"type":["string","null"]}},"required":["status","sources_active","last_run_at"]},"notes":{"type":"array","items":{"type":"string"}}},"required":["events","next_cursor","collectors","notes"]}}}}