Référence API
Images : tâches asynchrones
Modèles sur cet endpoint (12)
/v1/images/tasks/v1/images/tasks/{task_id}/v1/images/tasks/{task_id}/contentGénération d'images asynchrone — la route utilisée par tous les modèles d'image du catalogue. La soumission renvoie un task_id ; interrogez l'endpoint de statut, puis lisez les URL de résultat persistantes depuis /content — ou enregistrez un webhook et passez-vous de l'interrogation.
#Paramètres de la requête
modelstringobligatoireUn ID de modèle d'image asynchrone, par ex. gpt-image-2. Les modèles uniquement synchrones rejettent cet endpoint.
promptstringobligatoireCe qu'il faut dessiner.
sizestringfacultatifFormat prédéfini comme "16:9" — ce qu'attendent la plupart des modèles d'image ; les valeurs exactes figurent sur la fiche du modèle. Certains modèles plus anciens acceptent aussi WIDTHxHEIGHT.
resolutionstringfacultatifPalier de résolution de sortie comme "1K", "2K" ou "4K", si la fiche du modèle le mentionne — également une dimension de palier.
qualitystringfacultatifNiveau de qualité du fournisseur (par ex. standard / hd) — également une dimension de palier.
nintegerfacultatifNombre d'images (la facturation est multipliée par image).
imagesarrayfacultatifImages de référence à modifier ou à suivre, sous forme d’URL ou de data URI. La fiche du modèle indique combien chaque modèle en accepte.
maskstringfacultatifRedessine une zone de la première image de référence — voir « Modifier une partie d’une image » plus bas. Seuls les modèles dont la fiche indique mask l’acceptent ; mask_url est accepté comme le même champ.
webhook_urlstringfacultatifURL HTTPS appelée dès que la tâche atteint un état final — voir le guide vidéo pour le contrat de callback.
webhook_secretstringfacultatifSi défini, les envois portent X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)).
Les paramètres varient selon le modèle
Les noms de champs peuvent varier selon la famille de modèles
#Modifier une partie d’une image
Envoyez l’image dans images et un mask : seule la zone masquée est redessinée, le reste de l’image ne change pas. Décrivez dans prompt ce qui doit y apparaître. Aujourd’hui, gpt-image-2.5-flare et gpt-image-2.5-sunburst acceptent un masque ; la fiche du modèle l’affiche comme champ mask.
curl https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "Replace the mug with a glass of orange juice; keep everything else",
"images": ["https://example.com/desk.png"],
"mask": "https://example.com/desk-mask.png",
"resolution": "1K"
}'Comment créer le masque
- 400 invalid_requestmask a été envoyé sans image de référence, ou à un modèle qui n’accepte pas de masque (gpt-image-2.5-ext répond "mask is not supported on Ext").
#Erreurs associées
- 404 not_foundChemin inconnu, nom de modèle inconnu, ou task_id expiré / appartenant à un autre compte.
- 401Jeton bearer invalide ou manquant. Pas de error.code sur ce chemin — basez-vous sur le statut.
- 402 insufficient_user_quotaLe solde du portefeuille ne couvre pas l'estimation préréservée.
- 429Limitation par clé. Corps vide ; attendez Retry-After. Un 429 qui contient insufficient_user_quota correspond en revanche à un plafond de dépenses quotidien.
- 503 model_not_foundModèle inconnu, ou aucun canal opérationnel ne le sert actuellement.
#Exemple de requête
# 1. submit
curl https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-image-2.5-ext", "prompt": "A red paper crane on a desk", "size": "16:9", "resolution": "1K"}'
# 2. poll every 3s until a terminal status
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# 3. fetch persistent result URLs
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID/content -H "Authorization: Bearer sk-YOUR_KEY"#Réponse
// POST /v1/images/tasks
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/images/tasks/{task_id}
{"task_id": "task_xxx", "status": "in_progress", "progress": "60%"}
// GET /v1/images/tasks/{task_id}/content — after completion
{"created": 1720000000, "data": [{"url": "https://…"}]}Toujours bloqué ?
Envoyez-nous l'ID de requête ou le message d'erreur, et nous examinerons le problème.