La API de Ducklygen

Todos los modelos del catálogo, desde tu propio código. Una clave, un saldo, los mismos precios que en el estudio.

1 · Autenticación

Crea una clave en Ajustes, Claves de API. Envíala en cada solicitud como token Bearer. Las claves empiezan por dk_live_ y solo funcionan en Ducklygen; guárdalas en tu servidor, nunca en un navegador ni en una app.

curl https://ducklygen.com/api/v1/api/catalog/me \
  -H "Authorization: Bearer $DUCKLYGEN_API_KEY"

3 · Inicia una generación

Una sola llamada calcula el precio de tus entradas exactas y lo cobra de tu saldo. La respuesta llega al instante con el estado queued y la generación se ejecuta en segundo plano. Envía una cabecera Idempotency-Key para que una solicitud repetida nunca cobre dos veces.

curl -X POST https://ducklygen.com/api/v1/api/catalog/generations \
  -H "Authorization: Bearer $DUCKLYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "modelId": "image-model-id",
  "inputs": {
    "prompt": "rubber duck floating on teal water, soft light"
  }
}'

Consulta primero el precio (opcional)

Las mismas entradas, con precio calculado sin iniciar nada. La respuesta está en céntimos.

curl -X POST https://ducklygen.com/api/v1/api/catalog/quote \
  -H "Authorization: Bearer $DUCKLYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelId":"image-model-id","inputs":{"prompt":"rubber duck floating on teal water, soft light"}}'

4 · Consulta y descarga

Pide la generación cada pocos segundos hasta que el estado sea succeeded, failed o refunded. Si tiene éxito, descarga el archivo desde contentUrl con la misma clave. Un modelo de texto devuelve su respuesta en textOutput.

curl https://ducklygen.com/api/v1/api/catalog/generations/ID \
  -H "Authorization: Bearer $DUCKLYGEN_API_KEY"

curl https://ducklygen.com/api/v1/api/catalog/generations/ID/content \
  -H "Authorization: Bearer $DUCKLYGEN_API_KEY" \
  -o result.png

Endpoints

URL basehttps://ducklygen.com/api/v1/api/catalog

GET/meTu clave y tu saldo
GET/modelsTodos los modelos
GET/models/detail?id=MODEL_IDUn modelo y sus campos
POST/quotePrecio para entradas exactas
POST/generationsIniciar una generación
GET/generationsTus generaciones recientes
GET/generations/IDEstado de una generación
GET/generations/ID/contentEl archivo resultante
DELETE/generations/IDEliminar una generación

Errores y límites

Los errores llegan como JSON con un código y un mensaje. 401: clave ausente, incorrecta o revocada. 400: un campo no es válido (los detalles lo indican). 402: saldo insuficiente. 409 API_KEY_DAILY_CAP: se alcanzó el límite diario de la clave. 429: demasiadas solicitudes, reduce el ritmo. Una generación fallida se reembolsa automáticamente.

Precios y saldo

Las generaciones por API usan el mismo saldo que el estudio y cuestan lo mismo. Todos los importes de la API están en céntimos de euro: costCents es lo que cobró una generación y balanceCents lo que queda.