واجهة Ducklygen البرمجية

كل نموذج في الكتالوج، من شيفرتك الخاصة. مفتاح واحد، ورصيد واحد، والأسعار نفسها كما في الاستوديو.

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

نقاط النهاية

عنوان URL الأساسيhttps://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 هو المتبقي.