Sourced vehicle data · by VIN, year/make/model, or config_key

Real car data,
as an API.

Fluid capacities, OEM part numbers with dated reference prices, service intervals and labor time estimates for the exact configuration — the numbers you need to quote and fix a car, ready to use. Not another VIN decoder.

Every value comes with its source and a confidence score.

GET/v1/fluids?vin=5J6RW2H82KL000007
{ oil_viscosity: "0W-20", oil_capacity_qts: "3.7", coolant_type: "Honda Long Life Antifreeze/Coolant Type 2", … }
VIN · YMMTthree ways to identify a vehicle.
9 groupsfluids, parts, labor, tires, intervals…
per configOEM part numbers matched to the exact configuration.
free samplestry the sandbox — no signup, no card.

// WHAT YOU CAN PULL

Everything a shop needs
to quote a job.

Identify a vehicle once, then pull any group on its own or all at once — clean JSON, ready to drop into a quote, a work order, or your app.

Fluids & capacities

Engine oil viscosity + capacity, coolant, transmission, brake, power-steering and diff/transfer-case fluids — figures for the exact engine, each with its source and a confidence score, not 'takes about 5 quarts'.

Parts & reference prices

OEM part numbers matched to the exact configuration and grouped per service — role, position, quantity, a fitment confidence score, and a reference price stamped with the date observed.

Service intervals

The maintenance schedule for the exact configuration — every service by miles and months, ready to put on a timeline.

Labor time estimates

Labor time estimates for every applicable service, each labelled with its method and a confidence score. Measured labor from completed jobs will appear as it accumulates.

Tires & wheels

Tire and wheel fitment: front/rear sizes, recommended pressures, load index, speed rating, run-flat and staggered flags, plus battery CCA.

VIN & config decode

Resolve a VIN, year/make/model, or config_key to its canonical identity and exact engine — the lightest lookup in the API.

// WHAT YOU GET BACK

Not a VIN blob.
A quote, ready to use.

One call returns clean, grouped, consistent JSON — the same shape every time. Below is a real response, captured on October 18, 2026 and trimmed to fit, annotated. Run it yourself on the live sandbox, no key.

response.json · captured October 18, 2026
GET /v1/vehicle?vin=5J6RW2H82KL000007&include=fluids,parts,tires,intervals

{
  "object": "vehicle",
  "config": {
    "config_key": "2019_honda_cr_v_ex_l15be",
    "year": 2019,
    "make": "Honda",
    "model": "CR-V",
    "trim": "EX",
    "engine": {
      "code": "L15BE",
      "displacement_l": 1.5,
      "cylinders": 4,
      "aspiration": "turbo"
    },
    "drivetrain": "4WD",
    "transmission": "Continuously Variable Transmission (CVT)"
  },
  "specs": [
    {
      "field": "oil_viscosity",
      "value": "0W-20"
    },
    {
      "field": "oil_capacity_qts",
      "value": "3.7"
    },
    {
      "field": "coolant_type",
      "value": "Honda Long Life Antifreeze/Coolant Type 2"
    },
    {
      "field": "lug_nut_torque_ft_lbs",
      "value": "80"
    }
  ],
  "tires": {
    "options": [
      {
        "size_front": "235/60R18",
        "pressure_front_psi": 33,
        "load_index": 103,
        "speed_rating": "H"
      }
    ],
    "is_staggered": false,
    "battery_cca": 400
  },
  "services": [
    {
      "service": "brake_pad_replacement",
      "parts": [
        {
          "oem_part_number": "45022-TLA-A02",
          "price": {
            "amount": 70.99,
            "msrp": 103.07
          }
        }
      ],
      "labor": {
        "hours": 1.4,
        "source": "model_estimate",
        "confidence": 0.3
      }
    }
  ],
  "meta": {
    "generated_at": 1792323140145
  }
}
config

The exact vehicle — not a guess

Resolved to a config_key with the real engine, drivetrain and transmission. A VIN or year/make/model maps to one precise configuration.

specs

Fluids & service points

Viscosity, capacities, coolant type, lug-nut torque — the numbers a tech needs, each with its source, not “takes about 5 quarts.”

tires

Tire & wheel fitment

Sizes, pressures, load index, speed rating, run-flat/staggered flags, and battery CCA — the whole fitment.

services[].parts[].price

OEM part numbers, priced with a date

