قبل إرسال الطلب
أرسل طلبات التقدير إلى GenderAPI.io V2 عبر POST https://api.genderapi.io/api/v2/gender، مع type وvalue في جسم JSON. استخدم مفتاح GenderAPI.io الحالي في Authorization: Bearer YOUR_API_KEY مع Content-Type: application/json. اقرأ النتيجة في data، ومعلومات الوصول والخصم في meta. يُعالَج كل طلب بشكل مستقل.
اختر لغة البرمجة في مثال الكود. اضبط GENDERAPI_API_KEY في بيئة العملية قبل تشغيله. قد تستخدم المفاتيح المفقودة أو غير المعروفة التجربة المشتركة حسب عنوان IP، لذا تأكد عند ربط حساب من أن قيمة meta.access.mode هي api_key.
الجنس من عنوان البريد الإلكتروني
| المعامل | النوع | مطلوب | القيمة الافتراضية | الوصف |
|---|---|---|---|---|
type | string | نعم | — | فئة الإدخال: name أو email أو username. |
value | string | نعم | — | مطلوب. 1–254 حرفًا؛ غير فارغ ودون أحرف تحكم. يجب أن تكون قيم email بصيغة بريد إلكتروني صالحة. |
country | string | لا | — | رمز ISO 3166-1 alpha-2 اختياري بأحرف كبيرة، مثل TR أو US. قد يرجع البحث الخاص بدولة إلى مجموعة البيانات العامة. |
forceToGenderize | boolean | لا | false | ابحث في مجموعة البيانات أولًا، ثم استخدم الذكاء الاصطناعي الذي يفسّر الأسماء المستعارة إذا لم توجد نتيجة. مدعوم لـ name وemail وusername. |
options | object | لا | — | كائن يضم خيارات الذكاء الاصطناعي لكل مُدخل. |
options.ai_mode | string | لا | fallback | القيم المسموح بها: off وfallback وalways. مع forceToGenderize: true، احذف هذا الحقل أو استخدم fallback. |
id | string | لا | — | معرّف اختياري من 1–64 حرفًا في JSON لطلبات POST. يُعاد بجوار نتيجة العنصر في الطلب المجمّع، ويجب أن يكون فريدًا داخل الطلب المجمّع. يُقبل في التقديرات الفردية لكنه لا يُعاد في الاستجابة. غير مدعوم في استعلامات GET. |
أرسل type: email والعنوان في value إلى POST https://api.genderapi.io/api/v2/gender. يبحث GenderAPI.io V2 في العنوان عن إشارة اسم قابلة للاستخدام. قد تؤدي صناديق البريد المشتركة والأجزاء المحلية غير الدالّة إلى نتيجة غير معروفة. forceToGenderize اختياري هنا أيضًا، ويسمح بتقدير الذكاء الاصطناعي انطلاقًا من اسم مستعار، حتى دون اسم أول حقيقي.
اختر لغة البرمجة. إعداد مفتاح API، ثم شغّل المثال على خادمك.
كل طلب تقدير عملية جديدة مدفوعة، حتى عند إعادة المحاولة. لا تعيد هذه الأمثلة المحاولة تلقائيًا. تحقّق من حالة الخصم قبل إرسال طلب آخر.
قبل التشغيل: الوصول ومعالجة الأخطاء
شغّل هذه الأمثلة على خادمك. اضبط GENDERAPI_API_KEY في بيئة العملية على مفتاح API الحالي. تأكد من أن قيمة meta.access.mode هي api_key: فالمفتاح غير المعروف قد يؤدي إلى استخدام التجربة حسب عنوان IP.
في استجابات JSON ذات رموز HTTP 4xx و5xx، يُحتفظ بجسم الخطأ وينتهي المثال برمز خروج غير صفري. تحقّق من code وaction وmeta.usage.billing_status قبل إعادة المحاولة.
دليل الأخطاء وإعادة المحاولة ←cURL 7.76+ في واجهة أوامر POSIX. شغّله في الطرفية. وثائق بيئة التشغيل
Node.js 22+ مع fetch المدمج. احفظه باسم example.mjs وشغّل node example.mjs. وثائق بيئة التشغيل
Python 3.10+ مع المكتبة القياسية. احفظه باسم example.py وشغّل python3 example.py. وثائق بيئة التشغيل
PHP 8+ مع امتداد cURL. احفظه باسم example.php وشغّل php example.php. وثائق بيئة التشغيل
Java 17+ مع عميل HTTP القياسي. احفظه باسم GenderApiExample.java وشغّل java GenderApiExample.java. وثائق بيئة التشغيل
تطبيق وحدة تحكم (console) على .NET 8+. استخدمه كملف Program.cs في مشروع console، ثم شغّل dotnet run. وثائق بيئة التشغيل
Go 1.22+ مع المكتبة القياسية. احفظه باسم main.go وشغّل go run main.go. وثائق بيئة التشغيل
مثال على الاستجابة
هذه استجابة حقيقية جرى الحصول عليها في 1 أكتوبر 2026 باستخدام مفتاح API، ولم يُستبدل فيها سوى رصيد الحساب. وهي ليست مقياسًا للدقة، وقد يعيد طلب حي نتيجة مختلفة. تُظهر الطلبات التي تستخدم مفتاح API القيمة meta.access.mode: api_key وقيمة null في حقول الحصة الخاصة بالتجربة؛ أما طلبات التجربة حسب عنوان IP فتُظهر ip_trial. اقرأ data للتقدير، وmeta.usage لنتيجة خصم العملية.
{
"data": {
"input": {
"type": "email",
"value": "alice.smith@example.com",
"country": "US"
},
"name": "alice",
"gender": "female",
"country": "US",
"confidence": 0.9932550587059705,
"confidence_kind": "observed_frequency",
"sample_count": 4003,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "alice",
"method": "token",
"scope": "country",
"country": "US"
}
},
"meta": {
"request_id": "7c22993d-454f-4f61-8b4b-d1154d3b89ff",
"duration_ms": 13,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}حقول استجابة التقدير
| الحقل | النوع | يمكن أن يكون null | مثال | الوصف |
|---|---|---|---|---|
data.input | object | لا | {"type":"name","value":"محمد","country":"SA"} | نوع الإدخال والقيمة والدولة. يُضمَّن forceToGenderize عندما تكون قيمته true. |
data.name | string | نعم | "محمد" | الاسم الأول المطابق أو المستخرج؛ وnull إذا لم يتوفر. |
data.gender | string | نعم | "male" | male أو female أو JSON null. تقدير، وليس هوية شخصية موثَّقة. |
data.result_status | string | لا | "identified" | identified عند إعادة جنس؛ وإلا unknown. |
data.reason | string | نعم | null | null للنتائج identified. أسباب unknown: not_found أو no_name_candidate أو ambiguous أو insufficient_evidence. |
data.confidence | number | نعم | 0.95 | قيمة من 0 إلى 1 أو null. إذا كان gender هو null، فدرجة الثقة null أيضًا. |
data.confidence_kind | string | نعم | "observed_frequency" | observed_frequency: العدد الغالب في مجموعة البيانات مقسومًا على الإجمالي. model_reported: قيمة يقدّمها الذكاء الاصطناعي، وليست احتمالًا معايرًا. null إذا لم تتوفر. |
data.sample_count | integer | نعم | 1200 | حجم العينة في مجموعة البيانات أو null. لا يختلق الذكاء الاصطناعي عددًا للعينات. |
data.source | string | لا | "dataset" | dataset أو ai أو none. |
data.country | string | نعم | "SA" | ارتباط بدولة مصدره dataset أو ai_association، أو null. لا يحدد الجنسية أو مكان الإقامة أو الأصل العرقي. |
data.country_source | string | نعم | "dataset" | مصدر الارتباط بالدولة: dataset أو ai_association أو null. |
data.match | object | لا | {"name":"محمد","method":"normalized","scope":"country","country":"SA"} | الاسم المطابق في مجموعة البيانات، والطريقة (normalized أو token أو substring أو model_inference)، والنطاق country أو global، والدولة المطابقة. الأدلة غير المتوفرة قيمتها null. |
البيانات الوصفية للوصول والخصم والطلب
| الحقل | النوع | يمكن أن يكون null | مثال | الوصف |
|---|---|---|---|---|
meta.request_id | string | لا | "550e8400-e29b-41d4-a716-446655440000" | معرّف فريد لمحاولة HTTP هذه؛ ويُرسل أيضًا في X-Request-ID. |
meta.duration_ms | integer | لا | 42 | مدة معالجة الطلب بالمللي ثانية. |
meta.access.mode | string | لا | "api_key" | api_key أو ip_trial أو unauthenticated. عند استخدام حساب مدفوع، تحقّق من ظهور api_key. |
meta.access.reason | string | نعم | null | سبب الانتقال إلى التجربة حسب عنوان IP: api_key_missing أو api_key_invalid أو api_key_not_found؛ وإلا null. |
meta.usage.charged_credits | integer | نعم | 1 | صافي الأرصدة المخصومة. صفر قبل الخصم أو بعد استرداد كامل مؤكد؛ وnull إذا لم يُؤكَّد الخصم. |
meta.usage.remaining_credits | integer | نعم | 99 | الرصيد عند اكتمال العملية. قد يكون سالبًا؛ وnull إذا لم يتوفر أو لم يُؤكَّد الخصم. |
meta.usage.billing_status | string | لا | "confirmed" | not_charged أو confirmed أو unconfirmed. تحقّق منه قبل إعادة محاولة تقدير فاشل. |
meta.usage.resets_at | string | نعم | "2026-09-27T12:00:00.000Z" | موعد تجديد التجربة حسب عنوان IP بتوقيت UTC (ISO 8601)؛ وnull لحسابات مفاتيح API أو إذا كان غير معروف. |
meta.usage.limit | integer | نعم | 10 | حصة التجربة حسب عنوان IP؛ وnull لحسابات مفاتيح API. |
meta.usage.period_seconds | integer | نعم | 86400 | مدة فترة التجربة حسب عنوان IP بالثواني؛ وnull لحسابات مفاتيح API. |
التحقق من البريد الإلكتروني وإشارات الاسم
يجب أن تكون value عنوان بريد إلكتروني صالح الصيغة. تعيد الصيغة غير الصالحة HTTP 422 قبل الخصم. ولا يثبت التحقق من الصيغة أن صندوق البريد موجود أو أنه يخص شخصًا معينًا.
قد يطابق اسمُ شخص واضح في العنوان مجموعةَ البيانات. قد تعيد صناديق البريد المشتركة وعناوين الأدوار والأجزاء المحلية غير الدالّة gender: null. افتراضيًا، يستخدم البحث الفردي الذي لم يُحسم الرجوعَ العادي إلى الذكاء الاصطناعي بتكلفة إجمالية قدرها رصيد واحد، حتى عندما تكون النتيجة الناجحة غير معروفة.
استخدم forceToGenderize: true إذا أردت تقديرًا بالذكاء الاصطناعي يفسّر الأسماء المستعارة عندما لا تعطي مجموعة البيانات نتيجة. التكلفة رصيد واحد للنتيجة الموجودة في مجموعة البيانات، أو رصيدان إجمالًا إذا استُخدم الذكاء الاصطناعي. وقد تعيد API مع ذلك null. لا يثبت نطاق البريد الإلكتروني مكان وجود الشخص؛ فأرسل الدولة فقط عندما تعرف سياقًا ذا صلة.