Supplier API
Suppliers push procurement prices, stock and lead times for SourceParts EU catalogue SKUs over a small REST API. Access is granted by hand — request a key below.
REST · v1 Auth: Bearer key Format: JSON Rate limit: 120/min openapi.json ↗
On this page
How it works
- Request access with the form below — tell us what you supply.
- We review and issue you an API key (
spk_live_…) by e-mail. - Your system pushes offers to the API whenever prices or stock change.
- We buy from the best offer per SKU. Keys are personal, revocable, and can expire.
Base URL & authentication
All endpoints live under this base URL:
https://shop.sourceparts.eu/api/supplier/v1
Send your key as a bearer token on every request:
Authorization: Bearer spk_live_your_key_here
data;
errors under error with a code and message.
The API is rate-limited to 120 requests per minute per key.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /ping | Verify your key |
| GET | /products | Catalogue SKUs you can quote |
| GET | /offers | Read back your offers |
| POST | /offers | Bulk create/update (upsert) |
| PUT | /offers/{sku} | Create/update one offer |
| DEL | /offers/{sku} | Withdraw an offer |
GET /ping
Verify your key and see how we identify you.
curl -s https://shop.sourceparts.eu/api/supplier/v1/ping \
-H "Authorization: Bearer spk_live_…"
GET /products
The catalogue SKUs you can quote against, with names. Map these to your own order codes.
curl -s https://shop.sourceparts.eu/api/supplier/v1/products \
-H "Authorization: Bearer spk_live_…"
POST /offers
Bulk create/update. Idempotent — we upsert one offer per SKU, so you can send your full feed any time. Up to 1000 offers per call.
curl -s -X POST https://shop.sourceparts.eu/api/supplier/v1/offers \
-H "Authorization: Bearer spk_live_…" \
-H "Content-Type: application/json" \
-d '{
"offers": [
{
"sku": "SP-B866-4E4P1",
"supplier_sku": "HW-B866-4E4P1",
"procure_price": 142.50,
"currency": "EUR",
"stock": 240,
"lead_time_days": 3,
"moq": 1,
"valid_until": "2026-12-31"
}
]
}'
GET /offers
Read back the offers we currently hold from you.
curl -s https://shop.sourceparts.eu/api/supplier/v1/offers \
-H "Authorization: Bearer spk_live_…"
PUT /offers/{sku}
Create or update a single offer.
curl -s -X PUT https://shop.sourceparts.eu/api/supplier/v1/offers/SP-B866-4E4P1 \
-H "Authorization: Bearer spk_live_…" \
-H "Content-Type: application/json" \
-d '{ "procure_price": 139.00, "stock": 180, "lead_time_days": 2 }'
DELETE /offers/{sku}
Withdraw an offer (e.g. end-of-life).
curl -s -X DELETE https://shop.sourceparts.eu/api/supplier/v1/offers/SP-B866-4E4P1 \
-H "Authorization: Bearer spk_live_…"
The offer object
| Field | Type | Required | Description |
|---|---|---|---|
sku | string | yes | Our catalogue SKU (see /products) |
procure_price | number | yes | Unit purchase price, excl. VAT |
supplier_sku | string | no | Your own order code |
currency | string(3) | no | Defaults to EUR |
stock | integer | no | Units available |
lead_time_days | integer | no | Days to deliver |
moq | integer | no | Minimum order quantity |
valid_until | date | no | Price validity (YYYY-MM-DD) |
meta | object | no | Any extra fields; stored as-is |
Errors
Errors always return JSON with an error object — never an HTML page.
{ "error": { "code": "unauthorized", "message": "Invalid, expired or revoked API key." } }
| Status | Meaning |
|---|---|
401 | Missing / invalid / revoked / expired key |
422 | Validation error (see errors per field) |
404 | No such offer |
429 | Rate limit exceeded |
Request access
Tell us who you are and what you supply. We review every request by hand.