Open API

Auto parts data API

Base URL

All endpoints are grouped under the parts plugin path, resolved by tenant.

https://api.autopf.com/api/plugins/app/p11365281228129286

Required header

The tenant header selects the data set. Missing it returns HTTP 400.

X-Tenant-Id: parts

Response envelope

Every response wraps payload in a code / message / data envelope; paginated results use the same shape.

{ Code, Msg, Data }
Reference

Endpoints

Public endpoints are open anonymously for reading. Data is always filtered to enabled, non-deleted records.

MethodPathDescription
GET/PartsData/statsCoverage counters for the tenant
GET/PartsData/yearsModel years that have vehicle records
GET/PartsData/car-brandsEnabled vehicle brands
GET/PartsData/car-models?carBrandId=&keyword=&pageIndex=&pageSize=Vehicle models, filterable by brand and keyword
GET/PartsData/parts?keyword=&categoryId=&carBrandId=&standardNameId=&brandId=&pageIndex=&pageSize=Parts catalogue search
GET/PartsData/parts/{partsId}Single part with fitment and OE codes
GET/PartsData/parts-by-car-model?carModelId=&pageIndex=&pageSize=Parts that fit a given vehicle model
GET/PartsData/general-codes?code=&carBrandId=&brandId=&pageIndex=&pageSize=OE / interchange code search, returns matching parts
GET/PartsData/quick-search?keyword=&count=Parts and OE codes for one keyword
GET/PartsData/categories?type=Parts category tree, filterable by type
GET/PartsData/standard-names?keyword=&categoryId=&pageIndex=&pageSize=Standard names with category filter
GET/PartsData/product-brandsEnabled parts brands
GET/CarCascade/cascade/brands?year=Vehicle brands available for a model year
GET/CarCascade/cascade/names?carBrandId=Model names for a vehicle brand
GET/CarCascade/cascade/versions?carBrandId=&carModelName=Door count / vehicle type / body form combinations
GET/CarCascade/cascade/engines?carBrandId=&carModelName=&doorCount=&vehicleType=&bodyForm=Engine descriptions for a version
Samples

Call it from anywhere

Plain HTTP and JSON — no SDK required.

cURL

# Parts search
curl "https://api.autopf.com/api/plugins/app/p11365281228129286/PartsData/parts?keyword=compressor&pageSize=5" \
  -H "X-Tenant-Id: parts"

JavaScript

const BASE = 'https://api.autopf.com/api/plugins/app/p11365281228129286'
const headers = { 'X-Tenant-Id': 'parts' }

// 1) Parts catalogue search
const parts = await fetch(`${BASE}/PartsData/parts?pageIndex=1&pageSize=12`, { headers })
  .then((r) => r.json())

// 2) OE / interchange code search, returns matching parts
const oe = await fetch(`${BASE}/PartsData/general-codes?code=AC7805`, { headers })
  .then((r) => r.json())

// 响应信封: { Code, Msg, Data }
console.log(parts.Data.Items, oe.Data.Items)

Response envelope

{
  "Code": 200,
  "Msg": "success",
  "Data": {
    "Items": [ { "PartsId": "…", "PartsName": "空调压缩机", "PartsNo": "234324321", "GeneralCodes": ["AC7805"] } ],
    "Total": 4,
    "PageIndex": 1,
    "PageSize": 12
  }
}
Notes

Before you integrate

Pagination

Send pageIndex (1-based) and pageSize. The response returns Items, Total, PageIndex and PageSize.

Filtering

Most list endpoints accept a keyword plus domain filters such as categoryId, carBrandId or standardNameId.

Caching

Master data changes slowly. Cache responses for minutes to hours on your side to keep integrations light.

Fair use

Public endpoints are intended for interactive use. For bulk or scheduled pulls, ask us about exports and managed feeds.

Need higher limits or a private feed?

Tell us your expected volume and we will propose a practical integration.