CreaVibeAPIVolver a CreaVibe

Errores

Los errores siguen el estándar Problem Details (RFC 9457): un cuerpo application/problem+json con un code estable para que tu código distinga cada caso sin leer el texto.

Formato

CampoDescripción
typeURL de la explicación de este error (esta página).
titleNombre del código HTTP.
statusCódigo HTTP.
detailExplicación para personas (en inglés). No la compares en tu código: usa code.
codeCódigo del error, estable entre versiones.
errorsSolo en validation_error: lista de {field, code, message} por campo.
Respuesta · 404
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "Not found.",
  "code": "not_found"
}
Respuesta · 422 (validación)
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#validation_error",
  "title": "Unprocessable Content",
  "status": 422,
  "detail": "Some fields are not valid.",
  "code": "validation_error",
  "errors": [
    {
      "field": "input.prompt",
      "code": "string_too_short",
      "message": "String should have at least 1 character"
    }
  ]
}

Códigos de error

codeHTTPCuándo
invalid_token401El token no es válido, está revocado o ha caducado.
authentication_required401Falta el token.
insufficient_credits402No quedan créditos suficientes. Nada se ha cobrado.
token_not_allowed403La operación no está disponible con un token de API.
permission_denied403No tienes permiso sobre ese recurso.
not_found404No existe o no es tuyo.
job_in_progress409Ya hay un trabajo en marcha sobre esa imagen.
idempotency_key_in_use409Una petición con la misma clave aún se está procesando.
precondition_failed412El proyecto cambió: vuelve a obtenerlo.
file_too_large413El archivo es demasiado grande.
page_too_large413La página supera los 2 MB.
validation_error422Algún campo no es válido: mira errors.
idempotency_key_reused422La Idempotency-Key ya se usó con otra petición.
page_count422Un diseño tiene entre 1 y 3 páginas.
embedded_image422Hay una imagen incrustada (data:) de más de 100 KB: súbela a la biblioteca.
template_not_found422No existe esa plantilla (o no está publicada).
asset_not_found422No existe esa imagen en tu biblioteca.
not_an_image422La IA solo trabaja con imágenes (no SVG).
style_not_found422No existe ese estilo.
library_full422Tu biblioteca está llena (limit_mb indica su tamaño).
invalid_webhook_url422La webhook_url no es https o no es pública.
rate_limited429Has superado un límite de uso.
internal_error500Error inesperado en CreaVibe: vuelve a intentarlo en un momento.
service_unavailable503La IA (u otro servicio) no está disponible ahora.

Códigos de estado

CódigoSignificadoCuándo
200OKLa petición ha ido bien.
201CreadoSe ha creado un recurso (un proyecto, un elemento de la biblioteca). La cabecera Location dice dónde está.
202AceptadoSe ha creado un trabajo de IA. La cabecera Location dice dónde consultarlo.
204Sin contenidoHecho, sin nada que devolver.
401No autenticadoFalta el token, no es válido o ha caducado.
402Sin créditosNo quedan créditos para esa acción.
403No permitidoLa acción no está disponible con un token de API.
404No encontradoNo existe o no pertenece a tu cuenta.
409ConflictoYa hay un trabajo en marcha sobre esa imagen, o una petición con la misma Idempotency-Key sin terminar.
412Precondición fallidaEl proyecto cambió desde la versión de If-Match.
413Demasiado grandeEl archivo o la página superan el tamaño máximo.
422No válidoFalta un campo, tiene un valor no admitido o la Idempotency-Key se reutilizó con otros datos.
429Demasiadas peticionesHas superado un límite de uso. Espera lo que diga Retry-After.
500Error internoAlgo falló en CreaVibe; ya está registrado.
503No disponibleEl servicio (la IA, los pagos) no está disponible en este momento.

Ejemplos

Respuesta · 401
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#invalid_token",
  "title": "Unauthorized",
  "status": 401,
  "detail": "The token is not valid or has expired. Create another one in your CreaVibe profile.",
  "code": "invalid_token"
}
Respuesta · 402
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#insufficient_credits",
  "title": "Payment Required",
  "status": 402,
  "detail": "You have no AI credits left.",
  "code": "insufficient_credits"
}
Respuesta · 412
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#precondition_failed",
  "title": "Precondition Failed",
  "status": 412,
  "detail": "The project changed since you loaded it. Load it again.",
  "code": "precondition_failed"
}
Respuesta · 422 (Idempotency-Key reutilizada)
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#idempotency_key_reused",
  "title": "Unprocessable Content",
  "status": 422,
  "detail": "This Idempotency-Key was already used with a different request.",
  "code": "idempotency_key_reused"
}
Respuesta · 429
{
  "type": "https://creavibe.app/desarrolladores/api/errores/#rate_limited",
  "title": "Too Many Requests",
  "status": 429,
  "detail": "Too many requests. Wait a moment and try again.",
  "code": "rate_limited"
}

Un trabajo de IA que falla no es un error de la petición: responde 200 con status: "failed" y su motivo en error.code (ver Trabajos de IA).