Ducklygen API

目录中的每个模型,都能在你自己的代码中调用。一个密钥,一个余额,价格与工作室相同。

1 · 身份验证

在设置的 API 密钥中创建密钥。每次请求都以 Bearer 令牌的形式发送。密钥以 dk_live_ 开头,仅在 Ducklygen 上有效;请将其保存在你的服务器上,切勿放在浏览器或应用中。

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

3 · 开始生成

一次调用即可按你的具体输入计算价格并从余额中扣费。响应会立即返回,状态为 queued,生成在后台进行。请发送 Idempotency-Key 请求头,这样重试的请求永远不会重复扣费。

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"
  }
}'

先查询价格 (可选)

使用相同的输入计算价格,但不会启动任何生成。结果以分为单位。

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 · 轮询并下载

每隔几秒查询一次生成状态,直到状态变为 succeeded、failed 或 refunded。成功后,使用同一密钥从 contentUrl 下载文件。文本模型则会在 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

接口

基础 URLhttps://ducklygen.com/api/v1/api/catalog

GET/me你的密钥和余额
GET/models所有模型
GET/models/detail?id=MODEL_ID单个模型及其字段
POST/quote指定输入的价格
POST/generations开始生成
GET/generations你最近的生成
GET/generations/ID单个生成的状态
GET/generations/ID/content结果文件
DELETE/generations/ID删除生成

错误与限制

错误以 JSON 形式返回,包含代码和消息。401: 密钥缺失、错误或已撤销。400: 某个字段无效 (详情中会指明)。402: 余额不足。409 API_KEY_DAILY_CAP: 已达到该密钥的每日上限。429: 请求过多,请放慢速度。失败的生成会自动退款。

价格与余额

通过 API 生成与工作室使用同一余额,价格也相同。API 中的所有金额均以欧分计: costCents 是一次生成扣除的金额,balanceCents 是剩余余额。