Health & contract
Check service dependencies and inspect the API index.
Unauthenticated process liveness probe.
Requires the none — no API key required scope.
Example request
GET https://api.thecarapi.com/api/health/liveExample response
{
"status": "ok",
"service": "car-details-api",
"contract_version": "2026-09-03"
}Unauthenticated readiness probe — is the data layer reachable?
Requires the none — no API key required scope.
Example request
GET https://api.thecarapi.com/api/health/readyExample response
{
"status": "ready"
}Return service, data-feed and schema health.
Requires the ops scope.
Example requests
GET https://api.thecarapi.com/api/healthcurl -H "Authorization: Bearer $API_KEY" "https://api.thecarapi.com/api/health"Example response
{
"status": "healthy",
"service": "car-details-api",
"worker_pid": 41,
"contract_version": "2026-09-03",
"typesense": {
"enabled": true,
"healthy": true
},
"public_auction_feed": {
"enabled": true,
"fresh": true
}
}Machine-readable schema catalog, pagination limits, and live-price capability.
Requires the ops scope.
Example requests
GET https://api.thecarapi.com/api/contractcurl -H "X-API-Key: $API_KEY" "https://api.thecarapi.com/api/contract"Example response
{
"success": true,
"version": "2026-09-03",
"schemas": {
"search_result_card": {
"required": [],
"optional": []
}
},
"pagination": {
"max_limit": 100,
"max_offset": 5000
},
"live_prices": {
"enabled": true,
"sites": [
"openlane",
"ecarstrade"
],
"ttl_seconds": 120
}
}What you get back
versionstringThe contract version this deployment serves. Matches the contract_version on response bodies that carry one. This response itself carries no envelope metadata — version is the contract version.
schemasobjectRequired and optional keys per response shape. This is the authoritative machine-readable schema; prefer it to hardcoding field lists. As of 2026-08-19, auction_detail.optional lists vault_gallery and brands_models_facets.optional lists errors — gate on those rather than comparing version strings.
pagination.max_limitintegerThe page-size ceiling. Clamp your own paging to it rather than discovering it by being clamped.
pagination.max_offsetintegerThe offset cap on the capped endpoints (catalog, archive, top-offers, classifieds listings). Search and listVehicles have no offset cap.
live_pricesobjectWhether this deployment reads a running auction’s bid when its detail is requested, which sources it covers, and how long a refreshed price stays current ({ enabled, sites, ttl_seconds }). The values are illustrative, not guaranteed — read them at startup rather than hardcoding them. The whole block is absent where the feature does not exist at all, and that absence is the only way to tell “live prices are unavailable” from “this car has none right now”, because both look identical in a detail response.
Return the human-readable API index and service version.
Requires the ops scope.
Example requests
GET https://api.thecarapi.com/curl -H "X-API-Key: $API_KEY" "https://api.thecarapi.com/"Example response
{
"service": "Car Details API",
"version": "2.0.0",
"endpoints": {
"GET /api/health": "Health check endpoint"
},
"typesense": {
"enabled": true,
"running": true
}
}