REST API · v1

وثائق API

أرسل صور الوجوه عبر واجهة API غير المتزامنة، واستخدم رصيدك الحالي، وتابع كل مهمة ورسومها.

مركز المطورين

اربط تطبيقك بمساعدة دليل ذكي

انسخ هذا التوجيه إلى ChatGPT أو Claude أو Cursor أو مساعد البرمجة الذي تستخدمه. سيطرح عليك أسئلة عن بيئة التطوير لديك، ثم يرشدك لإعداد بيانات الاعتماد والتحقق من الرصيد وإرسال المهمة والتحقق من النتيجة.

فتح النص العادي

لا تحتاج إلى إرسال مفتاح API إلى الذكاء الاصطناعي. يرشدك التوجيه إلى إعداده في بيئة الخادم الخاصة بك.

قراءة التوجيه كاملًا / نسخه يدويًا

الفوترة

API: رصيد واحد لكل اختبار ناجح. الموقع: 10 أرصدة لكل اختبار. يستخدم كلاهما المحفظة نفسها. يؤدي إنشاء مهمة عبر API إلى حجز رصيد واحد؛ وعند الفشل النهائي يُعاد مرة واحدة.

أرسل ترويسة Authorization: Bearer مع النطاق المطلوب. استخدم Idempotency-Key نفسه عند إعادة إرسال الصورة ذات البايتات نفسها. تؤدي إعادة استخدامه مع مدخلات مختلفة إلى HTTP 409. لا تستهلك الاستعلامات رصيدًا.

نقاط النهاية

HTTPالأذونات
POST /api/v1/face-age/jobsface-age:write
GET /api/v1/face-age/jobs/{id}face-age:read
GET /api/v1/creditscredits:read
GET /api/v1/usage?page=1&pageSize=20usage:read

إنشاء مهمة

استخدم multipart/form-data مع ملف صورة واحد (JPEG أو PNG أو WebP، بحجم لا يتجاوز 5 MB) وحقل الموافقة أدناه. لا يجوز استخدام نقطة النهاية هذه إلا للبالغين الذين يرسلون صورهم بأنفسهم وبموافقتهم. تُرفض عناوين URL البعيدة والمعلمات الإضافية. أنشئ مفتاح idempotency جديدًا فقط لاختبار منطقي جديد.

# أنشئ مفتاحًا واحفظه مرة واحدة لكل اختبار جديد؛ وعند إعادة المحاولة، شغّل أمر curl أدناه فقط باستخدام المفتاح والصورة الأصليين.
IDEMPOTENCY_KEY="$(uuidgen)"

curl -X POST 'https://fahrface.org/api/v1/face-age/jobs' \
  -H "Authorization: Bearer $FAHRFACE_API_KEY" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -F 'image=@portrait.jpg' \
  -F 'consent=appearance-age-2026-10-21'
{
  "code": 0,
  "message": "ok",
  "data": {
    "id": "JOB_ID",
    "status": "queued",
    "age": null,
    "creditsCost": 1,
    "billingStatus": "reserved"
  }
}

الاستعلام عن النتائج

يعيد الإنشاء HTTP 202 ومعرّف مهمة. أرسل الاستعلام كل 10–15 ثانية. الحالات queued وprocessing وretrying غير نهائية؛ أما succeeded وfailed فنهائيتان. قد يستغرق تنشيط HF عدة دقائق. مهلة المهمة 20 دقيقة؛ وقد يؤدي وجود مهلة سارية للعامل إلى تأخير الاستعادة النهائية مدة تصل إلى أربع دقائق إضافية.

curl 'https://fahrface.org/api/v1/face-age/jobs/JOB_ID' \
  -H "Authorization: Bearer $FAHRFACE_API_KEY"

الأخطاء والحدود

تستخدم الاستجابات code/message/data. HTTP 400: طلب أو موافقة غير صالحين؛ 401: مفتاح غير صالح أو منتهي الصلاحية؛ 403: النطاق المطلوب غير متاح؛ 402: رصيد غير كافٍ؛ 404: المهمة غير موجودة أو لا تملكها؛ 409: مدخلات متغيرة؛ 413/415: حجم الصورة أو نوعها غير صالح؛ 429: تجاوز حد الطلبات أو التزامن أو الرصيد؛ 503: الخدمة غير متاحة. اتبع Retry-After، واستخدم مفتاح idempotency نفسه، وتحقق من message قبل إعادة المحاولة.

تنتهي صلاحية المفاتيح خلال عام واحد كحد أقصى. تشمل حدود الرصيد الأرصدة المحجوزة والناجحة؛ وتُعاد الأرصدة إلى الحد عند استردادها. يسمح الحساب بـ60 طلبًا في الدقيقة وبحد أقصى مهمتَي API نشطتين.

تُخزّن صور الوجوه مؤقتًا في مساحة تخزين خاصة، وتُحذف بعد اكتمال المعالجة النهائية، مع آلية احتياطية لحذفها خلال 24 ساعة. تعالج HF الصورة؛ والتقديرات ليست نصيحة طبية ولا إثباتًا للهوية أو العمر.