API تقدير العمر من الصورة
ارفع صورة لاكتشاف الأشخاص والوجوه وتوقع العمر ونسبة الثقة لكل نتيجة.
عنوان URL الأساسي
https://api.genderrecognition.com
نقطة النهاية
POST /v1/image-gender/api/age
ترويسات الطلب
apiKey: YOUR_API_KEY
Content-Type: multipart/form-data
محتوى الطلب
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
file | file | نعم | صورة بصيغة JPEG أو PNG أو WebP أو BMP أو GIF. الحد الأقصى للحجم: 10 MB. |
مثال
curl -X POST "https://api.genderrecognition.com/v1/image-gender/api/age" \
-H "apiKey: YOUR_API_KEY" \
-F "file=@people.jpg"
استجابة ناجحة
{
"success": true,
"detections": [
{
"age": 27.4,
"probability": 99
},
{
"age": 41.2,
"probability": 94
}
],
"remainingRequests": 2999
}
حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
success | boolean | تكون true عند معالجة الصورة بنجاح. |
detections | array | عنصر لكل وجه مكتشف له توقع للعمر. |
detections[].age | number | العمر المتوقع لهذه النتيجة، وقد يتضمن قيمة عشرية. |
detections[].probability | integer | نسبة الثقة من 0 إلى 100. راجع الملاحظة أدناه. |
remainingRequests | integer | عدد طلبات API المتبقية بعد خصم هذا الطلب الناجح. |
تمثل probability هنا ثقة النموذج في تصنيف الجنس لهذه النتيجة، وتُستخدم كقيمة الثقة المعروضة؛ ولا ينتج النموذج درجة ثقة منفصلة لتقدير العمر. لذلك تعني القيمة المرتفعة يقينًا أكبر بشأن الجنس، لا دقة أكبر في age.
لا تُدرج إلا النتائج التي تمكّن فيها النموذج من تصنيف الجنس بثقة. ويُستبعد الوجه ذو التوقع الملتبس أو غير المطابق من detections حتى إن اكتُشف بصريًا؛ لذلك قد يقل عدد عناصر detections عن عدد الوجوه في الصورة.
لم يتم اكتشاف عناصر
قد تنجح المعالجة حتى إذا لم يُعثر على وجه يمكن توقعه بثقة. ويظل ذلك مستهلكًا لطلب واحد:
{
"success": true,
"detections": [],
"remainingRequests": 2999
}
استجابات الأخطاء
مفتاح API مفقود — 401 Unauthorized
{
"error": "API key is required"
}
مفتاح API غير صالح — 404 Not Found
{
"error": "Invalid API key"
}
خطأ في خدمة المصادقة — 500 Internal Server Error
{
"error": "Internal server error"
}
الملف مفقود — 400 Bad Request
يجب أن يحمل حقل نموذج multipart الاسم file.
{
"error": "No file uploaded"
}
حقل multipart غير متوقع — 400 Bad Request
تُعاد هذه الاستجابة إذا كان اسم حقل الملف المرفوع غير file أو أُرسل أكثر من ملف ضمن حقل الملفات المفرد.
{
"error": "Unexpected field"
}
نوع الملف غير صالح — 400 Bad Request
{
"error": "Invalid file type. Allowed formats: JPEG, PNG, WEBP, BMP, GIF"
}
الملف كبير جدًا — 400 Bad Request
{
"error": "File too large"
}
تعذر فك ترميز الصورة — 400 Bad Request
{
"error": "Could not decode image"
}
قد تعيد خدمة التوقع رسالة تحقق أخرى برمز 400 إذا كانت الصورة المرفوعة غير صالحة. ويظل شكل الاستجابة { "error": "..." }.
رفضت خدمة التوقع الملف الكبير — 413 Payload Too Large
{
"error": "Uploaded file exceeds the 10MB size limit"
}
تم تجاوز الحصة — 400 Bad Request
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "You have exceeded your free tier limit of 50 requests.",
"detailedMessage": "Insufficient remaining requests. Required: 1, Available: 0",
"details": {
"limit": 50,
"used": 50,
"reset_date": "2026-07-01T00:00:00.000Z"
},
"suggested_action": "Please upgrade to a premium plan to continue using the API."
}
}
تستخدم الخطط المدفوعة بنية الاستجابة نفسها، مع حدود وتواريخ إعادة ضبط وإرشادات ترقية خاصة بكل خطة.
تغيّرت الحصة أثناء المعالجة — 400 Bad Request
يتم التحقق من الحصة قبل التنبؤ ويُخصم الاستخدام بعد نجاح المعالجة. إذا استهلك طلب متزامن آخر الحصة المتبقية بين العمليتين، فقد يعيد الخصم ما يلي:
{
"error": "Insufficient remaining requests. Required: 1, Available: 0"
}
فشلت المعالجة — 500 Internal Server Error
{
"error": "Image age prediction failed"
}
إذا أعادت خدمة التنبؤ السابقة خطأً داخليًا أكثر تحديدًا، فقد تظهر رسالته في الحقل error ضمن البنية نفسها.
ملاحظات
- أرسل صورة واحدة فقط باستخدام حقل multipart المسمى
file. - لا يُخصم الطلب إلا بعد أن تعيد خدمة التوقع نتيجة ناجحة.
- قد تكون
ageقيمة عشرية؛ أماprobabilityفنسبة مئوية صحيحة وليست قيمة عشرية بين 0 و1. - تعكس
probabilityالثقة في تصنيف الجنس، لا في تقدير العمر؛ ولا توجد درجة ثقة مخصصة للعمر. - تعني مصفوفة
detectionsالفارغة أن الطلب نجح، وليست خطأ. - التوقعات تقديرات من النموذج ولا ينبغي اعتبارها سمات هوية مؤكدة.