# Créez cette valeur une seule fois par nouvelle génération ; conservez-la lors des nouvelles tentatives.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Créez une seule fois par nouvelle génération ; réutilisez les headers et le payload d’origine lors des nouvelles tentatives.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Créez une seule fois par nouvelle génération ; réutilisez les headers et le body d’origine lors des nouvelles tentatives.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
GPT-Image-2.5 Ext
GPT-Image-2.5 Ext — Génération d’images
- Utilisez gpt-image-2.5-ext et sélectionnez Flare ou Sunburst avec version
- Traitement asynchrone : consultez les résultats à l’aide de l’ID de tâche après l’envoi
- Prend en charge la génération à partir de texte ou d’images, avec jusqu’à 16 images de référence
- Prend en charge 10 rapports d’aspect et auto, avec les résolutions 1K / 2K / 4K
- Générez de 1 à 4 images par requête, avec une facturation selon la version, la résolution et le nombre d’images effectivement livrées
POST
/
v1
/
images
/
generations
# Créez cette valeur une seule fois par nouvelle génération ; conservez-la lors des nouvelles tentatives.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Créez une seule fois par nouvelle génération ; réutilisez les headers et le payload d’origine lors des nouvelles tentatives.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Créez une seule fois par nouvelle génération ; réutilisez les headers et le body d’origine lors des nouvelles tentatives.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
# Créez cette valeur une seule fois par nouvelle génération ; conservez-la lors des nouvelles tentatives.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Créez une seule fois par nouvelle génération ; réutilisez les headers et le payload d’origine lors des nouvelles tentatives.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Créez une seule fois par nouvelle génération ; réutilisez les headers et le body d’origine lors des nouvelles tentatives.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Un coin lecture chaleureux près d’une fenêtre un jour de pluie, une lampe de table à lumière chaude, un éclairage cinématographique",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
Authentification et en-têtes
string
requis
Les endpoints de génération et de consultation des tâches utilisent une API Key de la plateforme pour l’authentification Bearer Token. Obtenez une clé sur la page de gestion des API Key.Pour consulter une tâche, utilisez une API Key appartenant au même utilisateur de la plateforme.
Authorization: Bearer YOUR_API_KEY
string
requis
Utilisez
application/json pour l’envoi. La génération à partir de texte comme celle à partir d’images utilise un corps de requête JSON.Choix de la version
| Nom affiché | model | version |
|---|---|---|
| Flare (par défaut) | gpt-image-2.5-ext | flare |
| Sunburst | gpt-image-2.5-ext | sunburst |
Paramètres de la requête
string
requis
Valeur fixe :
gpt-image-2.5-ext.string
défaut:"flare"
Version du modèle. Valeurs possibles :
flare, sunburst.string
requis
Prompt de génération ou de retouche d’image. Il ne doit pas être vide après suppression des espaces en début et en fin.Pour la génération à partir d’images, décrivez les éléments à conserver et ceux à modifier dans les références.
string
défaut:"1K"
Niveau de résolution de sortie. Valeurs possibles :
1K, 2K, 4K.string
défaut:"auto"
Rapport d’aspect de sortie. Choisissez
auto ou l’un des 10 rapports suivants :1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 21:9.integer
défaut:"1"
Nombre d’images à générer par requête. Doit être un entier compris entre
1 et 4.string[]
Tableau contenant jusqu’à
16 images de référence. Sans références, la génération se fait à partir de texte ; avec des références, elle se fait à partir d’images. Les références n’entraînent aucun supplément.Formats d’entrée acceptés :- URL d’images accessibles
- Data URL:
data:image/...;base64,...
Exemples d’utilisation
Les exemples suivants sont des corps de requête JSON pourPOST /v1/images/generations. Utilisez l’authentification et les en-têtes recommandés ci-dessus. Remplacez les adresses des images de référence par de véritables URL d’images accessibles.
Génération à partir de texte
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un jardin suspendu dans une ville futuriste, une légère brume matinale, photographie d’architecture",
"size": "16:9",
"resolution": "2K",
"n": 1
}
Génération à partir d’images avec Sunburst
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "Conserver le produit et le texte de l’emballage, remplacer le fond par un studio blanc cassé aux tons doux et ajouter une ombre portée naturelle",
"size": "1:1",
"resolution": "2K",
"n": 1,
"image_urls": [
"https://example.com/product.png"
]
}
Plusieurs images de référence et de sortie
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "Utiliser le produit de la première image comme sujet, s’inspirer du décor de la deuxième image et créer un visuel publicitaire horizontal",
"size": "16:9",
"resolution": "2K",
"n": 2,
"image_urls": [
"https://example.com/product.png",
"https://example.com/set.jpg"
]
}
Rapport d’aspect automatique et résolution 4K
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Un visuel principal minimaliste pour un lancement de produit, avec un rapport d’aspect adapté au contenu de l’image",
"size": "auto",
"resolution": "4K",
"n": 1
}
Consulter les résultats d’une tâche
Utilisez l’ID de tâche pour appeler l’endpoint de consultation des tâches :curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01EXAMPLE \
--header 'Authorization: Bearer <token>'
Tâche réussie
L’ID de tâche, les horodatages, les URL et les montants ci-dessous illustrent uniquement la structure de la réponse. Ils ne correspondent pas à une tâche réelle ni aux tarifs en vigueur.{
"code": 200,
"data": {
"id": "task_01EXAMPLE",
"status": "completed",
"progress": 100,
"created": 1788912000,
"completed": 1788912045,
"actual_time": 45,
"estimated_time": 300,
"cost": 0.2,
"credits_cost": 2,
"result": {
"images": [
{
"url": [
"https://example.com/output-1.png",
"https://example.com/output-2.png"
],
"expires_at": 1788998445
}
]
}
}
}
Réponse
integer
Code de statut de la réponse. Un envoi réussi au format unifié renvoie
200.string
Identifiant de cette requête, utilisé pour le diagnostic.
object
La tâche asynchrone acceptée.
Afficher Champs de la tâche
Afficher Champs de la tâche
string
Identifiant unique de la tâche, utilisé pour consulter son statut et les images obtenues.
string
Type d’objet. La valeur est
generation.task.string
Type de tâche. La valeur est
image.string
Le statut initial est
pending, ce qui indique que la tâche a été acceptée.integer
Progression actuelle, initialement
0.string
Chemin relatif de consultation de la tâche, par exemple
/v1/tasks/task_01EXAMPLE.