Desarrolladores
Referencia de la API REST
Autentícate, haz peticiones, gestiona errores y pagina, con un ejemplo completo de generación. Todas las operaciones aparecen a continuación.
La API REST está disponible en:
https://ximagesplitter.com/api/v1Acepta y devuelve JSON. Las páginas de esta sección documentan cada operación y se generan a partir de las mismas definiciones con las que funciona la API. El documento OpenAPI 3.1, legible por máquinas, está en https://ximagesplitter.com/api/v1/openapi.json.
Autenticación
Las operaciones que leen información pública del producto (modelos, precios y el perfil del producto) no necesitan credencial. Todas las demás necesitan una de estas:
- una API Key que creas en tu cuenta;
- un token de acceso de OAuth emitido a una Connected App para el recurso
https://ximagesplitter.com/api/v1.
Envíala como token bearer:
curl https://ximagesplitter.com/api/v1/account/profile \
-H "Authorization: Bearer $API_KEY"Cada operación exige un Scope específico, indicado en su página, como generations:write.
Ejemplo: generar una imagen
Elige un modelo
GET /models lista el modelo disponible (Seedream 5.5) con sus operaciones, opciones, huecos de entrada y límites. GET /models/{modelId} devuelve uno.
curl https://ximagesplitter.com/api/v1/models/seedream-5-5Consulta el precio
POST /generations/estimate devuelve los créditos que costaría una ejecución, sin cobrar nada.
curl -X POST https://ximagesplitter.com/api/v1/generations/estimate \
-H "Content-Type: application/json" \
-d '{
"modelKey": "seedream-5-5",
"operation": "text-to-image",
"prompt": "A lighthouse coast at sunset, wide panorama",
"options": { "composition": "x-carousel", "aspectRatio": "16:9", "resolution": "2K", "outputCount": 1 }
}'{ "appCredits": 10 }Inicia la generación
POST /generations cobra los créditos e inicia el trabajo. Envía un Idempotency-Key para que una petición reintentada nunca inicie una segunda ejecución de pago.
curl -X POST https://ximagesplitter.com/api/v1/generations \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 4f1c2a9e-lighthouse-01" \
-d '{
"submission": {
"mode": "image",
"modelKey": "seedream-5-5",
"operation": "text-to-image",
"prompt": "A lighthouse coast at sunset, wide panorama",
"options": { "composition": "x-carousel", "aspectRatio": "16:9", "resolution": "2K", "outputCount": 1 },
"assets": []
}
}'{ "creationId": "…", "status": "generating", "remainingCredits": 290 }Obtén el resultado
Consulta GET /generations/{creationId} hasta que status sea succeeded o failed, o suscríbete a los webhooks generation.completed y generation.failed.
curl https://ximagesplitter.com/api/v1/generations/$CREATION_ID \
-H "Authorization: Bearer $API_KEY"Cuando termina correctamente, primaryOutput.url y outputAssets contienen las URL de las imágenes, y splitterLinks contiene un enlace por imagen que la abre en el divisor para su propietario con sesión iniciada. Una generación fallida devuelve sus créditos automáticamente.
Los valores de respuesta anteriores son ejemplos; los precios y saldos dependen de tu cuenta y del catálogo actual. Para añadir imágenes de referencia (gratis, hasta 10), súbelas antes con POST /uploads y pasa el publicUrl devuelto en assets, o pasa directamente cualquier URL https pública.
Errores
Los errores usan los códigos de estado HTTP habituales y un único formato JSON:
{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Payment is required to continue.",
"request_id": "…",
"details": {}
}
}| Estado | Significado |
|---|---|
400 | La entrada no es válida. details.issues indica cada campo y su problema. |
401 | La credencial falta, no es válida, ha caducado o se ha revocado. Consulta WWW-Authenticate. |
402 | No hay créditos suficientes para esta generación o mejora de prompt. |
403 | La credencial carece del Scope requerido (insufficient_scope). |
404 | No encontrado, incluidos los recursos que pertenecen a otra persona. |
409 | El Idempotency-Key ya se usó con un cuerpo de petición distinto. |
429 | Demasiadas peticiones. Espera los segundos que indica Retry-After. |
5xx | Un problema temporal en nuestro lado o en un proveedor de modelos. Reintenta más tarde. |
code es estable y puedes basar tu lógica en él; message está pensado para personas. Todas las respuestas, correctas o no, llevan una cabecera x-request-id. Indícala cuando contactes con soporte.
Convenciones
- Idempotencia. Las operaciones que crean algo que podrías reintentar (una generación, una mejora de prompt, un pago, una solicitud de soporte o de reembolso) aceptan una cabecera
Idempotency-Key. La misma clave con el mismo cuerpo devuelve el primer resultado en lugar de actuar dos veces. - Paginación. Las listas devuelven
{ "items": [...], "next_cursor": "…" }. Pasacursor=<next_cursor>para la página siguiente ylimit(hasta 100) para el tamaño de página.next_cursoresnullen la última página. - Límites de peticiones. Las lecturas, las escrituras y las generaciones tienen cada una su propio límite por minuto. Un
429te dice cuánto esperar. - Trabajo asíncrono. Las generaciones terminan en segundo plano; la API responde en cuanto se acepta el trabajo.
- Traspasos a la persona. La compra de paquetes de créditos (y los cambios en una suscripción creada antes de que dejaran de venderse) devuelven una URL que el titular de la cuenta abre para pagar o confirmar. A través de la API no se paga nada.
