Saltar a la documentación
En esta página

Seedance 2.5

Genera videos con Seedance 2.5 utilizando texto, primer y último fotograma o referencias multimodales. Esta página cubre el flujo completo de trabajo, desde la petición hasta el resultado final.

ID de modelo de la API: seedance-2-5

La generación es asíncrona. Guarda el taskId devuelto al crear una tarea, luego consulta su estado o recibe un webhook.

Capacidades

FunciónValores admitidos
Resolución de salida480p · 720p · 1080p
Duración de salida4 a 30 segundos
Relación de aspecto16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Imágenes de referenciaHasta 30 imágenes
Videos de referenciaHasta 10 videos
Audios de referenciaHasta 10 archivos de audio
Suma de referenciasHasta 50 archivos de referencia en total
Duración total por grupo de video/audio30 segundos
seedNo admitido
También admite duration=-1 en el modo de referencia a video; consulta los detalles de edición y precios de video más abajo. image-to-video solo admite adaptive; omite este campo o configúralo como adaptive.

Precios y créditos

La generación de video se cobra en créditos según la duración facturable en segundos. Sin video de entrada, la duración facturable equivale a la del video generado; si se incluye un video de entrada, también se contabiliza la duración del video de referencia.

La siguiente tabla muestra los créditos cobrados por segundo, no el costo total de la tarea. La tarifa varía según el modelo, la resolución de salida y si se proporcionan videos de referencia en el modo de referencia a video. Para saber cómo calcular el costo total, consulta las fórmulas y los ejemplos que aparecen debajo de la tabla.

Resolución de salidaSin video de referenciaCon video de referencia
480p10 créditos/segundo6 créditos/segundo
720p20 créditos/segundo12 créditos/segundo
1080p30 créditos/segundo20 créditos/segundo
  • Sin video de referencia: segundos de salida × tarifa sin video.
  • Con video de referencia: (segundos de salida + segundos del video de referencia medidos) × tarifa con video. El servidor mide la duración total del video de referencia y la redondea al entero superior en segundos antes de facturar.
  • Las referencias de imagen o de audio por sí solas usan la tarifa sin video. La tarifa con video de referencia solo se aplica en el modo de referencia a video cuando se proporcionan archivos de video.

Ejemplos de cálculo del coste

Video a partir de texto de 5 segundos a 720p: 5 × 20 = 100 créditos.

Video de salida de 5 segundos con un video de referencia de 5 segundos: (5 + 5) × 12 = 120 créditos.

Estos créditos se deducen por adelantado al crear la tarea. Si la tarea se completa correctamente, este monto será el cargo final; no se incrementará ni se reembolsará parcialmente en función de la duración real del resultado. Las tareas fallidas o que superen el tiempo de espera entrarán en proceso de reembolso.

Los créditos se reservan al enviar la petición y se cobran al completarse con éxito. Las tareas que fallen o expiren entran en el proceso de reembolso. El estado refund_failed significa que el reembolso no se completó; revisa los registros de la API o contacta al soporte técnico.

Cómo se cobran los créditos cuando duration=-1

Si la duración se establece en -1, la duración del resultado final no será fija, sino que la determinará el propio modelo.

En la mayoría de los casos, es mejor configurar la duración exacta que necesitas en lugar de -1. Te recomendamos usar -1 únicamente para la edición de video y no para otros escenarios de generación.

Entradas de referenciaCómo se calcula el cargoEjemplo
Con videos de referenciaSe suman las duraciones de todos los videos de referencia y el total se redondea al siguiente segundo completo (este valor se llamará T). El cargo es (T + T) × la tarifa con video: una T representa la duración estimada del resultado y la otra representa la duración del video de entrada.720p con un video de referencia de 5 segundos: (5 + 5) × 12 = 120 créditos.
Sin videos de referencia (solo imágenes o audio)Se toman 30 segundos como la duración estimada del resultado. El cargo es 30 × la tarifa sin video.720p sin videos de referencia: 30 × 20 = 600 créditos.

