{"openapi":"3.1.0","info":{"title":"AllCars Car-Data API","description":"Cyprus car-market data API: factory specs, registration-era road tax, live market valuations, deal scores, depreciation curves, plate dossiers, technical blueprints and embeddable SVG widgets. Authenticate with an `ac_live_…` key (Bearer or `X-API-Key`; image endpoints also accept `?key=`).\n\n**Errors** share one flat envelope `{error, code, request_id}` (plus `details:[{field,message}]` for input errors). Branch on the machine `code`, not the message. Every response carries an `X-Request-Id` header (it equals the error body's `request_id`); quote it in support tickets. The full, closed `code` set is listed below.\n## Error codes\n\nEvery error response shares one flat envelope `{ \"error\": <message>, \"code\": <machine-code>, \"request_id\": <id> }` (validation errors also carry a `details` array of `{field, message}`). The `code` is drawn from this closed, stable set:\n\n| Category | Code | HTTP | Meaning |\n| --- | --- | --- | --- |\n| Auth | `missing_key` | 401 | No API key supplied in Authorization / X-API-Key. |\n| Auth | `invalid_key` | 401 | API key not recognised. |\n| Auth | `expired_key` | 401 | API key has passed its expiry date. |\n| Auth | `revoked_key` | 403 | API key was revoked. |\n| Auth | `no_plan` | 403 | API key has no plan assigned. |\n| Auth | `endpoint_forbidden` | 403 | This key's plan does not allow the endpoint. |\n| Auth | `quota_exceeded` | 429 | Monthly request quota exhausted. |\n| Auth | `rate_limited` | 429 | Too many requests; slow down (per-key or per-IP). |\n| Auth | `metering_unavailable` | 503 | Quota / rate store is temporarily unreachable. |\n| Validation | `missing_params` | 400 | A required parameter was absent. |\n| Validation | `validation_error` | 422 | A supplied parameter was malformed or out of range (see `details`). |\n| Validation | `length_required` | 411 | A Content-Length header is required for this request. |\n| Validation | `body_too_large` | 413 | Request body exceeded the size limit. |\n| Not found | `not_found` | 404 | The requested resource or route does not exist. |\n| Not found | `method_not_allowed` | 405 | The HTTP method is not allowed on this route. |\n| Not found | `no_match` | 404 | No specs / tax record matched the make + model (see candidate fields). |\n| Not found | `no_curve` | 404 | No depreciation curve is available for this model. |\n| Not found | `no_score` | 404 | No deal score is available for this listing. |\n| Not found | `score_unavailable` | 404 | The listing exists but cannot be scored yet. |\n| Service | `warming_up` | 503 | The valuation engine is still loading; retry shortly. |\n| Service | `busy` | 503 | The service is at its concurrency limit; retry shortly. |\n| Service | `db_unreachable` | 503 | The database is not reachable (readiness probe). |\n| Service | `deal_error` | 502 | The deal engine returned an unexpected error. |\n| Upstream | `upstream_error` | 502 | An upstream service (specs / tma) failed. |\n| Upstream | `upstream_4xx` | 400 | An upstream service rejected the request (non-404/403 4xx). |\n| Generic | `http_error` | 400 | Generic fallback for a framework-raised HTTP error with no envelope. |\n","version":"1.0"},"paths":{"/v1/specs":{"get":{"summary":"V1 Specs","operationId":"v1_specs_v1_specs_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"cc","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cc"},"example":1800},{"name":"fuel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel"},"example":"petrol"},{"name":"body","in":"query","required":false,"schema":{"type":"string","default":"","title":"Body"},"example":"sedan"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tax":{"get":{"summary":"Cyprus road tax + running cost","description":"Cyprus annual road tax + running-cost context for a car.\n\nReturns `annual_road_tax`, the `tax_method`, CO₂ (`co2_gkm`, `co2_estimated`),\nand an `alt_road_tax` where a registration-era alternative applies. Passing a\n`plate` makes the tax registration-era-aware: `tax_basis_year` is the year the\ntax was actually computed on (the plate's registration year overrides the\nmanufacture `year`) and `plate_reg_era` names the era. Also surfaces running\ncost: `tank_range_km` and `tank_cost`.","operationId":"v1_tax_v1_tax_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"cc","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cc"},"example":1800},{"name":"fuel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel"},"example":"petrol"},{"name":"plate","in":"query","required":false,"schema":{"type":"string","default":"","title":"Plate"},"example":"KWC123"},{"name":"body","in":"query","required":false,"schema":{"type":"string","default":"","title":"Body"},"example":"sedan"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blueprint.json":{"get":{"summary":"V1 Blueprint Json","operationId":"v1_blueprint_json_v1_blueprint_json_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"cc","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cc"},"example":1800},{"name":"fuel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel"},"example":"petrol"},{"name":"plate","in":"query","required":false,"schema":{"type":"string","default":"","title":"Plate"},"example":"KWC123"},{"name":"body","in":"query","required":false,"schema":{"type":"string","default":"","title":"Body"},"example":"sedan"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blueprint.svg":{"get":{"summary":"V1 Blueprint Svg","operationId":"v1_blueprint_svg_v1_blueprint_svg_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"cc","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cc"},"example":1800},{"name":"fuel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel"},"example":"petrol"},{"name":"color","in":"query","required":false,"schema":{"type":"string","default":"","title":"Color"},"example":"white"},{"name":"body","in":"query","required":false,"schema":{"type":"string","default":"","title":"Body"},"example":"sedan"}],"responses":{"200":{"description":"Successful Response","content":{"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/makes":{"get":{"summary":"V1 Catalog Makes","operationId":"v1_catalog_makes_v1_catalog_makes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/catalog/models":{"get":{"summary":"V1 Catalog Models","operationId":"v1_catalog_models_v1_catalog_models_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/generations":{"get":{"summary":"V1 Catalog Generations","operationId":"v1_catalog_generations_v1_catalog_generations_get","parameters":[{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Model Id"},"example":2168}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/variants":{"get":{"summary":"V1 Catalog Variants","operationId":"v1_catalog_variants_v1_catalog_variants_get","parameters":[{"name":"generation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Generation Id"},"example":3929}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/plate/{plate}":{"get":{"summary":"V1 Plate","operationId":"v1_plate_v1_plate__plate__get","parameters":[{"name":"plate","in":"path","required":true,"schema":{"type":"string","title":"Plate"},"example":"KWC123"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage":{"get":{"summary":"V1 Usage","operationId":"v1_usage_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/ping":{"get":{"summary":"V1 Ping","operationId":"v1_ping_v1_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/value":{"post":{"summary":"Live market valuation + comparables","description":"Value a car against the live Cyprus market.\n\nReturns `expected_price`, the comparable-market band (`market`), the top\n`comparables`, `confidence`, and an embedded price-anchored\n`depreciation_projection`. Supplying `price` adds a `deal` assessment.\n\nPrecision inputs sharpen the estimate: `engine_liters`, `body_type`,\n`gearbox`, `variant`, `city`. **If `engine_liters` is omitted** and the\ncomparables span more than one engine class, the response sets\n`engine_ambiguous: true` and returns an `engine_spread` (per-engine median\nprice + low/high) instead of one blended number — supply `engine_liters` to\nremove the ambiguity. `relaxed: true` means a wide fallback was needed (caps\nconfidence). For the full value×quality deal breakdown of a *real* listing,\nuse `/v1/listing/{id}/score`.","operationId":"v1_value_v1_value_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValuationRequest"},"example":{"make":"Toyota","model":"Corolla","year":2019,"fuel_type":"Petrol","mileage_km":85000}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/deal":{"post":{"summary":"V1 Deal","operationId":"v1_deal_v1_deal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealRequest"},"example":{"make":"Toyota","model":"Corolla","year":2019,"fuel_type":"Petrol","mileage_km":85000,"price":9900}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/depreciation":{"get":{"summary":"Depreciation curve (price-anchored)","description":"Projected value-over-time curve, fitted from the platform's historical\nmarket data.\n\nEach point carries `residual_pct` (value as a fraction of the car's value\nnow). **Pass `price`** (the car's actual value today) to anchor the curve to\nthat car: `residual_value` is then re-scaled to the car (`anchored: true`,\n`base_value` echoes the anchor). Without `price` the curve is the generic\nmake/model track in absolute EUR. `404 no_curve` when no fitted curve exists\nfor the (make, model) — coverage is data-driven.","operationId":"v1_depreciation_v1_depreciation_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"example":9900}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/listing/{listing_id}/score":{"get":{"summary":"Full deal score for a real listing","description":"Score a real bazaraki listing through the complete V6 engine.\n\nUnlike `/v1/deal` (which judges an asking price for an arbitrary spec), this\nreturns the full breakdown for an actual listing — the `value_score` ×\n`quality_score` × `quality_mult` split plus **all 15 `subscores`** (price\ndeviation, mileage, gearbox, colour, power, photos, description, seller type,\ndays-on-market, price history, popularity, …), `over_under`/`over_under_pct`,\n`confidence`, and the comparable-market group stats. It's the same canonical\nscore the platform shows, served sub-second from the in-memory engine.\n\n`listing_id` is the numeric bazaraki advert id. Active listings only — an\ninactive/unknown id, or one below the scoring floor, returns `404 no_score`.\nA warming engine returns `503 warming_up` (retry per `Retry-After`).","operationId":"v1_listing_score_v1_listing__listing_id__score_get","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"integer","title":"Listing Id"},"example":6549217}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/widget/deal.svg":{"get":{"summary":"Widget Deal","operationId":"widget_deal_v1_widget_deal_svg_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"fuel_type","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel Type"},"example":"petrol"},{"name":"mileage_km","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mileage Km"},"example":85000},{"name":"price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"example":9900}],"responses":{"200":{"description":"Successful Response","content":{"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/widget/value.svg":{"get":{"summary":"Widget Value","operationId":"widget_value_v1_widget_value_svg_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"fuel_type","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel Type"},"example":"petrol"},{"name":"mileage_km","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mileage Km"},"example":85000}],"responses":{"200":{"description":"Successful Response","content":{"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/widget/depreciation.svg":{"get":{"summary":"Widget Depreciation","operationId":"widget_depreciation_v1_widget_depreciation_svg_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019}],"responses":{"200":{"description":"Successful Response","content":{"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/widget/specs.svg":{"get":{"summary":"Widget Specs","operationId":"widget_specs_v1_widget_specs_svg_get","parameters":[{"name":"make","in":"query","required":false,"schema":{"type":"string","default":"","title":"Make"},"example":"toyota"},{"name":"model","in":"query","required":false,"schema":{"type":"string","default":"","title":"Model"},"example":"corolla"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"example":2019},{"name":"fuel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fuel"},"example":"petrol"}],"responses":{"200":{"description":"Successful Response","content":{"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DealRequest":{"properties":{"make":{"type":"string","maxLength":50,"minLength":1,"title":"Make","description":"Vehicle make, e.g. 'BMW', 'Mercedes-Benz', 'Toyota'"},"model":{"type":"string","maxLength":80,"minLength":1,"title":"Model","description":"Vehicle model, e.g. '3-Series', 'C-Class', 'Corolla'"},"year":{"type":"integer","maximum":2027.0,"minimum":1990.0,"title":"Year","description":"Year of manufacture"},"fuel_type":{"type":"string","title":"Fuel Type","description":"Fuel type. Valid: Diesel, Electric, Hybrid Diesel, Hybrid Petrol, LPG, None, Petrol, Plug-In Hybrid Diesel, Plug-In Hybrid Petrol"},"mileage_km":{"type":"integer","maximum":999999.0,"minimum":0.0,"title":"Mileage Km","description":"Mileage in kilometres"},"engine_liters":{"anyOf":[{"type":"number","maximum":8.0,"minimum":0.4},{"type":"null"}],"title":"Engine Liters","description":"Engine size in litres, e.g. 2.0"},"body_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Type","description":"Body type. Valid: Convertible, Coupe, Estate, Hatchback, MPV, Pickup, SUV, Saloon"},"gearbox":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gearbox","description":"Gearbox. Valid: Automatic, Manual"},"variant":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Variant","description":"Trim/variant, e.g. 'M Sport', 'AMG', 'GTI'"},"price":{"type":"number","maximum":9999999.0,"minimum":100.0,"title":"Price","description":"Asking price in EUR (required — the deal score judges this price against the market)"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"Cyprus city for location-adjusted pricing"}},"type":"object","required":["make","model","year","fuel_type","mileage_km","price"],"title":"DealRequest","description":"ValuationRequest with the asking price REQUIRED.\n\nRequired: make, model, year, fuel_type, mileage_km, price.\nOptional precision inputs: engine_liters, body_type, gearbox, variant, city."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValuationRequest":{"properties":{"make":{"type":"string","maxLength":50,"minLength":1,"title":"Make","description":"Vehicle make, e.g. 'BMW', 'Mercedes-Benz', 'Toyota'"},"model":{"type":"string","maxLength":80,"minLength":1,"title":"Model","description":"Vehicle model, e.g. '3-Series', 'C-Class', 'Corolla'"},"year":{"type":"integer","maximum":2027.0,"minimum":1990.0,"title":"Year","description":"Year of manufacture"},"fuel_type":{"type":"string","title":"Fuel Type","description":"Fuel type. Valid: Diesel, Electric, Hybrid Diesel, Hybrid Petrol, LPG, None, Petrol, Plug-In Hybrid Diesel, Plug-In Hybrid Petrol"},"mileage_km":{"type":"integer","maximum":999999.0,"minimum":0.0,"title":"Mileage Km","description":"Mileage in kilometres"},"engine_liters":{"anyOf":[{"type":"number","maximum":8.0,"minimum":0.4},{"type":"null"}],"title":"Engine Liters","description":"Engine size in litres, e.g. 2.0"},"body_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Type","description":"Body type. Valid: Convertible, Coupe, Estate, Hatchback, MPV, Pickup, SUV, Saloon"},"gearbox":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gearbox","description":"Gearbox. Valid: Automatic, Manual"},"variant":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Variant","description":"Trim/variant, e.g. 'M Sport', 'AMG', 'GTI'"},"price":{"anyOf":[{"type":"number","maximum":9999999.0,"minimum":100.0},{"type":"null"}],"title":"Price","description":"Asking price in EUR — if provided, triggers deal scoring"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"Cyprus city for location-adjusted pricing"}},"type":"object","required":["make","model","year","fuel_type","mileage_km"],"title":"ValuationRequest","description":"Car specs for market valuation."}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Your ac_live_… key as a Bearer token."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your ac_live_… key."}}},"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}]}