Toyota EPC
Pricing
from $79.00 / monthly pass
Toyota EPC
Toyota EPC - electronic parts catalog. Find Toyota parts, diagrams, VIN decoder & more.
Pricing
from $79.00 / monthly pass
Rating
0.0
(0)
Developer
Scrape Hub
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Toyota Parts Catalogue API
Query a factory Toyota parts catalogue covering four markets (EU, GR, US, JP) and get the results as an Apify dataset: JSON, CSV, Excel or through the Apify API.
What you can look up
- VIN / frame decoding: which catalogues cover a vehicle (
vin), build month (vehicle_build), serial runs (vehicle_serials) - Part numbers: every application across markets (
part_number), supersession chains and substitutes (part_number_history), suffixes, and list prices for Japan (part_number_price) - Catalogues: sections, part groups (PNC), exploded drawings with their callouts, variants, frames, notes, new parts, spec codes
- Search: unified search (
search), part names, fitment codes, abbreviations - Accessories: campaigns, items, accessories for a model code
Endpoints
Set operation to the endpoint and put its parameters in params. Required parameters must be present or the call is rejected with invalid_input. region is one of EU, GR, US, JP; (q) means the endpoint takes a free-text q query.
VIN & vehicle
| Endpoint | Returns | Required params |
|---|---|---|
vin | VIN or frame prefix → catalogues covering the vehicle | vin |
vehicle_build | Build month for one chassis + frame number | chassis, frame |
vehicle_serials | Serial runs recorded for a chassis | chassis |
vehicle_accessories | Accessories offered for a model code | modelCode |
Part numbers
| Endpoint | Returns | Required params |
|---|---|---|
part_number | Everything known about a part number, all markets | number |
part_number_history | Supersessions, full replacement chain, substitutes | number |
part_number_suffixes | What the two-character suffix selects | number |
part_number_price | List price (JP dataset only) | number |
part | One catalogue part line with fitment and remarks | id |
fitment | Every part carrying a fitment code | code |
Catalogues
| Endpoint | Returns | Required params |
|---|---|---|
catalogs | Search catalogues by model, chassis or catalogue code | — (q) |
catalog | One vehicle catalogue | region, code |
catalog_sections | Sections of a catalogue, with cover figures | region, code |
catalog_section | One section: its part groups and drawings | region, code, section |
catalog_group | Every part line under one part group (PNC) | region, code, pnc |
catalog_figures | Every figure key used by a catalogue | region, code |
catalog_figure | A drawing with its callouts and the parts they point at | region, code, figureKey |
catalog_variants | Model variants and VIN prefixes covered | region, code |
catalog_frames | Frame-number ranges covered | region, code |
catalog_group_members | Catalogue group → model-variant mapping | region, code |
catalog_characteristics | Attribute legend used by fitment codes | region, code |
catalog_specs | Raw spec/option codes | region, code |
catalog_notes | Illustration notes | region, code |
catalog_new_parts | Most recently introduced parts | region, code |
Models
| Endpoint | Returns | Required params |
|---|---|---|
models | Model families in one market, A–Z | region |
model | One model family and its production runs | region, slug |
Search & reference
| Endpoint | Returns | Required params |
|---|---|---|
search | Unified search: VIN, part number, model or part name | — (q) |
part_names | Part groups by name | — (q) |
abbreviations | Abbreviation dictionary | — |
regions | The four market datasets | — |
stats | Every table behind the catalogue, with row counts | — |
Accessories
| Endpoint | Returns | Required params |
|---|---|---|
accessories | Accessory campaigns | — |
accessory_campaign | One campaign and its items | campaign |
accessory_item | One accessory line | id |
Examples:
{ "operation": "catalog_sections", "params": { "region": "EU", "code": "164520" } }{ "operation": "catalog_group", "params": { "region": "EU", "code": "164520", "pnc": "04465" } }{ "operation": "search", "params": { "q": "brake pad", "region": "EU" } }
Input
Single call:
{ "operation": "part_number", "params": { "number": "04465-02220", "region": "EU" } }
Batch:
{"requests": [{ "operation": "vin", "params": { "vin": "JTDKB20U093512345" } },{ "operation": "part_number_history", "params": { "number": "04465-02220" } },{ "operation": "catalog_sections", "params": { "region": "EU", "code": "164520" } }],"fetchAllPages": true}
Example VINs
Decoding matches on the VIN prefix (first 8 characters), so these sample VINs return real catalogues. The serial digits are placeholders.
| VIN | Model | Catalogues |
|---|---|---|
VNKKG96330A123456 | Yaris (France-built) | EU |
NMTKZ3BX10R123456 | C-HR | EU |
SB1K93BE10E123456 | Corolla (UK-built) | EU |
JTEBU3FJ00K123456 | Land Cruiser Prado | EU |
JTDKN3DU0A0123456 | Prius | US |
{"requests": [{ "operation": "vin", "params": { "vin": "VNKKG96330A123456" } },{ "operation": "vin", "params": { "vin": "NMTKZ3BX10R123456" } },{ "operation": "vin", "params": { "vin": "SB1K93BE10E123456" } },{ "operation": "vin", "params": { "vin": "JTEBU3FJ00K123456" } },{ "operation": "vin", "params": { "vin": "JTDKN3DU0A0123456" } }]}
API key
Every call to the catalogue API needs a key, openapi.json included, and only over HTTPS. The Actor sends the key in its secret environment variable TOYOTA_EPC_API_KEY (Actor → Source → Environment variables, marked Secret), or the API key input when a caller supplies their own. The key goes in the X-API-Key header, never in the URL, and the Actor refuses redirects so the key is never sent anywhere else.
Keys are issued in the site's /admin → API clients. There a key can also be given an expiry date or limited to certain IP addresses. Apify runs from changing addresses, so leave Allowed IP addresses empty for the Actor's key unless it runs through a proxy with a fixed IP.
The run stops at the first call, with a message saying what to fix, when the key is missing, invalid, revoked or expired, not allowed from the run's address, or when the API has locked the address out after repeated invalid keys. Only the per-key rate limit (HTTP 429 rate_limited) and server errors are retried.
params holds both path parameters (vin, number, region, code, …) and query parameters (region, lang, q, limit, offset).
Output
Collection endpoints produce one dataset item per row. Single-resource endpoints produce one item. Every item has a _request field (operation, params, URL). Failed calls produce an item with _error instead of failing the whole run.
Caveats
These come from the source data:
- The catalogue records which parts fit a vehicle, never how many, so
quantityis alwaysnull. - Prices exist for the Japanese dataset only, in whole yen.
- About 18% of drawing callouts point at standard fasteners and are
"resolved": false.
Development
npm installTOYOTA_EPC_API_KEY=tepc_… npm run sync # refresh the endpoint list from openapi.jsonTOYOTA_EPC_API_KEY=tepc_… apify run -i '{"operation":"regions"}'apify push # deploy to your Apify account