API publique des fichiers d'impression
URL de base : https://app.customix.io/api
Authentification : Comment obtenir la clé API Customix
Authorization: Bearer {your-api-token}Limite de débit : 100 requêtes par minute (par utilisateur)
Présentation
Envoyez une personnalisation de produit sous forme de texte brut sur plusieurs lignes et recevez en retour une liste
d'URL de fichiers d'impression pour cette soumission.
Créer des fichiers d'impression
POST /print-filesCorps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
shop_name | string | Oui | Nom de votre boutique (par exemple my-etsy-shop) |
name | string | Oui | Nom d'un modèle que vous possédez dans cette boutique. Le premier modèle correspondant au nom est utilisé. |
content | string | Oui | Personnalisation sur plusieurs lignes. Chaque ligne est <option name>: <value>. Le - initial est facultatif. |
Format du contenu
Chaque ligne associe une option personnalisable du modèle à une valeur.
- Les noms d'option sont comparés sans tenir compte de la casse, et les espaces autour sont ignorés.
- Les options texte / couleur / date prennent la valeur telle quelle, par exemple
Harry, #ffffff, 2026-12-25.
- Les options de nuancier (police, image, couleur, disposition, etc.) prennent un entier qui
sélectionne l'une des valeurs de nuancier disponibles. Par défaut, 1 sélectionne la première
valeur, 2 la deuxième, et ainsi de suite.
Exemple :
- Enter your name: Harry
- Text color: #ffffff
- Font: 1Réponse 201
{
"id": "01jyz5kqxz2hrcwqzdq4jdv7r9",
"print_file_urls": [
"https://.../1.png",
"https://.../2.png"
]
}| Champ | Type | Description |
|---|---|---|
id | string | Identifiant de la soumission |
print_file_urls | string[] | Une URL par fichier d'impression du modèle, dans l'ordre du modèle |
Les fichiers d'impression sont disponibles aux URL renvoyées une fois la génération terminée
(généralement quelques secondes après la réponse).
Réponses d'erreur
| Statut | Corps | Cause |
|---|---|---|
401 | {"message": "Unauthenticated."} | Jeton bearer manquant ou invalide |
403 | {"message": "Unauthenticated"} | Le jeton est valide, mais l'appelant n'a pas accès à shop_name |
404 | {"message": "Template not found: …"} | Aucun modèle portant ce name n'existe dans cette boutique |
422 | {"errors": {"shop_name": […], "name": […], "content": […]}} | Champs obligatoires manquants |
422 | {"message": "Unknown option: <name>"} | Une ligne fait référence à une option qui n'existe pas dans le modèle |
422 | {"message": "Swatch index N is out of range for option '…' …"} | L'index du nuancier est hors de la plage disponible |
422 | {"message": "Option '…' expects an integer swatch index, got …"} | Valeur non entière transmise à une option de nuancier |
Exemple de requête
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"
}'Mis à jour le : 20/05/2026