Toyota EPC avatar

Toyota EPC

Pricing

from $79.00 / monthly pass

Go to Apify Store
Toyota EPC

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

Scrape Hub

Maintained by Community

Actor 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

EndpointReturnsRequired params
vinVIN or frame prefix → catalogues covering the vehiclevin
vehicle_buildBuild month for one chassis + frame numberchassis, frame
vehicle_serialsSerial runs recorded for a chassischassis
vehicle_accessoriesAccessories offered for a model codemodelCode

Part numbers

EndpointReturnsRequired params
part_numberEverything known about a part number, all marketsnumber
part_number_historySupersessions, full replacement chain, substitutesnumber
part_number_suffixesWhat the two-character suffix selectsnumber
part_number_priceList price (JP dataset only)number
partOne catalogue part line with fitment and remarksid
fitmentEvery part carrying a fitment codecode

Catalogues

EndpointReturnsRequired params
catalogsSearch catalogues by model, chassis or catalogue code— (q)
catalogOne vehicle catalogueregion, code
catalog_sectionsSections of a catalogue, with cover figuresregion, code
catalog_sectionOne section: its part groups and drawingsregion, code, section
catalog_groupEvery part line under one part group (PNC)region, code, pnc
catalog_figuresEvery figure key used by a catalogueregion, code
catalog_figureA drawing with its callouts and the parts they point atregion, code, figureKey
catalog_variantsModel variants and VIN prefixes coveredregion, code
catalog_framesFrame-number ranges coveredregion, code
catalog_group_membersCatalogue group → model-variant mappingregion, code
catalog_characteristicsAttribute legend used by fitment codesregion, code
catalog_specsRaw spec/option codesregion, code
catalog_notesIllustration notesregion, code
catalog_new_partsMost recently introduced partsregion, code

Models

EndpointReturnsRequired params
modelsModel families in one market, A–Zregion
modelOne model family and its production runsregion, slug

Search & reference

EndpointReturnsRequired params
searchUnified search: VIN, part number, model or part name— (q)
part_namesPart groups by name— (q)
abbreviationsAbbreviation dictionary—
regionsThe four market datasets—
statsEvery table behind the catalogue, with row counts—

Accessories

EndpointReturnsRequired params
accessoriesAccessory campaigns—
accessory_campaignOne campaign and its itemscampaign
accessory_itemOne accessory lineid

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.

VINModelCatalogues
VNKKG96330A123456Yaris (France-built)EU
NMTKZ3BX10R123456C-HREU
SB1K93BE10E123456Corolla (UK-built)EU
JTEBU3FJ00K123456Land Cruiser PradoEU
JTDKN3DU0A0123456PriusUS
{
"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 quantity is always null.
  • 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 install
TOYOTA_EPC_API_KEY=tepc_… npm run sync # refresh the endpoint list from openapi.json
TOYOTA_EPC_API_KEY=tepc_… apify run -i '{"operation":"regions"}'
apify push # deploy to your Apify account