Documentation API

Intégrez la génération d'images IA dans vos applications

Aperçu

L'API GirlGeneratorAI vous permet de générer des images IA par programmation. Toutes les requêtes utilisent JSON et exigent une authentification par clé API.

URL de basehttps://girlgenerator.app

Authentification

Toutes les requêtes API nécessitent un jeton Bearer. Créez une clé API dans Paramètres → Clés API.

En-tête
Authorization: Bearer YOUR_API_KEY

Générer une image

Soumettez une tâche de génération d'image. La réponse inclut un identifiant de tâche pour le polling.

POST /api/v1/generate

Paramètres

scenestringrequired
"text-to-image" ou "image-to-image"
promptstringrequired
Prompt textuel décrivant l'image (max 2000 caractères)
aspect_ratiostring
Optionnel. Une des valeurs : auto, 1:1, 3:2, 2:3, 9:16, 16:9, 3:4, 4:3. Par défaut : auto
image_inputstring[]
Requis pour image-to-image. Tableau d'URL d'images de référence

Réponse

201 Created
{
  "task_id": "abc123",
  "status": "pending",
  "credits_used": 1,
  "credits_remaining": 12762
}

Exemples

cURL
curl -X POST https://girlgenerator.app/api/v1/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scene": "text-to-image",
    "prompt": "a cute anime girl with blue hair, detailed portrait",
    "aspect_ratio": "1:1"
  }'
Python
import requests

response = requests.post(
    "https://girlgenerator.app/api/v1/generate",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "scene": "text-to-image",
        "prompt": "a cute anime girl with blue hair, detailed portrait",
        "aspect_ratio": "1:1",
    },
)
data = response.json()
print(data["task_id"])  # Use this to poll for results
JavaScript (fetch)
const response = await fetch("https://girlgenerator.app/api/v1/generate", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    scene: "text-to-image",
    prompt: "a cute anime girl with blue hair, detailed portrait",
    aspect_ratio: "1:1",
  }),
});

const data = await response.json();
console.log(data.task_id); // Use this to poll for results

Interroger une tâche

Interrogez une tâche pour vérifier son statut et récupérer les images générées.

GET /api/v1/tasks/task_id

Réponse

Pending / Processing
{
  "task_id": "abc123",
  "status": "processing"
}
Success
{
  "task_id": "abc123",
  "status": "success",
  "images": [
    "https://example.com/generated-image.png"
  ]
}
Failed
{
  "task_id": "abc123",
  "status": "failed",
  "error": "Generation failed due to content policy."
}

Valeurs de statut

pendingTâche en file d'attente
processingGénération en cours
successGénération terminée, images disponibles
failedGénération échouée, message d'erreur disponible

Polling Example

Python
import time
import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://girlgenerator.app"

# 1. Submit generation task
resp = requests.post(
    f"{BASE_URL}/api/v1/generate",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"scene": "text-to-image", "prompt": "a cute anime girl"},
)
task_id = resp.json()["task_id"]

# 2. Poll until complete
while True:
    result = requests.get(
        f"{BASE_URL}/api/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {API_KEY}"},
    ).json()

    if result["status"] == "success":
        print("Images:", result["images"])
        break
    elif result["status"] == "failed":
        print("Error:", result["error"])
        break

    time.sleep(5)  # Wait 5 seconds before polling again

Codes d'erreur

Toutes les erreurs suivent ce format :

{
  "error": {
    "code": "error_code",
    "message": "Human-readable description."
  }
}
Statut HTTPCode d'erreurDescription
401unauthorizedClé API manquante ou invalide
403insufficient_creditsCrédits insuffisants pour cette opération
404task_not_foundLa tâche n'existe pas ou appartient à un autre utilisateur
422invalid_paramsValidation de la requête échouée
429rate_limit_exceededTrop de requêtes (limite : 10/min)
500internal_errorErreur serveur

Limites de débit & crédits

10 requêtes par minute par clé API

💰

Le coût en crédits varie selon le modèle : 1 à 3 crédits par génération. Voir la liste des modèles pour les détails.

🛈

L'utilisation API et l'utilisation web partagent le même solde de crédits.