Wan 3.0Desde0,05 USDpor video

Texto, imagen y efectos en un solo estudio

Creovox AI
Empezar gratis

Inicio/Creovox API

API para desarrolladores · v1

Creovox API

Llama desde tu propio código a los mismos modelos que impulsan el estudio de Creovox. La versión 1 admite GPT Image 2.6 para generar imágenes a partir de texto y para edición de imágenes. Cada solicitud es una tarea asíncrona: créala y consulta hasta que la imagen esté lista.

Inicio rápido

  1. 01

    Crea una clave de API

    Inicia sesión y abre API Keys en el panel. Crea una clave distinta para cada aplicación, así puedes desactivar una sin romper las demás.

  2. 02

    Compra créditos

    La API solo gasta créditos comprados. Los créditos gratuitos y de bonificación siguen funcionando en el sitio web, pero no se pueden usar con la API.

  3. 03

    Crea una tarea y consúltala

    Envía tu prompt con POST a /api/v1/tasks, guarda el task_id y luego haz GET /api/v1/tasks/ cada pocos segundos hasta que el estado sea succeeded o failed.

Autenticación

Envía tu clave en el encabezado Authorization en cada solicitud. Las claves están vinculadas a tu cuenta de Creovox; las claves creadas en otros sitios se rechazan. Nunca pongas una clave en código de navegador ni en un repositorio público.

Authorization: Bearer YOUR_API_KEY

Puntos de enlace

MétodoRutaDescripción
POST/api/v1/tasksCrea una tarea de generación
GET/api/v1/tasks/{task_id}Obtén el estado y la salida de una tarea
GET/api/v1/tasksLista las tareas creadas con esta clave, las más recientes primero
GET/api/v1/modelsLista los modelos con su esquema de entrada y precios (no hace falta clave)
GET/api/v1/account/creditsConsulta el saldo de créditos del propietario de la clave
GET/api/v1/openapi.jsonDocumento OpenAPI 3.1 (no hace falta clave)

Crear una tarea

Pon el id del modelo en model y sus parámetros en input. Los nombres de parámetro desconocidos se rechazan, así los errores de escritura fallan al instante. Envía un encabezado Idempotency-Key para que una solicitud reintentada no cree ni cobre una segunda tarea.

curl -X POST https://creovox.ai/api/v1/tasks \
  -H "Authorization: Bearer $CREOVOX_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1234-fox" \
  -d '{
    "model": "gpt-image-2.6",
    "input": {
      "prompt": "A red fox in fresh snow, cinematic light",
      "variant": "flare",
      "aspect_ratio": "16:9",
      "resolution": "2k"
    }
  }'
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n42…gptimg",
    "model": "gpt-image-2.6",
    "status": "processing",
    "output": null,
    "credits_charged": 20,
    "refund_pending": false,
    "error": null,
    "created_at": "2026-11-07T08:00:00.000Z"
  }
}

Parámetros de GPT Image 2.6

ParámetroTipoPredeterminadoDescripción
promptstring—Qué dibujar o cómo cambiar las imágenes de referencia. Hasta 20.000 caracteres. Obligatorio.
variantflare | sunburst | economyflareflare es el equilibrio predeterminado entre velocidad y detalle, sunburst prioriza el detalle, economy es la opción más barata y solo genera en 1K.
aspect_ratiostringautoForma del encuadre, como 1:1, 16:9 o 9:16. auto deja que el modelo elija. Economy admite menos opciones.
resolution1k | 2k | 4k1k1k, 2k o 4k. Economy siempre genera en 1k.
output_formatpng | jpeg | webppngpng, jpeg o webp. Economy siempre devuelve png.
imagesstring[][]Hasta 16 URL de imágenes públicas por HTTP(S). Si se indican, la tarea edita esas imágenes en lugar de dibujar desde cero.

Consultar el resultado

Consulta cada 3 a 5 segundos y detente cuando el estado sea succeeded o failed. Las imágenes suelen tardar de unos segundos a unos minutos; si una tarea sigue en processing después de 10 minutos, detente y contacta con el soporte indicando su task_id. Cuando la tarea termina con éxito, output.images contiene las URL de las imágenes; descárgalas si necesitas conservarlas.

curl https://creovox.ai/api/v1/tasks/TASK_ID \
  -H "Authorization: Bearer $CREOVOX_API_KEY"
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n42…gptimg",
    "model": "gpt-image-2.6",
    "status": "succeeded",
    "output": { "images": [{ "url": "https://…/image.png" }] },
    "credits_charged": 20,
    "refund_pending": false,
    "error": null,
    "created_at": "2026-11-07T08:00:00.000Z"
  }
}

Estado de la tarea

processing
La tarea se está procesando o espera la confirmación del cargo o de su aceptación por el proveedor.
succeeded
Terminada. output.images contiene los resultados y credits_charged es definitivo.
failed
La generación falló y error.message explica el motivo. Los créditos cobrados se reembolsan automáticamente: refund_pending es true hasta que llega el reembolso, y después credits_charged muestra 0. Puedes dejar de consultar.
// Node.js 18+
const API = 'https://creovox.ai/api/v1'
const headers = {
  Authorization: `Bearer ${process.env.CREOVOX_API_KEY}`,
  'Content-Type': 'application/json',
}

