/api/v1/productsProdukt anlegen
Erstellt ein Produkt. Die Kategorienvorlage wird automatisch aus dem `category`-Slug aufgelöst — muss einer gesäten Kategorie entsprechen (z. B. `batteries`, `textiles`, `jewelry`). Modell-Strings sind innerhalb des Workspaces eindeutig.
Zählt als ein v1-Schreibvorgang. Unterstützt Idempotency-Key. Optional `imageUrls` akzeptiert ein Array öffentlicher HTTPS-URLs (max. 20 pro Produkt, max. 2048 Zeichen je); das Kunden-CDN bleibt kanonisch — TracePass hostet die Bilder nicht erneut. Multipart-Upload-Endpoint nutzen, wenn keine CDN-URLs vorliegen.
Header
- Authorizationerforderlich
string
`Bearer <api-key>`.
e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Idempotency-Key
string
UUID v4 pro logischer Operation.
Body-Felder
- nameerforderlich
string (1-200)
Anzeigename.
e.g. Li-Ion 48V Battery Pack
- modelerforderlich
string (1-100)
Modellbezeichnung. Muss im Workspace eindeutig sein.
e.g. BP-48V-100
- categoryerforderlich
string
Gesäter Kategorie-Slug.
e.g. batteries
- description
string (≤ 2000)
Optionale Beschreibung.
- defaultFieldValues
object
Seed-Werte, die für jeden aus diesem Produkt erstellten Pass übernommen werden.
- imageUrls
string[] (max 20)
Öffentliche HTTPS-Bild-URLs.
- sourceLocale
string (ISO 639-1)
Locale von `name` und `description`.
Anfrage
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
}
}'Antwort
{
"_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"
}