Autenticación

Crea una clave de API en el panel de control. La clave completa se mostrará una sola vez. Almacénala de forma segura en tu servidor y envíala como Bearer token en cada petición.

URL base

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Define la variable de entorno SEEVIO_API_KEY antes de ejecutar estos ejemplos. Los ejemplos en JavaScript se ejecutan en tu servidor con Node.js; los de Python usan el paquete requests.

Inicio rápido

Envía esta petición mínima, guarda el taskId recibido y usa el ejemplo de consulta de tarea más abajo. El valor de créditos en la respuesta de creación es el monto reservado.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Ejemplo de respuesta de creación de tarea

Una vez aceptada la solicitud anterior, la API devuelve esta respuesta JSON. El parámetro taskId es el identificador de la tarea que se utilizará para las consultas de estado posteriores; credits representa la cantidad de créditos reservados para esta tarea. Esta respuesta confirma la creación de la tarea, pero no significa que el video esté listo. Deberá realizar consultas periódicas del estado de la tarea (polling) o utilizar un Webhook para recibir los resultados del video.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Crear una tarea

POST https://api.seevio.ai/v1/videos/generations

Envía un objeto JSON con el modelo, los datos de entrada y una callback_url opcional. Especifica siempre el ID de modelo indicado en esta página; omitir el modelo seleccionará seedance-2-0.

Cuerpo de la petición

CampoTipoRequeridoDescripción y restricciones
model
string

ID del modelo. Para utilizar Seedance 2.5, establece este campo como seedance-2-5.

callback_url
stringNo

Endpoint público HTTPS para recibir callbacks POST en caso de éxito o fallo. No se permiten redes privadas ni localhost.

Ejemplo: https://example.com/webhooks/seevio
input
object

Ajustes de generación. Debe contener un prompt que no esté vacío.

Parámetros de entrada

image_urls es obligatorio en image-to-video. El modo reference-to-video requiere al menos una referencia en image_urls, video_urls o audio_urls.

Proporcione image_urls, video_urls y audio_urls como arrays de cadenas de URL (string[]). Todas las URL facilitadas deben ser accesibles públicamente a través de HTTPS, incluidos los archivos multimedia omitidos por el modo seleccionado.

CampoTipoRequeridoPor defectoDescripción y restricciones
input.prompt
string

Obligatorio en todos los modos, incluso con referencias solo de archivos multimedia. Admite hasta 10000 caracteres antes de ser recortado; debe incluir texto visible (no solo espacios).

Ejemplo: A cat surfing at sunset
input.generation_type
stringNotext-to-video

text-to-video usa solo el prompt; image-to-video usa 1 o 2 imágenes; reference-to-video admite referencias de imagen, video o audio.

Valores admitidos
text-to-video | image-to-video | reference-to-video
input.image_urls
string[]Condicional[]

image-to-video: 1 imagen para el primer fotograma, o 2 en orden para el primer y último fotograma. reference-to-video: hasta 30 imágenes. Se ignora en text-to-video.

Ejemplo: ["https://example.com/first-frame.jpg"]
input.video_urls
string[]Condicional[]

Solo se procesan en reference-to-video; hasta 10 videos con un máximo combinado de 30 segundos. Se ignora en los demás modos.

Ejemplo: ["https://example.com/source.mp4"]
input.audio_urls
string[]Condicional[]

Solo se procesan en reference-to-video; hasta 10 archivos de audio con un máximo combinado de 30 segundos. Se ignora en los demás modos.

Ejemplo: ["https://example.com/music.mp3"]
input.duration
integerNo5

Duración de salida en segundos (número entero entre 4 y 30). También admite -1 únicamente en reference-to-video. Úsalo con un video de origen para edición; la facturación se rige por la regla especial descrita arriba.

Valores admitidos
-1 | 4–30
Ejemplo: 5
input.aspect_ratio
stringNoadaptive

