Saltar al contenido principal

Endpoints

MethodEndpointDescripción
POST/api/v1/generateTask/nano-bananaCrear tarea de generación
GET/api/v1/statusTask/nano-bananaConsultar estado de la tarea

Autenticación

Todas las solicitudes requieren una clave API en el header:
Authorization: Bearer YOUR_API_KEY

Cuerpo de la solicitud

{
  "request_type": "async",
  "callback_url": "https://...",
  "provider": "auto",
  "input": {
    "mode": "text-to-image",
    "prompt": "...",
    "aspect_ratio": "16:9",
    "image_urls": ["..."],
    "output_format": "png"
  }
}

Parámetros

request_type
string
predeterminado:"async"
async (polling) o callback (webhook)
callback_url
string
URL de callback, obligatoria cuando request_type=callback (condicional)
provider
string
predeterminado:"auto"
Estrategia de enrutamiento: auto, value u official
input
object
requerido
Parámetros de entrada del modelo
Opciones de modo:
  • text-to-image — Generar desde descripción de texto
  • image-to-image — Generar con imágenes de referencia

Ejemplo

Text-to-Image
curl -X POST "https://api.apixo.ai/api/v1/generateTask/nano-banana" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "async",
    "provider": "value",
    "input": {
      "mode": "text-to-image",
      "prompt": "a cozy cyberpunk cafe with neon lights",
      "aspect_ratio": "3:2",
      "output_format": "png"
    }
  }'
Image-to-Image
curl -X POST "https://api.apixo.ai/api/v1/generateTask/nano-banana" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "callback",
    "callback_url": "https://your-server.com/callback",
    "provider": "official",
    "input": {
      "mode": "image-to-image",
      "prompt": "make this scene look like sunrise with warm golden light",
      "aspect_ratio": "4:5",
      "image_urls": ["https://example.com/ref1.jpg"],
      "output_format": "jpeg"
    }
  }'

Respuesta

POST /api/v1/generateTask/nano-banana

Devuelve taskId en éxito para consultas de estado posteriores. Éxito:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_12345678"
  }
}
Error:
{
  "code": 400,
  "message": "Insufficient credits",
  "data": null
}

GET /api/v1/statusTask/nano-banana

Consulta el estado de ejecución y resultados de la tarea vía taskId.
curl -X GET "https://api.apixo.ai/api/v1/statusTask/nano-banana?taskId=task_12345678" \
  -H "Authorization: Bearer YOUR_API_KEY"
Éxito:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_12345678",
    "state": "success",
    "resultJson": "{\"resultUrls\":[\"https://r2.apixo.ai/image.png\"]}",
    "createTime": 1767965610929,
    "completeTime": 1767965652317,
    "costTime": 41388
  }
}
Fallido:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_12345678",
    "state": "failed",
    "failCode": "CONTENT_VIOLATION",
    "failMsg": "Content does not meet safety guidelines"
  }
}

Campos de respuesta de estado

taskId
string
Identificador único de la tarea.
state
string
Estado actual: pending, processing, success o failed.
resultJson
string
Cadena JSON que contiene el array resultUrls. Solo presente en éxito. Parsear con JSON.parse().
failCode
string
Código de error. Solo presente cuando state es failed. Ver Códigos de error.
failMsg
string
Mensaje de error legible. Solo presente cuando state es failed.
createTime
integer
Marca de tiempo de creación (milisegundos Unix).
completeTime
integer
Marca de tiempo de finalización (milisegundos Unix).
costTime
integer
Duración del procesamiento en milisegundos.

Códigos de error

CodeDescripción
400Parámetros inválidos o error de solicitud
401Clave API inválida o faltante
429Límite de tasa excedido
Fail CodeDescripción
CONTENT_VIOLATIONEl contenido viola las directrices de seguridad
INVALID_IMAGE_URLNo se puede acceder a la URL de imagen proporcionada

Límites de tasa

LímiteValor
Solicitudes10000 / minuto
Tareas concurrentes1000
Superar los límites devuelve error 429. Espera y reintenta.

Consejos

  • Tiempo de generación: Media ~15-20 segundos. Envía la tarea, espera 10 segundos y luego consulta cada 3 segundos.
  • Rápido y económico: Nano Banana destaca en velocidad y costo-efectividad, ideal para prototipado rápido y generación por lotes.
  • Modo callback: En escenarios de alta concurrencia, usa modo callback para evitar polling frecuente.
  • Caducidad de imágenes: Las URLs de resultado son válidas 15 días. Descarga y almacena las salidas importantes con prontitud.
  • Moderación de contenido: Los prompts deben cumplir las directrices de seguridad. Las violaciones devuelven CONTENT_VIOLATION.
  • Selección de proporción:
    • 1:1: Cuadrado, para avatares y redes sociales
    • 3:2/4:3: Paisaje, para fotos tradicionales
    • 2:3/3:4: Retrato, para pantallas móviles
    • 16:9/21:9: Ultra panorámico, para banners y fondos
    • auto: Selecciona automáticamente la mejor proporción
  • Selección de formato:
    • png: Sin pérdida, soporta transparencia, archivo más grande (por defecto)
    • jpeg: Compresión con pérdida, archivo más pequeño, bueno para transferencia rápida
  • Múltiples referencias: El modo image-to-image soporta hasta 5 imágenes de referencia; el modelo combina todos los estilos y contenido.
  • Formatos de imagen: image_urls soporta JPG, PNG, WebP, máx. 10MB por imagen.

Las URLs de resultado expiran tras 15 días. Descarga y almacena las salidas importantes con prontitud. En escenarios de alta concurrencia, usa modo callback para evitar polling frecuente.

Relacionado