API pública de archivos de impresión
Base URL: https://app.customix.io/api
Autenticación: Cómo obtener la clave de API de Customix
Authorization: Bearer {your-api-token}Límite de solicitudes: 100 solicitudes por minuto (por usuario)
Visión general
Envía la personalización de un producto como texto sin formato de varias líneas y recibe una lista de
URL de archivos de impresión para ese envío.
Crear archivos de impresión
POST /print-filesCuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
shop_name | string | Sí | El nombre de tu tienda (por ejemplo, my-etsy-shop) |
name | string | Sí | Nombre de una plantilla de tu propiedad en esta tienda. Se usa la primera plantilla que coincide con el nombre. |
content | string | Sí | Personalización de varias líneas. Cada línea es <option name>: <value>. El - inicial es opcional. |
Formato del contenido
Cada línea asigna un valor a una opción personalizable de la plantilla.
- Los nombres de las opciones se comparan sin distinguir mayúsculas de minúsculas y se ignoran los espacios en blanco alrededor.
- Las opciones de texto, color y fecha toman el valor literalmente; por ejemplo
Harry, #ffffff, 2026-12-25.
- Las opciones de muestra (fuente, imagen, color, diseño, etc.) toman un número entero que
selecciona uno de los valores de muestra disponibles. De forma predeterminada, 1 selecciona el primer
valor, 2 el segundo, y así sucesivamente.
Ejemplo:
- Enter your name: Harry
- Text color: #ffffff
- Font: 1Respuesta 201
{
"id": "01jyz5kqxz2hrcwqzdq4jdv7r9",
"print_file_urls": [
"https://.../1.png",
"https://.../2.png"
]
}| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador del envío |
print_file_urls | string[] | Una URL por cada archivo de impresión de la plantilla, en el orden de la plantilla |
Los archivos de impresión estarán disponibles en las URL devueltas cuando termine la generación
(normalmente unos segundos después de la respuesta).
Respuestas de error
| Estado | Cuerpo | Causa |
|---|---|---|
401 | {"message": "Unauthenticated."} | Bearer token ausente o no válido |
403 | {"message": "Unauthenticated"} | El token es válido, pero quien hace la solicitud no tiene acceso a shop_name |
404 | {"message": "Template not found: …"} | No existe ninguna plantilla con ese name en esta tienda |
422 | {"errors": {"shop_name": […], "name": […], "content": […]}} | Faltan campos obligatorios |
422 | {"message": "Unknown option: <name>"} | Una línea hace referencia a una opción que no existe en la plantilla |
422 | {"message": "Swatch index N is out of range for option '…' …"} | El índice de la muestra está fuera del rango disponible |
422 | {"message": "Option '…' expects an integer swatch index, got …"} | Se ha pasado un valor no entero a una opción de muestra |
Ejemplo de solicitud
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"
}'Actualizado el: 20/05/2026