Ir al contenido
Primeros pasos

Inicio rápido

Ver como Markdown Actualizado

Ejecuta tu primera generación en unos minutos. Los 1496 modelos aceptan el mismo tipo de solicitud y devuelven el mismo objeto de solicitud para imágenes, vídeo y audio: apréndelo una vez aquí.

1. Obtén una clave de API

Crea una clave en https://doitong.com/developers/dashboard#keys y guárdala en una variable de entorno: solo se muestra una vez. Cada clave puede tener su propio presupuesto, por lo que puedes entregársela a un agente sin arriesgar toda la cuenta. GET /account devuelve tu saldo de API.

export DOITONG_API_KEY="doitong_..."

curl "https://api.doitong.com/v1/account" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Las ejecuciones se pagan con el saldo de API de tu cuenta en créditos de API: 1000 créditos de API = 1 $, y cada modelo cuesta exactamente el precio de su creador. Haz una recarga en https://doitong.com/developers/dashboard#balance.

2. Consulta el precio y ejecuta

POST /quote/{model_id} toma el JSON de entrada y devuelve el precio exacto. No necesita clave ni tiene coste. Ejecutar la misma entrada cuesta exactamente eso: la consulta es el importe cobrado. (Un modelo cobrado por uso es la excepción: su consulta indica el máximo que puede costar la ejecución y la parte no utilizada se reembolsa después.)

curl -X POST "https://api.doitong.com/v1/quote/kling-video/v3/pro/image-to-video" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": true}'
200 OK · quote
{
  "object": "quote",
  "model": "kling-video/v3/pro/image-to-video",
  "credits": 840,
  "usd": "0.84",
  "unit": "second",
  "quantity": 5,
  "unit_credits": 168,
  "mode": "exact",
  "breakdown": "5 s × 168 API credits"
}

Después, envía el mismo cuerpo a POST /run/{model_id}. Añade ?wait=20 para mantener la conexión abierta hasta 20 segundos: un modelo rápido devuelve el resultado terminado en un solo viaje de ida y vuelta. Envía una cabecera Idempotency-Key para que un reintento nunca ejecute (ni cobre) dos veces.

curl -X POST "https://api.doitong.com/v1/run/flux/schnell?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: lighthouse-001" \
  -d '{"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"}'

La respuesta es un objeto de solicitud:

200 OK · solicitud
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux/schnell",
  "status": "succeeded",
  "cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
  "outputs": [
    { "type": "image", "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg", "width": 1024, "height": 768, "stored": true }
  ],
  "error": null
}

3. Sigue el estado

Si el modelo sigue trabajando cuando termina la espera, recibes 202 Accepted con el id de la solicitud y su status actual. Todas las solicitudes pasan por el mismo ciclo de vida:

Ciclo de vida de la solicitud
  1. queued Aceptada y cobrada; esperando a un worker
  2. running El modelo está generando
  3. Estados finales:
    • succeededPresupuesto cobrado; outputs[] contiene URL en nuestro almacenamiento
    • failedReembolsada automáticamente; el error explica el motivo
    • canceledDetenida antes de obtener un resultado; reembolsada

Vuelve a leer la solicitud con su id. ?wait=20 también funciona aquí, así que basta con un bucle sencillo:

curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Cuando status es succeeded, outputs[].url contiene enlaces a los archivos de nuestro almacenamiento. Si la solicitud failed o canceled, sus créditos de API se reembolsan automáticamente y error indica el motivo. Cancela cualquier solicitud que siga queued o running:

terminal
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Para trabajos de vídeo largos, puedes omitir la consulta periódica y pasar un webhook_url en su lugar (consulta Webhooks).

4. Archivos

Pasa cualquier URL pública como entrada o solicita una URL de carga a POST /files, haz PUT del archivo allí y usa el file_url devuelto (consulta Files). Una solicitud completada muestra sus resultados en outputs[] con el tipo, el tipo de contenido y, cuando se conocen, las dimensiones y la duración.

terminal
curl -X POST "https://api.doitong.com/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'

Errores

Todos los modelos fallan de la misma forma: un único envoltorio con un type, un code exacto, el param problemático y todos los problemas en details, para que un agente pueda corregir la solicitud sin leer prosa. No se cobra nada por una solicitud no válida.

422 Unprocessable Entity
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}

Todos los tipos y códigos aparecen en Errors.

Precios

Los precios están en USD y créditos de API y se muestran en la página de cada modelo antes de ejecutar. Cada solicitud incluye cost con credits, usd, charged y refunded. Una ejecución se cobra cuando se acepta; las solicitudes failed y canceled se reembolsan automáticamente. Algunos modelos tienen un precio exacto según la entrada, otros según la longitud o el tamaño de los archivos que envías, y otros cobran un precio estimado por ejecución: en cualquier caso, pagas lo indicado en la consulta. Algunos modelos (modelos de lenguaje y visión, voz y herramientas basadas en tiempo de procesamiento) se cobran por uso: la consulta indica el máximo que puede costar la ejecución y la parte que no utiliza se reembolsa automáticamente. Consulta Pricing.

MCP y agentes de IA

Conecta cualquier cliente MCP a https://api.doitong.com/v1/mcp con la misma clave Bearer. Tu agente puede buscar en el catálogo, consultar precios y ejecutar modelos, y leer todas las páginas de documentación como Markdown.

Claude Code
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Próximos pasos