Documentación API
Integra la generación de imágenes IA en tus aplicaciones
Visión General
La API de GirlGeneratorAI te permite generar imágenes IA de forma programática. Todas las solicitudes usan JSON y requieren autenticación mediante clave API.
URL Base
https://girlgenerator.appAutenticación
Todas las solicitudes API requieren un token Bearer. Crea una clave API en Configuración → Claves API.
Cabecera
Authorization: Bearer YOUR_API_KEYGenerar Imagen
Envía una tarea de generación de imagen. La respuesta incluye un ID de tarea para sondeo.
POST /api/v1/generate
Parámetros
scenestringrequired"text-to-image" o "image-to-image"
promptstringrequiredPrompt de texto que describe la imagen (máx. 2000 caracteres)
aspect_ratiostringOpcional. Uno de: auto, 1:1, 3:2, 2:3, 9:16, 16:9, 3:4, 4:3. Por defecto: auto
image_inputstring[]Requerido para imagen a imagen. Array de URLs de imágenes de referencia
Respuesta
201 Created
{
"task_id": "abc123",
"status": "pending",
"credits_used": 1,
"credits_remaining": 12762
}Ejemplos
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 resultsJavaScript (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 resultsConsultar Tarea
Sondea una tarea para comprobar su estado y recuperar las imágenes generadas.
GET /api/v1/tasks/task_id
Respuesta
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."
}Valores de Estado
pendingTarea en colaprocessingLa imagen se está generandosuccessGeneración completada, imágenes disponiblesfailedGeneración fallida, mensaje de error disponiblePolling 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 againCódigos de Error
Todos los errores siguen este formato:
{
"error": {
"code": "error_code",
"message": "Human-readable description."
}
}| Estado HTTP | Código de Error | Descripción |
|---|---|---|
| 401 | unauthorized | Clave API ausente o inválida |
| 403 | insufficient_credits | No hay créditos suficientes para esta operación |
| 404 | task_not_found | La tarea no existe o pertenece a otro usuario |
| 422 | invalid_params | Validación de la solicitud fallida |
| 429 | rate_limit_exceeded | Demasiadas solicitudes (límite: 10/min) |
| 500 | internal_error | Error del servidor |
Límites de Tasa y Créditos
⚡
10 solicitudes por minuto por clave API
💰
El coste en créditos varía según el modelo: 1–3 créditos por generación. Consulta la lista de modelos para más detalles.
🛈
El uso por API y web comparte el mismo saldo de créditos.