Relación de aspecto del video de salida. adaptive permite que el modelo defina la relación automáticamente. image-to-video solo admite adaptive; omite este campo o configúralo como adaptive.

Valores admitidos
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Ejemplo: adaptive
input.resolution
stringNo720p

Utiliza una de las resoluciones de salida admitidas que se detallan aquí.

Valores admitidos
480p | 720p | 1080p
Ejemplo: 720p
input.generate_audio
booleanNotrue

Solicita la generación de audio sincronizado.

Valores admitidos
true | false
Ejemplo: true
input.watermark
booleanNofalse

Solicita una marca de agua de IA en el video generado.

Valores admitidos
true | false
Ejemplo: false
input.web_search
booleanNofalse

Permite realizar búsquedas web si el modelo lo admite.

Valores admitidos
true | false
Ejemplo: false
input.return_last_frame
booleanNofalse

Solicita el último fotograma. El resultado de la consulta contendrá data.last_frame_url cuando el fotograma esté disponible; de lo contrario será null.

Valores admitidos
true | false
Ejemplo: true

Los campos booleanos deben ser true o false en formato JSON, no strings ni números.

Respuesta de creación

HTTP 200 devuelve taskId (string) y credits (number). Esto confirma que la tarea se creó correctamente, no que haya finalizado. El monto de ejemplo corresponde al inicio rápido de 5 segundos a 720p.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Modos de generación y ejemplos

Reemplaza las URL de ejemplo de example.com con tus propios archivos públicos accesibles mediante HTTPS. Estas URL de ejemplo ilustran el formato de la petición y no son archivos descargables.

Texto a video

Genera video a partir de una descripción de texto. Las URL multimedia no se procesan en este modo.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Primer fotograma

Proporciona una imagen como primer fotograma y describe el movimiento deseado en el prompt.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Primer y último fotograma

Proporciona dos URL de imagen en orden: primero el fotograma inicial y luego el final. Este ejemplo también solicita el último fotograma del video generado.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg",
      "https://example.com/last-frame.jpg"
    ],
    "aspect_ratio": "adaptive",
    "return_last_frame": true
  }
}'

Referencia multimodal

Combina referencias de imagen, video y audio. El prompt sigue siendo obligatorio. El video de referencia cambia la fórmula de facturación.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Follow the reference camera movement and keep the character consistent. Use the audio for ambience.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "image_urls": [
      "https://example.com/character.jpg"
    ],
    "video_urls": [
      "https://example.com/camera.mp4"
    ],
    "audio_urls": [
      "https://example.com/ambience.mp3"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Referencia de audio

Utiliza audio como única referencia, junto con un prompt de texto obligatorio que describa el video deseado.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Create a coastal sunrise scene matching the rhythm of this audio.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "audio_urls": [
      "https://example.com/music.mp3"
    ]
  }
}'

Edición de video

Para la edición de video en Seedance 2.5, la duración debe establecerse en -1 y la relación de aspecto en adaptive. Ambos ajustes son obligatorios; de lo contrario, no se podrá realizar la generación.

Describe la edición y proporciona el video de origen. Configura duration=-1 y usa una relación de aspecto adaptive. Usa un clip de origen de al menos 4 segundos para este flujo de trabajo. La regla de facturación para duration=-1 se detalla arriba.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Edit the source video: change the character’s coat to blue and preserve the camera movement.",
    "duration": -1,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Extensión de video

Para la extensión de video de Seedance 2.5, la relación de aspecto (aspect_ratio) debe establecerse en adaptive; de lo contrario, la generación podría fallar. Configura la duración (duration) de forma habitual para obtener la longitud de video deseada dentro del rango admitido; no es necesario usar -1.

Describe cómo debe continuar el video de origen. Usa una relación de aspecto adaptive y define una duración de salida normal dentro del rango permitido del modelo.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Continue the camera movement from the source video, revealing a forest clearing.",
    "duration": 8,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Consultar una tarea

GET https://api.seevio.ai/v1/tasks/{taskId}

