You are offline — AutoTools still works from your device.
Developer

Public API — free JSON endpoints

AutoTools exposes free, open JSON endpoints for automotive data. No key required, no rate limits for fair use, CORS enabled. Everything below is already used by the site’s own tools.

Free for personal and commercial use with attribution to AutoTools.

JSON endpoints

GET /api/torque-specs ?brand=Volkswagen&component=wheel

Torque specifications. Returns brands, components and the filtered list of specs.

{ "brands": [...], "components": [...], "specs": [...] }
GET /api/obd/search ?q=P0300

Search OBD-II codes by exact code or keyword. Returns up to 25 matching codes.

[ { "code": "P0300", "meaning": "...", "system": "..." } ]
GET /api/obd/{code} /api/obd/P0300

Fetch a single OBD-II code with causes, symptoms, checks and tools.

{ "code": "P0300", "causes": [...], "symptoms": [...], "checks": [...], "tools": [...] }
GET /api/quiz

Random set of 10 quiz questions with options, answer index and explanation.

{ "questions": [ { "q": "...", "options": [...], "answer": 0, "explanation": "..." } ] }
GET /api/oil-brands

List of car brands with oil-change specifications.

[ "Renault", "BMW", ... ]
GET /api/oil-specs ?brand=Renault&model=Clio

Oil-change specifications filtered by brand and/or model.

[ { "brand": "Renault", "model": "Clio", "oil_qty_l": 4.3, "viscosity": "5W-30", ... } ]
GET /api/encyclopedia/{slug} /api/encyclopedia/alternator

Fetch an encyclopedia article: function, symptoms, diagnosis and maintenance.

{ "slug": "alternator", "function": [...], "symptoms": [...], ... }

Vehicle information & maintenance

GET /api/vehicles/search ?q=bmw+320d&make=&model=&year=&engine=&fuel=&body=&per_page=

Search the vehicle catalogue. Free text matches manufacturer, model, trim, engine code and year; the other parameters filter. Results carry the public URL for each vehicle.

{ "data": [ { "make": "BMW", "model": "3 Series", "year": 2019, "trim": "320d", "engine_code": "B47D20", "url": "/vehicle-information/bmw/3-series/2019/320d" } ], "meta": { "total": 1, "min_query_length": 2 } }
GET /api/vehicles/options ?step=makes|models|years|trims|engines&make=&model=&year=&trim=&q=

One step of the manufacturer to engine cascade. Only options that lead to a page with data are returned, so an option is never offered when the next step cannot be resolved.

{ "step": "engines", "data": [ { "value": "b47d20", "label": "B47D20", "hint": "2.0 L · 4 cyl · Diesel" } ], "count": 1, "availability": { "engine": true } }
GET /api/vehicles/{id} /api/vehicles/3

Full report for one vehicle: identification, engine, every section that holds data, its sources and verification states, internal links and related vehicles. Sections with nothing on record are omitted rather than returned empty.

{ "data": { "vehicle": {...}, "engine": {...}, "completeness": 70, "is_indexable": true, "sections": { "engine": {...}, "oil": {...}, "maintenance": {...} }, "disclaimer": {...}, "links": {...} } }
GET /api/vehicles/{id}/engine /api/vehicles/3/engine

Engine section only: code, displacement, cylinders, output, torque, emission standard and any additional normalised engine facts.

{ "available": true, "data": { "title": "Engine", "items": {...}, "sources": [...] } }
GET /api/vehicles/{id}/oil /api/vehicles/3/oil

Engine oil and other fluids for this exact engine code. The SAE grade and the manufacturer approval are separate fields, never merged.

{ "available": true, "data": { "items": { "oils": [ { "viscosity": "0W-30", "manufacturer_spec": "BMW Longlife-04", "capacity_l": 5.5, "spec_is_sourced": true } ], "fluids": [] } } }
GET /api/vehicles/{id}/maintenance /api/vehicles/3/maintenance

Maintenance schedule per service item. Each interval states its basis: manufacturer recommendation, source data, or general workshop guidance.

{ "available": true, "data": { "items": [ { "slug": "engine_oil", "name": "Engine oil", "interval_km": 15000, "interval_months": null, "basis": "guidance_generic", "is_guidance": true, "source": "..." } ] } }
GET /api/vehicles/{id}/tires /api/vehicles/3/tires

Tire and wheel data per position, with pressures in bar. A section with nothing on record answers available:false rather than an error.

