/api/v1/productsCreate a product
Create a product. The category template is resolved automatically from the `category` slug — must match a seeded category (e.g. `batteries`, `textiles`, `jewelry`). Model strings are unique within the workspace.
Counts as one v1 write. Honours `Idempotency-Key`. Optional `imageUrls` accepts an array of public HTTPS URLs (max 20 per product, max 2048 chars each); the customer's CDN remains canonical and TracePass doesn't re-host them. Use the multipart upload endpoint when you don't have CDN URLs ready.
Headers
- Authorizationrequired
string
`Bearer <api-key>`.
e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Idempotency-Key
string
UUID v4 per logical operation.
Body fields
- namerequired
string (1-200)
Display name.
e.g. Li-Ion 48V Battery Pack
- modelrequired
string (1-100)
Model identifier. Must be unique within your workspace.
e.g. BP-48V-100
- categoryrequired
string
Seeded category slug — `batteries`, `textiles`, `jewelry`, `electronics`, `furniture`, `chemicals`, `packaging`, `toys`, `fmcg`, `tyres`, `iron-steel`, `construction`.
e.g. batteries
- description
string (≤ 2000)
Optional description.
- defaultFieldValues
object
Seed values applied to every passport created from this product. Each entry's key must exist on the category template.
- imageUrls
string[] (max 20)
Public HTTPS image URLs. Replaces the existing array on PATCH; appends on the multipart upload endpoint.
- sourceLocale
string (ISO 639-1)
Locale of `name` and `description`. Defaults to your workspace's `defaultSourceLocale` (typically `en`).
Request
curl -sS https://app.tracepass.eu/api/v1/products \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Idempotency-Key: 7b4f1e2c-9a3d-4e5b-8c1a-2d3e4f5a6b7c" \
-H "Content-Type: application/json" \
-d '{
"name": "Li-Ion 48V Battery Pack",
"model": "BP-48V-100",
"category": "batteries",
"defaultFieldValues": {
"battery_chemistry": "lithium-ion",
"nominal_voltage": 48
}
}'Response
{
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"name": "Li-Ion 48V Battery Pack",
"model": "BP-48V-100",
"category": "batteries",
"templateId": "6650a1b2c3d4e5f6a7b8c9d1",
"defaultFieldValues": { "battery_chemistry": "lithium-ion", "nominal_voltage": 48 },
"passportCount": 0,
"status": "active",
"createdAt": "2026-05-09T10:00:00.000Z"
}