واجهة REST البرمجية
شغّل عمليات الفحص من داخل شيفرتك الخاصة. الواجهة البرمجية متاحة في خطة Pro وما فوقها، وتستخدم مفتاح bearer للمصادقة، ويُدفع مقابلها بالأرصدة.
آخر تحديث: 4 سبتمبر 2026
المصادقة
أنشئ مفتاحًا من الإعدادات ← مفاتيح الواجهة البرمجية. يُعرض المفتاح بصيغته النصية مرة واحدة فقط ولا يمكن استعادته بعدها؛ ولا يُخزَّن منه بصيغة مقروءة سوى بادئته. أرسله كرمز bearer مع كل طلب.
curl https://api.namescope.dev/v1/usage \
-H "Authorization: Bearer ns_live_..."يحمل كل مفتاح مجموعة من النطاقات. أي طلب يحتاج نطاقًا لا يملكه المفتاح يُرفض برمز 403، لذا فإن مفتاحًا تسلّمه لتكامل للقراءة فقط لا يستطيع بدء فحص مدفوع.
| النطاق | ما يتيحه |
|---|---|
| scans:write | POST /v1/scans — بدء فحص، وهو ما ينفق أرصدة |
| scans:read | GET /v1/scans، GET /v1/scans/{id}، GET /v1/usage |
| reference:read | نقاط النهاية المرجعية /v1/ref/* |
الأرصدة والحصة
يُدفع مقابل كل فحص بالأرصدة، سواء بدأته من هنا أو من تطبيق الويب. تكلفة الفحص هي مجموع الوحدات التي يشغّلها: 100 رصيد مع الوحدات الخمس الافتراضية، وأقل عند استبعاد إحداها. تمنحك خطتك رصيدًا شهريًا، والأرصدة غير المستهلكة تُرحَّل.
يُسجَّل الخصم قبل إدراج أي عمل في الطابور، لذا فإن الفحص الذي يتعذّر دفع ثمنه لا يُشغَّل ولا يترك أي سجل خلفه. وإذا أخفق الإدراج في الطابور بعد الخصم، تُعاد الأرصدة تلقائيًا.
- الرصيد غير كافٍ ← 429 مع مستند مشكلة يوضّح مقدار العجز
- خطة بلا وصول إلى الواجهة البرمجية ← 402 مع رابط للترقية
- إنفاق الأرصدة معطَّل لمساحة العمل ← 403
بدء فحص
يدرج POST /v1/scans فحصًا في الطابور ويردّ برمز 202 فورًا. الفحص غير متزامن: تحمل الاستجابة قيمة scanId لا النتيجة.
curl -X POST https://api.namescope.dev/v1/scans \
-H "Authorization: Bearer ns_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "tion studios",
"regions": ["TR", "EM", "US"],
"niceClasses": [9, 41],
"tlds": ["com", "io"],
"modules": ["trademark", "domain", "social"]
}'{ "scanId": "scn_...", "totalJobs": 12, "creditsSpent": 100, "balance": 1900 }| الحقل | مطلوب | المعنى |
|---|---|---|
| name | نعم | اسم العلامة المراد فحصه، من 2 إلى 64 حرفًا |
| regions | لا | مكاتب العلامات التجارية المراد البحث فيها. القيمة الافتراضية هي إعداد مساحة عملك |
| niceClasses | لا | فئات السلع والخدمات من 1 إلى 45. تحصر نتائج العلامات في التعارضات الحقيقية |
| tlds | لا | امتدادات النطاقات، دون النقطة في البداية |
| modules | لا | trademark، domain، social، dev، appstore |
| adapters | لا | الاقتصار على محوّلات مصادر بعينها حسب المعرّف |
| projectId | لا | إدراج الفحص ضمن مشروع قائم |
| options.alternatives | لا | توليد أسماء بديلة وفحصها فحصًا خفيفًا كذلك |
| options.similarSearch | لا | بحث تقريبي عن العلامات المتقاربة (لخطة Pro وما فوقها) |
قراءة النتيجة
استعلم دوريًا عن GET /v1/scans/{id} حتى تصبح قيمة status هي completed أو completed_partial. ينتهي الفحص المعتاد في أقل من دقيقة؛ استعلم مرة كل ثانية تقريبًا ووسّع الفاصل الزمني كلما طال الانتظار، كي لا يستنزف الفحص الطويل حدّ معدّل طلباتك.
curl https://api.namescope.dev/v1/scans/scn_... \
-H "Authorization: Bearer ns_live_..."| status | المعنى |
|---|---|
| queued | مقبول، ولم يُتصل بأي مصدر بعد |
| running | بعض عمليات التحقق اكتملت؛ وتوضّح doneJobs / totalJobs مدى التقدّم |
| completed | اكتملت كل عمليات التحقق |
| completed_partial | انتهى الفحص، لكن تعذّر التحقق من مصدر واحد على الأقل |
| failed | تعذّر تشغيل الفحص |
كل مدخلة في checks هي إجابة مصدر واحد عن هدف واحد، ولها حكمها الخاص، ورابط sourceUrl الذي قُرئت منه، وطابع الوقت fetchedAt. أما كائن summary فيظهر بعد انتهاء الفحص ويحمل الدرجة، ونطاق المخاطرة، وحصيلة العلامات التجارية.
| verdict | المعنى |
|---|---|
| available | يقول المصدر إن الاسم متاح |
| taken | قيد الاستخدام — معرّف مسجَّل، أو نطاق يستجيب |
| conflict | علامة تجارية سارية تتداخل مع الفئات المطلوبة |
| risky | قيد الاستخدام على نحو قد يعيقك وقد لا يعيقك |
| unknown | تعذّر التحقق من المصدر |
| error | أخفق المصدر؛ ويبيّن errorCode كيف |
البيانات المرجعية
أربع نقاط نهاية مرجعية تصف ما يمكن أن يتضمنه طلب الفحص. وهي تحتاج نطاق reference:read ولا تكلّف شيئًا.
| نقطة النهاية | ما تعيده |
|---|---|
| GET /v1/ref/nice-classes | فئات تصنيف نيس الخمس والأربعون |
| GET /v1/ref/regions | مكاتب العلامات التجارية التي يمكن للفحص البحث فيها |
| GET /v1/ref/tlds | امتدادات النطاقات مصنَّفة حسب المستوى |
| GET /v1/ref/adapters | كل محوّلات المصادر، مع الوحدة التابع لها كل منها |
الأخطاء وحدود المعدّل
تُرسَل الأخطاء بوصفها مستندات مشكلة وفق معيار RFC 9457 بنوع المحتوى application/problem+json. يحدّد حقل type نوع الإخفاق، ويشرحه detail، ويحمل بعضها بيانات إضافية مثل upgradeUrl.
{
"type": "https://namescope.dev/errors/quota-exceeded",
"title": "Quota exceeded",
"status": 429,
"detail": "Not enough credits (balance 0, need 100). Top up or switch off a module to continue."
}| الحالة | متى |
|---|---|
| 400 | لم يجتز جسم الطلب التحقق من الصحة |
| 401 | المفتاح مفقود أو غير معروف أو مُبطَل أو منتهي الصلاحية |
| 402 | الخطة لا تشمل الواجهة البرمجية العامة |
| 403 | المفتاح يفتقر إلى نطاق، أو إنفاق الأرصدة معطَّل |
| 404 | لا يوجد فحص بهذا المعرّف في مساحة العمل هذه |
| 429 | تجاوز حدّ المعدّل أو رصيد الأرصدة |
تُحسب حدود المعدّل لكل مفتاح على مدى دقيقة منزلقة، ويُبلَّغ عنها في كل استجابة، فيمكنك التراجع قبل أن يُرفض طلبك.
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
x-ratelimit-reset: 41OpenAPI
يُقدَّم الوصف الكامل المقروء آليًا على /v1/openapi.json. وهو لا يحتاج أي مصادقة، فيمكنك توليد عميل منه قبل أن تحصل على مفتاح.