async function call(path, init = {}) {
  const res = await fetch(API + path, { ...init, headers: { ...headers, ...init.headers }, signal: AbortSignal.timeout(30_000) })
  const body = await res.json().catch(() => ({ code: res.status, message: res.statusText }))
  if (body.code !== 200) {
    const error = new Error(body.message)
    Object.assign(error, { status: res.status, type: body.error_type, data: body.data, retryAfter: res.headers.get('retry-after') })
    throw error
  }
  return body.data
}

// Reuse the same key when you retry this request: you get the same task and pay once.
const idempotencyKey = crypto.randomUUID()
let task
try {
  task = await call('/tasks', {
    method: 'POST',
    headers: { 'Idempotency-Key': idempotencyKey },
    body: JSON.stringify({ model: 'gpt-image-2.6', input: { prompt: 'A red fox in fresh snow' } }),
  })
} catch (error) {
  if (!error.data?.task_id || !['billing_unconfirmed', 'submission_unconfirmed'].includes(error.type)) throw error
  task = { task_id: error.data.task_id, status: 'processing' }
}

const deadline = Date.now() + 10 * 60_000
while (task.status === 'processing') {
  if (Date.now() > deadline) throw new Error(`Task ${task.task_id} is still processing; contact support.`)
  await new Promise(resolve => setTimeout(resolve, 4000))
  try {
    task = await call(`/tasks/${task.task_id}`)
  } catch (error) {
    // 429 and 5xx are temporary: wait and poll again. Anything else is final.
    if (error.status !== 429 && error.status < 500) throw error
    await new Promise(resolve => setTimeout(resolve, (Number(error.retryAfter) || 5) * 1000))
  }
}
console.log(task.status, task.output?.images, task.error, task.refund_pending)

Precios

Los precios están en créditos y coinciden exactamente con el sitio web. 1 crédito son US$0.01. Cada imagen de referencia añade un importe pequeño. GET /api/v1/models siempre devuelve la lista de precios actual.

VarianteResoluciónCréditos por imagenPor imagen de referencia
flare1k10+2
flare2k20+2
flare4k36+2
sunburst1k10+2
sunburst2k20+2
sunburst4k36+2
economy1k5—

Errores

Los errores usan el código de estado HTTP y la misma estructura JSON: code, message, error_type y data.

HTTPerror_typeSignificado
400invalid_requestFalta un parámetro o no es válido. El message lo identifica.
401invalid_api_keyLa clave falta, es incorrecta, está desactivada o eliminada.
402insufficient_creditsNo hay suficientes créditos comprados para esta tarea.
403key_not_allowed, account_suspendedLa clave pertenece a otro sitio, o la cuenta está suspendida.
404not_foundLa tarea no existe o se creó con otra clave.
409idempotency_conflictEse Idempotency-Key ya se usó para otra solicitud.
429rate_limitedDemasiadas solicitudes, tareas en ejecución o comprobaciones de estado para esta clave. Espera los segundos de Retry-After.
5xxprovider_error, billing_unconfirmed, upstream_unavailableCon provider_error se reembolsan los cargos confirmados. Con billing_unconfirmed o submission_unconfirmed, conserva data.task_id y consulta esa tarea mientras se verifica el resultado. Reintenta los errores temporales con el mismo Idempotency-Key.

Límites y buenas prácticas

  • Cada clave tiene un límite por minuto y un límite de tareas en ejecución. Los planes de pago tienen límites más altos.
  • Envía un encabezado Idempotency-Key en cada solicitud de creación. Si una solicitud se agota por tiempo de espera, reinténtala con el mismo Idempotency-Key: obtienes la misma tarea y nunca se te cobra dos veces.
  • Las imágenes de referencia deben ser accesibles desde internet público. Las URL firmadas sirven si siguen siendo válidas unos minutos.
  • Las tareas son privadas. Una clave solo puede leer las tareas que creó.

Preguntas frecuentes

¿Puedo usar mis créditos gratuitos con la API?

No. La API solo gasta créditos comprados. Los créditos gratuitos y de bonificación siguen disponibles en el sitio web.

¿Se me cobra cuando una tarea falla?

No. Las tareas fallidas se reembolsan automáticamente. Mientras se aplica el reembolso, refund_pending es true; cuando llega, credits_charged es 0.

¿Qué modelos están disponibles?

La versión 1 ofrece GPT Image 2.6. Se añadirán más modelos de imagen y vídeo; GET /api/v1/models muestra lo disponible en este momento.

¿Puedo llamar a la API desde un navegador?

La API permite solicitudes de origen cruzado, pero cualquiera que vea tu página puede leer la clave. Llámala desde tu servidor.

¿Es una API oficial de OpenAI?

No. Creovox AI es un servicio independiente que te da acceso a GPT Image 2.6 a través de su propia API y sus propios créditos.