/api/v1/products/{id}/imagesProduktbild hochladen
Lädt eine einzelne Bilddatei hoch (multipart/form-data, Feldname file) und hängt sie an das imageUrls-Array des Produkts an. Nützlich, wenn keine CDN-URL bereitsteht — TracePass speichert das Bild und gibt seine öffentliche URL in der Antwort zurück.
Nur PNG / JPG / WebP, max. 5 MB pro Datei, max. 20 Bilder pro Produkt. Kein Idempotency-Key-Support — Multipart-Bodies sind nicht sicher hashbar. Client sollte Existenz prüfen + bei Retry überspringen. Das passende DELETE /api/v1/products/{id}/images/{index} entfernt ein einzelnes Bild per nullbasiertem Index. Jeder Upload wird vor der Speicherung geprüft: Die Bytes müssen zum angegebenen Bildtyp passen (sonst 415), und die Datei wird auf Viren gescannt (422 bei gefundener Schadsoftware, 503, wenn der Scanner kurz nicht verfügbar ist — erneut versuchen).
Pfad-Parameter
- iderforderlich
string (24 hex chars)
Produkt-ID.
Header
- Authorizationerforderlich
string
Bearer <token>— entweder eintp_API-Schlüssel (Developer → API Keys; am einfachsten, für Server-zu-Server) oder ein OAuth-2.0-Access-Token (Developer → OAuth Apps; für nutzerautorisierte Apps, scoped und widerrufbar). Die Authentication-Seite enthält den vollständigen OAuth-Flow und die Scope-Liste.e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Content-Typeerforderlich
string
multipart/form-datamit der von Ihrem HTTP-Client gesetzten Boundary.
Body-Felder
- fileerforderlich
binary (PNG / JPG / WebP, ≤ 5 MB)
Bild-Bytes, gesendet als
file-Formularfeld.
Anfrage
curl -sS -X POST \
https://app.tracepass.eu/api/v1/products/6650a1b2c3d4e5f6a7b8c9d0/images \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-F "file=@./battery-hero.jpg"Antwort
{
"imageUrl": "https://<public-image-host>/<imageId>.jpg",
"imageUrls": [
"https://example.com/existing-image-1.jpg",
"https://<public-image-host>/<imageId>.jpg"
]
}