The OEM part number matched to this configuration, with a fitment confidence score, MSRP and a reference price stamped with the date observed — ready to quote.

services[].labor

Labor hours, with where they came from

Every estimate says its method and confidence. Here it's a model_estimate. Measured labor from completed jobs will appear as it accumulates.

Confirm specifications against manufacturer service information before performing work.

Try it free — no signup

// WHY WE'RE DIFFERENT

What others don't give you.

To quote and fix a car you'd normally stitch a VIN decoder to a parts catalog and still be missing fluids and labor. OtoIndex is the whole picture, in one API.

Capability comparison: basic VIN decoders vs parts catalogs vs OtoIndex
CapabilityBasic VIN decodersParts catalogsOtoIndex
VIN / YMMT identity decodeincludedpartialincluded
Config-level precision (exact engine & trim)not availablepartialincluded
Fluid types & capacities for the exact enginenot availablenot availableincluded
Service intervals (miles & months)partialnot availableincluded
OEM part numbers per config, with dated reference prices + MSRPnot availablepartialincluded
Labor with provenance (method + confidence on every row)not availablenot availableincluded
Source + confidence on every valuenot availablenot availableincluded
Whole vehicle in one call, one JSON shapenot availablenot availableincluded

Maintenance depth, not just identity

Most APIs stop at decoding a VIN. We go all the way to the numbers you act on — fluid capacities, service intervals and service points, each with its source.

Labor with its method shown

Labor time estimates for every applicable service, each labelled with its method and a confidence score. Measured labor from completed jobs will appear as it accumulates.

Parts matched to the config, priced with a date

OEM part numbers matched to the exact configuration, each with a fitment confidence score, MSRP and a reference price stamped with the date observed — so a response is a quote, not a research project.

One clean, versioned shape

Identity, specs, tires, intervals, parts + labor, and history come back keyed the same way every time. No blob parsing, no surprises.

// HOW IT WORKS

Three calls from VIN
to a bookable quote.

identify.sh
curl 'https://vinspeclookup.com/api/v1/decode?vin=5J6RW2H82KL000007' \
-H "Authorization: Bearer $OTOINDEX_KEY"
# no key yet? same route, free: curl 'https://vinspeclookup.com/api/sample/v1/decode?vin=5J6RW2H82KL000007'
# → { config_key: "2019_honda_cr_v_ex_l15be",
# engine: "1.5L L15BE 4cyl" }
200 OK · clean JSON

// COVERAGE

A dataset that grows
with every job.

reference vehicle|2019 Honda CR-V EX
213
Configurations covered
exact year, make, model, trim and engine
40
Makes covered
distinct makes in the catalog
88%
Median fill rate
fields populated per config
9
Data groups
one call, or à la carte

From GET /v1/catalog · as of

What the groups are
Every field, by group
  • Identity & enginedeep coverage
  • Fluids & capacitiesdeep coverage
  • Spec sheet & service pointsdeep coverage
  • Maintenance scheduledeep coverage
  • Parts & reference pricesdeep coverage
  • Tires & wheelsdeep coverage
  • Labor time estimatesgrowing
  • Vehicle mediagrowing
  • Service historygrowing

// FOR DEVELOPERS

A REST API that
gets out of your way.

Plain HTTP GETs, an OpenAPI 3.1 spec, and a live try-it console. No SDK required — call it from any stack, or generate one from the spec.

One key, every group

Fluids, parts, labor, tires, intervals and identity — all behind a single bearer token.

Identify any way

VIN, year/make/model, or config_key. Ambiguous YMMT returns the candidate configs to choose from.

Grouped or full

Pull one group — fluids, parts, tires — or the whole vehicle in a single call, field-selectable with include.

Free to try, no signup

Live data for every catalog vehicle in your browser or terminal — no key required.

curl 'https://vinspeclookup.com/api/v1/fluids?config_key=2019_honda_cr_v_ex_l15be' \
-H "Authorization: Bearer $OTOINDEX_KEY"
# no key yet? same route, free: curl 'https://vinspeclookup.com/api/sample/v1/fluids?config_key=2019_honda_cr_v_ex_l15be'
▸otp_live_… · no key? try it free

// curl 'https://vinspeclookup.com/api/sample/v1/vehicle?config_key=2019_honda_cr_v_ex_l15be'

Try it now. Build on it next.

Run live data for every vehicle in the catalog, in your browser or your terminal — no signup, no card. Building it into a product? Request early access for your own key.