Parts partner API
Approved stores supply prices, availability and fitment directly. Ask your R.A.C.E. administrator to register your store and approve its website before requesting a key.
Authentication
Send your key in the Authorization header: Bearer YOUR_KEY. Never put it in a URL. Keys are shown once; rotating a key immediately invalidates the old one. Paused and revoked stores cannot use the API and their offers are hidden.
Push a batch
POST /api/parts/partner/catalog with Content-Type: application/json (an array) or text/csv. Maximum 100 products and 1 MiB per request, 30 requests per minute per store. A batch is atomic: an invalid row rejects the entire batch. Upserts use the location code and SKU. Send every field on each update. Omitted products remain until they expire; send stock 0 and availability out_of_stock to mark unavailable.
[
{
"sku": "FILTER-1",
"brand": "Example",
"partNumber": "A-100",
"title": "Oil filter",
"category": "Oil filters",
"price": 12.5,
"currency": "USD",
"stock": 4,
"availability": "in_stock",
"location": {
"code": "austin",
"name": "Austin store"
},
"productUrl": "https://store.example/filter-1",
"fitment": [
{
"year": 2020,
"make": "Example",
"model": "Roadster",
"engine": "2.0L"
}
],
"lastUpdated": "2026-09-15T00:00:00Z"
}
]Use your approved website hostname for productUrl; URLs must use HTTPS without credentials. imageUrl is optional. availability is in_stock, out_of_stock or backorder. Prices use up to two decimals. Timestamps are ISO 8601 with a timezone and cannot be in the future or older than the stored update.
CSV
Use the same fields, with locationCode and locationName instead of location. fitment is a JSON array in a quoted CSV cell; double embedded quotes. Standard CSV quoted commas and newlines are supported. No partner identifier is accepted in a product.
sku,brand,partNumber,title,category,price,currency,stock,availability,locationCode,locationName,productUrl,fitment,lastUpdated
Fitment and freshness
Only explicit year/make/model rows, including engine when supplied, can confirm fit. An empty fitment array means fit not verified. Titles never establish fitment. Offers expire after 24 hours by default; send updates at least daily and preserve the actual supplier update timestamp. A replay does not refresh that timestamp.
ACES and PIES
Raw ACES/PIES XML is not yet enabled. Its coded reference data requires the licensed adapter. Until that is available, export explicit product and vehicle rows into the JSON/CSV format above. Unresolved IDs are never treated as confirmed fitment.
Read your catalog and handle errors
GET /api/parts/partner/catalog?offset=0 returns up to 100 of your products. Increment offset by 100 for the next page. Keys can only access their own catalog. Responses use no-store. HTTP 400 means invalid feed, 401 means credentials refused, 429 means rate limited (wait a minute), and 500 means retry later. Administrators can see the last successful sync and a sanitized error summary. Keep keys and Authorization headers out of your own logs.