Reemplaza el ID de ejemplo por el taskId obtenido al crear la tarea. Las consultas solo devuelven tareas que pertenecen al usuario de la clave API; los ID inaccesibles o desconocidos devuelven HTTP 404.

Realiza consultas cada 10 o 20 segundos como punto de partida, reduce la frecuencia si recibes un HTTP 429 y detente cuando el estado sea completed o failed. Para entornos de producción, se recomienda usar webhooks. Cada ejemplo de código abajo realiza una sola consulta.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
EstadoDescripción y restricciones
queuedAceptada y en cola para procesamiento.
generatingGeneración en curso.
completedFinalizada correctamente. Descarga el archivo de data.results antes de que expire.
failedError al procesar. Revisa failed_reason y billing_status.
CampoTipoDescripción y restricciones
idstring
Identificador de la tarea. Corresponde al taskId de la respuesta de creación.
created_atnumber
Fecha de creación de la tarea en formato de tiempo Unix (segundos).
modelstring
El ID del modelo público utilizado para esta tarea.
billing_statusstring
reserved, charged, refunded o refund_failed.
creditsnumber
Créditos reservados para la tarea. Este valor se mantiene tras un reembolso; revisa billing_status para conocer el estado final de la facturación.
failed_reasonstring | null
Razón del fallo en tareas fallidas; de lo contrario null. Las respuestas de consulta fallidas omiten el objeto data.
dataobject
Presente en consultas de tareas que no han fallado. Contiene los detalles de procesamiento y el resultado.
data.resultsstring[]
Array de URL del video. Vacío hasta que finalice la generación o si el video ha expirado.
data.video_expires_atstring | null
Fecha de expiración del video en formato ISO 8601, o null antes de estar disponible. Guarda el resultado antes de esta fecha.
data.last_frame_urlstring | null
URL del último fotograma si se solicitó y está disponible; de lo contrario null.
data.processing_timenumber | null
Duración de procesamiento del proveedor en segundos si está disponible; de lo contrario null.

Tarea completada: respuesta de consulta con resultados del video

Cuando la consulta devuelve status=completed, significa que la generación del video ha finalizado. Puede obtener las URL de los videos desde data.results y descargarlos antes de la fecha indicada en data.video_expires_at. El estado billing_status=charged indica que se han cobrado los créditos reservados.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Tarea fallida: respuesta de consulta con detalles del error y facturación

Cuando la consulta devuelve status=failed, significa que el proceso de generación ha fallado. Consulte failed_reason para conocer el motivo del error y billing_status para saber si se ha realizado el reembolso. En este ejemplo, refunded indica que se han devuelto los créditos. El campo credits conserva el valor reservado originalmente y la respuesta no incluye data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed"
}

Webhooks

Configura callback_url en la petición de creación para recibir un POST con formato JSON cuando la tarea se complete o falle. Responde con un código 2xx en menos de 15 segundos. Los envíos fallidos se reintentan; procesa los envíos repetidos de forma idempotente usando el ID de la tarea.

Tu endpoint de callback debe aceptar solicitudes POST con un cuerpo en formato JSON (Content-Type: application/json).

Crear una tarea con callback

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Los datos del webhook difieren de las respuestas de consulta de tareas: omiten billing_status y credits; los detalles del fallo se encuentran en data.failed_reason y data.credits_refunded. El campo created_at del webhook es la hora de creación del evento en segundos Unix.

Tarea completada: carga útil del callback exitosa

Si la generación se realiza correctamente, el callback devolverá status=completed. Usa el id para identificar la tarea y data.results para obtener las URL de los videos. Asegúrate de descargar y guardar los resultados antes de la fecha indicada en data.video_expires_at.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Tarea fallida: carga útil del callback con error

Si la generación falla, el callback devolverá status=failed. Usa el id para identificar la tarea, data.failed_reason para conocer el motivo del fallo y data.credits_refunded para ver la cantidad de créditos reembolsados.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "data": {
    "failed_reason": "provider_failed",
    "credits_refunded": 100
  }
}

