Référence API

Utilisez l'API ouverte de GPT Image 2 pour générer et modifier des images par programmation. Authentifiez-vous avec votre propre clé API, payez avec des crédits et obtenez les résultats par polling.

Présentation

L'API GPT Image 2 vous permet de générer des images via votre compte GPT Image 2. Les requêtes utilisent la clé API de votre site et sont acheminées via notre intégration Kie côté serveur.

Créez une clé API depuis :

/settings/apikeys

Puis appelez :

POST /api/v1/images/generations
GET /api/v1/images/tasks/{task_id}

La génération d'images est asynchrone. L'endpoint de création renvoie un identifiant de tâche, et l'endpoint de tâche renvoie les URLs finales de l'image lorsque la génération réussit.

Authentification

Envoyez votre clé API GPT Image 2 en tant que token Bearer :

Authorization: Bearer sk-xxx

N'exposez pas les clés API dans le code côté navigateur. Utilisez-les depuis votre backend, vos scripts ou vos fonctions serverless.

Facturation

L'utilisation de l'API consomme les mêmes crédits que l'application web :

OpérationCoût en crédits
Génération d'image10 crédits par image

Si une requête du fournisseur échoue avant qu'une tâche soit acceptée, les crédits consommés sont automatiquement remboursés par le flux d'échec de tâche.

Créer une génération d'image

Endpoint

POST https://gpt-image-2.art/api/v1/images/generations

Corps de la requête

ParamètreTypeObligatoireDescription
modelstringNonUtilisez gpt-image-2. Les alias internes gpt-image-2-text-to-image et gpt-image-2-image-to-image sont également pris en charge.
promptstringOuiDescription textuelle de l'image. Obligatoire sauf si des image_urls sont fournis.
image_urlsstring[]NonURLs d'images de référence pour la génération image à image.
nintegerNonNombre d'images à générer, de 1 à 10. Valeur par défaut : 1.
sizestringNonL'un de 1024x1024, 1536x1024, 1024x1536, 1920x1088, 1088x1920, 3824x2160, 2160x3824 ou auto.
qualitystringNonOption de qualité du fournisseur, par exemple high ou auto.
output_formatstringNonpng, jpeg ou webp lorsque le fournisseur le prend en charge.
response_formatstringNonSeul url est pris en charge.
userstringNonIdentifiant optionnel de l'utilisateur final pour votre propre suivi.

Exemple texte vers image

curl https://gpt-image-2.art/api/v1/images/generations \
  -H "Authorization: Bearer $GPT_IMAGE_2_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A cinematic product photo of a matte black coffee bag on a marble counter",
    "size": "1536x1024",
    "quality": "high",
    "n": 1
  }'

Exemple image vers image

curl https://gpt-image-2.art/api/v1/images/generations \
  -H "Authorization: Bearer $GPT_IMAGE_2_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Keep the product unchanged and place it on a clean studio background",
    "image_urls": ["https://example.com/product.png"],
    "size": "1024x1024",
    "n": 1
  }'

Réponse de création

{
  "id": "8f6d9f87-1b3f-4f89-bdfb-3df8e77b7af3",
  "object": "image.generation",
  "created": 1714000000,
  "model": "gpt-image-2-text-to-image",
  "status": "pending",
  "credits": 10,
  "data": []
}

Enregistrez l'id et interrogez l'endpoint de tâche par polling.

Interroger une tâche d'image

Endpoint

GET https://gpt-image-2.art/api/v1/images/tasks/{task_id}

Exemple

curl https://gpt-image-2.art/api/v1/images/tasks/8f6d9f87-1b3f-4f89-bdfb-3df8e77b7af3 \
  -H "Authorization: Bearer $GPT_IMAGE_2_API_KEY"

Réponse en cas de succès

{
  "id": "8f6d9f87-1b3f-4f89-bdfb-3df8e77b7af3",
  "object": "image.generation",
  "created": 1714000000,
  "model": "gpt-image-2-text-to-image",
  "status": "succeeded",
  "credits": 10,
  "data": [
    {
      "url": "https://..."
    }
  ]
}

Valeurs possibles de status :

StatutSignification
pendingLa tâche est en file d'attente.
processingLe fournisseur génère l'image.
succeededLes URLs d'image sont disponibles dans data.
failedLa génération a échoué.
canceledLa génération a été annulée.

Exemple JavaScript

const apiKey = process.env.GPT_IMAGE_2_API_KEY;

const createRes = await fetch(
  'https://gpt-image-2.art/api/v1/images/generations',
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      model: 'gpt-image-2',
      prompt:
        'A premium skincare bottle on wet stone with soft studio lighting',
      size: '1024x1024',
      n: 1,
    }),
  }
);

const task = await createRes.json();

let result = task;
while (['pending', 'processing'].includes(result.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000));
  const queryRes = await fetch(
    `https://gpt-image-2.art/api/v1/images/tasks/${task.id}`,
    {
      headers: {
        Authorization: `Bearer ${apiKey}`,
      },
    }
  );
  result = await queryRes.json();
}

console.log(result.data);

Format d'erreur

Les erreurs suivent le format de style OpenAI :

{
  "error": {
    "message": "Invalid API key provided.",
    "type": "authentication_error",
    "param": null,
    "code": "invalid_api_key"
  }
}

Ressources associées