API pubblica dei file di stampa
URL di base: https://app.customix.io/api
Autenticazione: Come ottenere la chiave API di Customix
Authorization: Bearer {your-api-token}Limite di richieste: 100 richieste al minuto (per utente)
Panoramica
Invia una personalizzazione di prodotto come semplice testo su più righe e ottieni in risposta un elenco di
URL dei file di stampa per quell'invio.
Creare i file di stampa
POST /print-filesCorpo della richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
shop_name | string | Sì | Il nome del tuo negozio (ad es. my-etsy-shop) |
name | string | Sì | Nome di un modello di tua proprietà in questo negozio. Viene usato il primo modello che corrisponde al nome. |
content | string | Sì | Personalizzazione su più righe. Ogni riga è <option name>: <value>. Il - iniziale è facoltativo. |
Formato del contenuto
Ogni riga associa un'opzione personalizzabile del modello a un valore.
- I nomi delle opzioni vengono confrontati senza distinzione tra maiuscole e minuscole, ignorando gli spazi circostanti.
- Le opzioni di testo / colore / data prendono il valore alla lettera, ad esempio
Harry, #ffffff, 2026-12-25.
- Le opzioni di tipo campione (font, immagine, colore, layout e così via) prendono un numero intero che
seleziona uno dei valori di campione disponibili. Per impostazione predefinita 1 seleziona il primo
valore, 2 il secondo e così via.
Esempio:
- Enter your name: Harry
- Text color: #ffffff
- Font: 1Risposta 201
{
"id": "01jyz5kqxz2hrcwqzdq4jdv7r9",
"print_file_urls": [
"https://.../1.png",
"https://.../2.png"
]
}| Campo | Tipo | Descrizione |
|---|---|---|
id | string | Identificatore dell'invio |
print_file_urls | string[] | Un URL per ogni file di stampa del modello, nell'ordine del modello |
I file di stampa diventano disponibili agli URL restituiti al termine della generazione
(in genere pochi secondi dopo la risposta).
Risposte di errore
| Stato | Corpo | Causa |
|---|---|---|
401 | {"message": "Unauthenticated."} | Token bearer mancante o non valido |
403 | {"message": "Unauthenticated"} | Il token è valido ma chi effettua la chiamata non ha accesso a shop_name |
404 | {"message": "Template not found: …"} | In questo negozio non esiste alcun modello con quel name |
422 | {"errors": {"shop_name": […], "name": […], "content": […]}} | Campi obbligatori mancanti |
422 | {"message": "Unknown option: <name>"} | Una riga fa riferimento a un'opzione che non esiste nel modello |
422 | {"message": "Swatch index N is out of range for option '…' …"} | L'indice del campione è fuori dall'intervallo disponibile |
422 | {"message": "Option '…' expects an integer swatch index, got …"} | Valore non intero passato a un'opzione di tipo campione |
Richiesta di esempio
curl -X POST 'https://app.customix.io/api/print-files' \
-H 'Authorization: Bearer 01jyz0z…|abc…' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"shop_name": "my-etsy-shop",
"name": "My Template",
"content": "- Enter your name: Harry\n- Text color: #ffffff\n- Font: 1"
}'Aggiornato il: 20/05/2026