{ "available": false, "message": "This information is not on record for this exact engine version yet." }
GET /api/vehicles/{id}/specifications /api/vehicles/3/specifications

Body, weight and capacity figures. Stored in metric units; convert on your side or use the page unit switch.

{ "available": true, "data": { "items": [ { "key": "length", "label": "Length", "value": "4709", "unit": "mm" } ] } }
GET /api/vehicles/{id}/performance /api/vehicles/3/performance

Output, acceleration, top speed, fuel consumption in L/100 km and CO₂ in g/km. Figures describing the engine rather than a measured test of the trim are flagged engine_level.

{ "available": true, "data": { "items": [ { "key": "power_hp", "label": "Power (hp)", "value": 190, "engine_level": true } ] } }
GET /api/vehicles/{id}/parts /api/vehicles/3/parts

Consumables and replacement parts with part numbers, but only where the number comes from a named source.

{ "available": true, "data": { "items": [ { "category": "oil_filter", "part_number": "BMW 11428583899 / MANN HU816x", "source": "..." } ] } }
GET /api/vin/{vin} /api/vin/1HGCM82633A004352

Decode a VIN. Validation always happens locally first: a malformed VIN returns 422 with a readable message. A well-formed VIN that no provider could decode still returns 200 with the locally computed ISO 3779 structure and decoded:false. Identification only: this endpoint never returns oil, maintenance, tire or part data.

{ "vin": "1HGCM82633A004352", "valid_format": true, "region": "North America", "wmi": "1HG", "vis": "3A004352", "check_digit_ok": true, "decoded": true, "make": "HONDA", "model": "Accord", "year": "2003", "engine": { "displacement_l": 3 }, "source": "nhtsa-vpic" }

Dynamic OG images

PathExampleDescription
/og/tool/{slug}.png/og/tool/fuel-consumption.pngBranded 1200×630 OG image for a tool page.
/og/obd/{code}.png/og/obd/P0300.pngOG image for an OBD code page.
/og/guide/{slug}.png/og/guide/how-to-check-engine-oil.pngOG image for a guide.
/og/tire/{a}-vs-{b}.png/og/tire/205-55-r16-vs-225-45-r17.pngOG image for a tire comparison.

Where vehicle data comes from

Vehicle specifications are assembled from named sources. Each value returned by the vehicle endpoints carries its source and verification state, so you can judge how far to trust it. Nothing is estimated.

SourceProvidesMarketImportant limitation
NHTSA vPIC VIN decoding, make/model/year identification, series, trim, body class, engine fields, assembly plant United States (manufacturer submissions under 49 CFR Part 565) Identification only. Carries no oil, maintenance, tire pressure or part data.
Transport Canada — Canadian Vehicle Specifications Overall length, width and height, wheelbase, curb weight, front and rear track, weight distribution Canada North American market only, densest for model years roughly 2011-2018. No European-only marques. No oil, maintenance or tire data.
fueleconomy.gov (US DOE / EPA) EPA-certified fuel consumption, CO2 emissions, annual fuel cost, fuel grade United States US market and EPA test cycle only. Not a WLTP or NEDC figure, and reported as the EPA cycle. No oil, maintenance or tire data.
Oil specifications, maintenance intervals and tire pressures are not available from any free public source. They are licensed commercial data. Where a vehicle page has none, it says so rather than showing an approximation. A section endpoint answers available: false in that case.

Files

PathDescription
/sitemap.xmlXML sitemap index of all public URLs, including indexable vehicle pages.
/robots.txtRobots rules with sitemap reference. The vehicle section is explicitly crawlable; admin and API are not.
/llms.txt / llms-full.txtLLM-friendly site description and full reference, including the vehicle data source and verification model.
/security.txt / humans.txtSecurity contact and humans file.
/manifest.json / sw.jsPWA manifest and service worker.

Notes

  • All endpoints return UTF-8 JSON.
  • Cache results on your side — data changes rarely.
  • A missing value is an absent key, never null and never a placeholder. Test for presence rather than parsing "N/A".
  • Consumption from the EPA source is labelled with consumption_cycle: "EPA". Do not present it as a WLTP or NEDC figure.
  • Figures are estimates from workshop documentation; always verify against the official manual.
Advertisement
Install AutoToolsWorks offline, one tap away.
Ad
Ask the AI mechanic
Hi! Ask me anything about your car — codes, noises, parts, maintenance.
All tools