Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Car audio fitment API — and a free vehicle dataset

Which wiring harness, dash kit, steering-wheel-control adapter, reverse camera or CarPlay retrofit module fits a given car? This repo is the open client and dataset for an API that answers that in one request.

  • 483,653 vehicle-to-part fitment links
  • 64,820 vehicles, model years 1995–2026, across 140 makes
  • 20,874 parts in 11 categories
  • Normalized from manufacturer application data — Metra, Connects2, PAC, Scosche, Crux, Aerpro, iDatalink, CARAV and others — into one vehicle taxonomy

Docs: https://ymmfit.com/fitment-api · OpenAPI: openapi.json · Coverage: https://ymmfit.com/fitment-api/coverage


This is not a TecDoc alternative

TecDoc covers mechanical and service parts — brakes, filters, suspension. This covers 12V installation fitment: harnesses, fascias, SWC adapters, antenna adapters, cameras, CarPlay retrofits. Different data, no overlap, and no TecDoc licence is required to use any of it.

If you have ever tried to answer "will this head unit fit a 2013 Golf?" from a manufacturer PDF, this is the data you were looking for.

Try it without installing anything

# Everything that fits a 2013 VW Golf
curl "https://ymmfit.com/v1/parts?make=vw&model=golf&year=2013"

# Just the steering-wheel-control adapters
curl "https://ymmfit.com/v1/parts?make=vw&model=golf&year=2013&category=swc"
{
  "vehicle": { "year": 2013, "make": "VW", "model": "Golf" },
  "count": 23,
  "parts": [
    {
      "mpn": "CAVW02",
      "brand": "Aerpro",
      "category": "swc",
      "title": "Infodapter to suit Volkswagen",
      "note": "MK7",
      "source": "aerpro"
    }
  ]
}

That note is the qualifier — the condition the fitment depends on. A 2013 Golf spans two chassis generations and the adapter differs between them. Most fitment exports drop this field; it is the one that decides whether the part actually works.

The vehicle dataset is free, in full

data/vehicles.csv64,820 rows, every year/make/model in the catalog. data/makes.csv — 140 makes with counts and year ranges.

Free to use, including commercially — see data/LICENSE. Building a Year/Make/Model dropdown should not require a contract, and the vehicle list is not the hard part to compile — the part-to-vehicle links are.

The compilation is given away outright. What it deliberately does not do is claim rights over the underlying source catalogues, which belong to the manufacturers who published them — so no Creative Commons licence is applied and you are responsible for your own compliance. The terms say exactly that, in plain language.

The same data is live at /v1/makes and /v1/models, unmetered and without a key.

Make slug Models Model-years Years
Toyota toyota 479 4,748 1995–2026
Mercedes mercedes 589 4,625 1995–2026
BMW bmw 503 4,481 1995–2026
Ford ford 444 3,980 1995–2026
VW vw 335 3,276 1995–2026
Lexus lexus 304 2,578 1995–2026
Chevrolet chevrolet 271 2,465 1995–2026
Audi audi 223 2,388 1995–2026
Nissan nissan 216 2,346 1995–2026
Hyundai hyundai 162 1,752 1995–2026
Honda honda 164 1,534 1995–2026
Dodge dodge 111 1,447 1995–2026

all 140 makes

Install the client

npm install @rokasmen/car-audio-fitment
import { makes, models, parts, FitmentError } from "@rokasmen/car-audio-fitment";

const fits = await parts({ make: "vw", model: "golf", year: 2013, category: "harness" });
console.log(fits.count, "harnesses fit");

try {
  await parts({ make: "audi", model: "a4", year: 2018 });
} catch (e) {
  if (e instanceof FitmentError && e.code === "outside_sandbox") {
    // The make IS in the catalog — this is an access limit, not missing data.
    console.log(e.message);
  }
}

Zero dependencies. Node 18+ or any modern browser.

Runnable examples

File What it does
examples/what-fits-my-car.mjs Groups every part for one vehicle by category
examples/build-a-ymm-dropdown.html A working YMM picker in one file, no build step
examples/load-the-dataset.py Reads the CSV offline, no network

Endpoints

Endpoint Returns Key needed
GET /v1/meta Catalog totals, categories, sources, sandbox coverage No
GET /v1/makes All 140 makes, with model counts and year ranges No
GET /v1/models?make= Every model under a make, with its years No
GET /v1/parts?make=&model=&year= Parts that fit one vehicle Sandbox: no

Plain GET, JSON responses, CORS open. Base URL https://ymmfit.com/v1.

Access. The taxonomy is complete and free. Fitment is open for BMW, Chevrolet, Ford, Mercedes, Toyota, VW from model year 2012 onward (98,218 links). Anything beyond that needs a key — request one.

A make that exists in the catalog but sits outside the sandbox returns 403 outside_sandbox, never an empty list, so restricted access is never mistaken for missing data.

Part categories

Category What it is Parts
dashkit Dash kit / fascia panel 7,480
carplay CarPlay / Android Auto retrofit 6,894
speaker Speaker adapter 2,633
harness Wiring harness / ISO adapter 1,442
camera Reverse camera interface 1,310
swc Steering-wheel-control adapter 593
antenna Antenna / DAB adapter 309
amp Amplifier integration 134
aux AUX / USB adapter 76
parking Parking-sensor adapter 2
dab DAB module 1

Where the data comes from

Every fitment link carries a source naming the manufacturer application guide it was normalized from.

Source Fitment links
metra 114,956
connects2 89,677
carav 48,239
pac 41,540
carplay_stores 35,833
aerpro 26,084
metra_doc 23,258
housebrands 17,460
focal_inside 17,415
crux 16,249
idatalink 11,793
scosche_doc 10,067

Known limits, stated up front

  • Coverage is deepest for mainstream European and North American models from roughly 2005 onward. Pre-2000 vehicles, commercial vans and low-volume models are thinner.
  • There is no region parameter. Both EU and US vehicles are in the catalog — a Cadillac Escalade and a VW Golf sit side by side — but per-row market tagging is not yet reliable enough to filter on. Shipping the parameter would mean quietly returning the wrong set, so it is withheld until the tagging is fixed.
  • Fitment is installation compatibility as published by the part manufacturer, not a guarantee for a specific factory-option combination. That is what note is for; where it is absent, the fitment is unconditional as published.
  • Some model names still carry multi-model strings from their source guides (Silverado/gmc Sierra). Real data, imperfectly normalized.

Licence

Code — MIT (see LICENSE). The dataset in data/ is free to use commercially, with no rights asserted over the underlying source catalogues — see data/LICENSE.

About

Which wiring harness, dash kit, SWC adapter or CarPlay module fits which car — REST API + free year/make/model dataset (64,820 vehicles, 140 makes). Not a TecDoc alternative: this is 12V install fitment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages