Which wiring harness, fascia, steering-control adapter, camera or CarPlay module fits a given car. One GET request, JSON back.
Every general fitment provider covers mechanical parts. None of them cover the box of adapters you need to actually put a head unit in a dashboard.
TecDoc is brakes, filters, suspension. This is the 12V install layer next to it: harnesses, fascias, CAN-bus steering-control interfaces, antenna adapters, reverse cameras, CarPlay retrofits.
None of it comes from TecDoc, so none of it needs a TecDoc contract. Competing integrations charge $89–399 a month and expect you to bring your own licence.
Metra, Connects2, PAC, Scosche, Crux, Aerpro, iDatalink and CARAV each publish application guides in their own format, spelling every model differently.
They are normalized against a single taxonomy. One query returns all of them, and you never reconcile “3 Series” against “3-Series” again.
A 2013 Golf spans two chassis generations and the adapter differs between them. That
condition arrives on every part as note: MK6,
F30 F31, non-amplified only.
It decides whether a part actually works. It is also the first field a spreadsheet export throws away.
All 64,820 rows. No key, no metering, commercial use fine. Also on GitHub as CSV, free for commercial use.
Building a Year/Make/Model dropdown should not need a contract. The part-to-vehicle links are the hard part, and those are what a key covers.
140 makes carry a vehicle list you can query for free. Six of them answer fitment without a key too — those are linked below.
Marks identify vehicle compatibility only. No affiliation with or endorsement by any manufacturer is implied.
Four endpoints. Plain GET, JSON out, CORS open, no auth on the sandbox. Base URL
https://ymmfit.com/v1.
Catalog totals, part categories, contributing sources, and exactly what the sandbox covers. Start here.
$ curl https://ymmfit.com/v1/metaAll 140 makes with model counts and year ranges. Complete, not limited to the sandbox.
| Param | Type | Notes |
|---|---|---|
| q | string | Case-insensitive substring on the make name. Optional. |
$ curl "https://ymmfit.com/v1/makes?q=merc"
Every model under one make, with the years each was built. The slug that comes back is what you pass as model.
| Param | Type | Notes |
|---|---|---|
| make REQUIRED | string | Make slug from /makes, e.g. bmw. |
$ curl "https://ymmfit.com/v1/models?make=bmw"
Every compatible part for one vehicle, across all contributing brands.
Six makes answer without a key, from model year 2012. A make that exists in the catalog but sits outside the sandbox returns 403 outside_sandbox instead of an empty list, so restricted access never looks like missing data.
| Param | Type | Notes |
|---|---|---|
| make REQUIRED | string | Make slug, e.g. vw. |
| model REQUIRED | string | Model slug from /models, e.g. golf. |
| year REQUIRED | integer | Four-digit model year. |
| category | string | Optional. Deep coverage: harness, dashkit, carplay, swc, speaker, antenna — 93% of the catalog. Thinner: camera, amp, aux. Barely populated: parking, dab, headunit — valid values, but expect empty results. Exact counts are in what’s in it. |
$ 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" } ] }
Every failure returns JSON carrying an error code and a message. Branch on the code.
| Status | Code | Means |
|---|---|---|
| 400 | missing_parameter | A required query param is absent. |
| 400 | invalid_year | Year is not a four-digit number. |
| 400 | invalid_category | Unknown category. Valid values come back in the body. |
| 403 | outside_sandbox | The make is in the catalog; its fitment needs a key. |
| 404 | unknown_make | No such make. List them at /v1/makes. |
| 404 | unknown_vehicle | No such model under that make. |
| 404 | unknown_year | Model exists; that year is not in the sandbox. The body lists the years that are. |
Counts below come from /v1/meta. Per-make detail is on the
coverage page.
region parameter. Both EU and US vehicles are in the catalog, but per-row market tagging is not reliable enough to filter on yet, so the parameter is withheld rather than shipped returning the wrong set.note is absent, the fitment is unconditional as published.The sandbox is open right now. Full-catalog keys go out by hand to the first few integrations, so the contract gets built around real use instead of guesses.
Pricing is indicative and settles with the first integrations. Asking for a key doesn’t create an account or charge anything.
No. TecDoc covers mechanical and service parts. This covers the install layer: harnesses, fascias, steering-control adapters, cameras, CarPlay retrofits. Different data, no overlap, and no TecDoc licence needed.
No. The sandbox needs no signup and no card, and the vehicle taxonomy is free in production. A key only widens fitment past the six sandbox makes.
The catalog runs to 2026 model years. It refreshes when manufacturers publish new application data, which happens in bursts around model launches rather than daily. Bulk customers get a changelog per refresh, so you can diff instead of re-importing.
It would return the wrong set. A Cadillac Escalade and a VW Golf sit side by side in the catalog, but per-row market tagging isn’t reliable enough to filter on. The parameter stays out until that’s fixed.
Same data, different shape. The Shopify app is the done-for-you version, with the storefront filter and catalog mapping set up for you. The API is for everyone not on Shopify, or building their own.