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.
https://girlgenerator.appAuthentification
Toutes les requêtes API nécessitent un jeton Bearer. Créez une clé API dans Paramètres → Clés API.
Authorization: Bearer YOUR_API_KEYGé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.
Paramètres
scenestringrequiredpromptstringrequiredaspect_ratiostringimage_inputstring[]Réponse
{
"task_id": "abc123",
"status": "pending",
"credits_used": 1,
"credits_remaining": 12762
}Exemples
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"
}'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 resultsconst 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 resultsInterroger une tâche
Interrogez une tâche pour vérifier son statut et récupérer les images générées.
Réponse
{
"task_id": "abc123",
"status": "processing"
}{
"task_id": "abc123",
"status": "success",
"images": [
"https://example.com/generated-image.png"
]
}{
"task_id": "abc123",
"status": "failed",
"error": "Generation failed due to content policy."
}Valeurs de statut
pendingTâche en file d'attenteprocessingGénération en courssuccessGénération terminée, images disponiblesfailedGénération échouée, message d'erreur disponiblePolling Example
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 againCodes d'erreur
Toutes les erreurs suivent ce format :
{
"error": {
"code": "error_code",
"message": "Human-readable description."
}
}| Statut HTTP | Code d'erreur | Description |
|---|---|---|
| 401 | unauthorized | Clé API manquante ou invalide |
| 403 | insufficient_credits | Crédits insuffisants pour cette opération |
| 404 | task_not_found | La tâche n'existe pas ou appartient à un autre utilisateur |
| 422 | invalid_params | Validation de la requête échouée |
| 429 | rate_limit_exceeded | Trop de requêtes (limite : 10/min) |
| 500 | internal_error | Erreur 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.