Ejemplo de receptor

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData.data;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Este ejemplo de Next.js lee el cuerpo de la llamada JSON y procesa directamente las tareas completadas y fallidas. Te recomendamos implementar persistencia y deduplicación de ID de tareas en tu aplicación, así como encolar las tareas lentas antes de confirmar la recepción del callback.

Requisitos y límites de archivos multimedia

  • Todos los archivos multimedia y las URL de callback deben ser direcciones HTTPS públicas. Evita localhost, IP privadas y archivos que requieran cookies o inicio de sesión. Las URL de referencia de video o audio deben enlazar directamente al archivo multimedia.
  • En el modo reference-to-video, proporciona al menos una referencia, con un límite de 30 imágenes, 10 videos, 10 archivos de audio y un total de 50 elementos combinados. La duración total del video y la del audio no pueden superar los 30 segundos cada una.
  • El modo text-to-video ignora todas las referencias multimedia. image-to-video solo procesa la primera y última imagen, ignorando las referencias de video y audio. Usa reference-to-video para combinar archivos multimedia.
  • Cada archivo de video y audio de referencia debe durar entre 2 y 30 segundos. Para los ejemplos de edición de video, utiliza clips de origen de al menos 4 segundos.

Requisitos de las imágenes

  • Cada imagen debe pesar menos de 30 MB.
  • Formatos admitidos: jpeg, png, webp, bmp, tiff y gif.
  • Relación de aspecto (ancho ÷ alto): entre 0,4 y 2,5, ambos inclusive.
  • El ancho y el alto deben estar entre 300 y 6.000 píxeles, ambos inclusive.

Requisitos de los videos

  • Formatos admitidos: mp4 y mov.
  • Cada video no debe superar los 100 MB.
  • Velocidad de fotogramas: entre 24 y 60 FPS, ambos inclusive.
  • Relación de aspecto (ancho ÷ alto): entre 0,4 y 2,5, ambos inclusive.
  • Píxeles totales (ancho × alto): entre 407.696 y 8.295.044, ambos inclusive. Por ejemplo: 614 × 664 = 407.696 y 3.326 × 2.494 = 8.295.044. Estos valores son ejemplos de resolución total, no requisitos de ancho y alto fijos.

Requisitos de los audios

  • Formatos admitidos: wav y mp3.
  • Cada archivo de audio no debe superar los 15 MB.

Errores

Los errores HTTP contienen un objeto error con un código (code) y un mensaje (message). Una tarea aceptada con éxito puede fallar más tarde; consulta su estado o gestiona el callback de fallo.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPCampoQué hacer
400invalid_request
Corrige el JSON, el prompt faltante, el rango de parámetros o la URL del archivo multimedia antes de reintentar.
401invalid_api_key
Verifica el Bearer token y asegúrate de que la clave API esté activa.
402insufficient_credits
Añade créditos o reduce el costo de la tarea. La respuesta puede indicar la cantidad de créditos requeridos y disponibles.
403forbidden
Revisa la restricción de cuenta detallada en el mensaje de error.
404not_found
Verifica el ID de la tarea y que la clave pertenezca al usuario que la creó.
429rate_limited
Espera a que transcurra el intervalo indicado en Retry-After antes de intentarlo de nuevo.
500internal_error
Revisa el mensaje de error y los registros de la API. Reintenta con precaución; reenviar una petición de creación puede generar otra tarea facturable.

Límites de peticiones

Creación de tareas: cada clave de API permite de forma predeterminada un máximo de 100 solicitudes por minuto. Actualmente no están disponibles los límites de tarifa personalizados.

Consulta de tareas: cada clave de API permite de forma predeterminada un máximo de 120 solicitudes por minuto. Las solicitudes de consulta y las de creación de tareas se contabilizan de forma independiente.

HTTP 429 incluye la cabecera Retry-After: 60 para creación y Retry-After: 5 para consultas. Usa un margen de espera y evita realizar consultas con demasiada frecuencia.