/api/v1/products/{id}/imagesCaricare un'immagine del prodotto
Carica un singolo file immagine (multipart/form-data, nome del campo file) e lo aggiunge in coda all'array imageUrls del prodotto. Usatelo quando non avete pronto un URL del CDN — TracePass archivia l'immagine e restituisce il suo URL pubblico nella risposta.
Solo PNG / JPG / WebP, max 5 MB per file, max 20 immagini per prodotto. Nessun supporto per Idempotency-Key — i corpi multipart non sono calcolabili in hash in modo sicuro. Il client dovrebbe verificare l'esistenza + saltare in caso di nuovo tentativo. Il corrispondente DELETE /api/v1/products/{id}/images/{index} rimuove una singola immagine tramite indice su base zero. Ogni caricamento viene controllato prima dell'archiviazione: i byte devono corrispondere al tipo di immagine dichiarato (altrimenti 415) e il file viene analizzato contro i virus (422 se viene rilevato malware, 503 se lo scanner è momentaneamente non disponibile — riprovare).
Parametri di percorso
- idobbligatorio
string (24 hex chars)
ID del prodotto.
Header
- Authorizationobbligatorio
string
Bearer <token>— una chiave APItp_(Developer → API Keys; più semplice, per server-to-server) oppure un access token OAuth 2.0 (Developer → OAuth Apps; per app autorizzate dall'utente, scoped e revocabili). La pagina Authentication contiene il flusso OAuth completo e l'elenco degli scopes.e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Content-Typeobbligatorio
string
multipart/form-datacon il parametro boundary impostato dal vostro client HTTP.
Campi del corpo
- fileobbligatorio
binary (PNG / JPG / WebP, ≤ 5 MB)
Byte dell'immagine inviati come campo del modulo
file.
Richiesta
curl -sS -X POST \
https://app.tracepass.eu/api/v1/products/6650a1b2c3d4e5f6a7b8c9d0/images \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-F "file=@./battery-hero.jpg"Risposta
{
"imageUrl": "https://<public-image-host>/<imageId>.jpg",
"imageUrls": [
"https://example.com/existing-image-1.jpg",
"https://<public-image-host>/<imageId>.jpg"
]
}