تسجيل الوكلاء
Let an AI agent get a Narwhal API key for its user.
يمكن لوكيل ذكاء اصطناعي الحصول على مفتاح Narwhal API لمستخدمه دون متصفح. يرسل الوكيل عنوان البريد الإلكتروني للمستخدم ويحصل فورًا على مفتاح يعمل مع رصيد تجريبي صغير. يقرأ المستخدم للوكيل رمزًا من 6 أرقام وصل في رسالة بريد، فيتحقق منه الوكيل، ويصبح المفتاح نفسه حسابًا كاملًا.
يمكن للوكلاء قراءة المسار نفسه بصيغة markdown بسيطة على /.
قواعد للوكلاء
- احصل على موافقة المستخدم قبل تسجيله.
- استخدم فقط عنوان بريد إلكتروني أعطاك إياه المستخدم.
- لا تقرأ الرمز من صندوق بريد المستخدم بنفسك أبدًا. يجب أن يعطيك المستخدم الرمز.
- أعد المحاولة بعد
429و503ثلاث مرات على الأكثر، مع انتظار عدد الثواني فيRetry-After. ثم توقف وأخبر المستخدم. إذا تجاوزRetry-After300 ثانية فقد بُلغ الحد اليومي: توقف فورًا وأخبر المستخدم. - بعد
403أو410، اسأل المستخدم قبل بدء تسجيل جديد. كل تسجيل يرسل إليه رمزًا آخر بالبريد.
طلب مفتاح
أرسل عنوان البريد الإلكتروني للمستخدم. لا حاجة إلى مفتاح API. الاستجابة دائمًا بالحالة 202 وبالنص نفسه، فلا يمكن استخدامها لمعرفة ما إذا كان العنوان يملك حسابًا. يعمل api_ فورًا على حساب قيد الانتظار.
curl --request POST \
--url https://api.narwhalapi.com/v1/agent-signup \
--header "Content-Type: application/json" \
--data '{"email": "person@example.com", "agent_name": "Claude Code", "client": "claude-code"}'{
"status": "pending",
"message": "If this email address can be used, Narwhal emailed it a 6-digit code. Ask the user to read the code to you, then call POST /v1/agent-signup/verify with it. The api_key works now with a small trial credit.",
"api_key": "nw_live_...",
"trial_credit_micro": 200000,
"expires_at": "2026-11-16T09:00:00Z",
"verify_path": "/v1/agent-signup/verify"
}حقول الطلب
| حقل | مطلوب | المعنى |
|---|---|---|
email | نعم | عنوان البريد الإلكتروني للمستخدم. ترسل Narwhal إليه رمزًا من 6 أرقام. تُرفض نطاقات البريد المؤقت. |
agent_ | نعم | الاسم الذي يطلقه الوكيل على نفسه: من 1 إلى 80 حرفًا أو رقمًا أو مسافة أو _. يُسمح بالنقطة بين رقمين فقط، كما في رقم الإصدار. بلا روابط ولا أسماء نطاقات ولا نقطتين رأسيتين. تعرضه الرسالة للمستخدم. |
client | لا | الأداة التي يعمل فيها الوكيل، مثل claude-code أو cursor: أحرف صغيرة وأرقام و_ و-، بحد أقصى 40 حرفًا. |
حقول الاستجابة
| حقل | المعنى |
|---|---|
status | دائمًا pending إلى أن يُتحقق من الرمز. |
message | النص نفسه لكل طلب. |
api_ | مفتاح يعمل على حساب قيد الانتظار. أبقه سريًا؛ يُعرض مرة واحدة. |
trial_ | الرصيد التجريبي لمرة واحدة بالدولار الجزئي (1,000,000 يساوي دولارًا واحدًا). 200000 تعني 0.20 دولار. |
expires_ | الموعد الذي يتوقف فيه المفتاح عن العمل إذا لم يُتحقق منه: بعد 7 أيام من الطلب. |
verify_ | المسار الذي يُرسل إليه الرمز الذي يقرؤه المستخدم. |
إذا كان للعنوان حساب بالفعل، يتلقى مالكه رسالة تطلب منه تسجيل الدخول دون رمز. أما العنوان الجديد فيتلقى رسالة الرمز. يظل الرمز صالحًا 15 دقيقة ويسمح بخمس محاولات خاطئة. لا يتلقى العنوان أكثر من 3 رسائل رمز خلال 30 يومًا.
التحقق من الرمز
يطلب الوكيل من المستخدم قراءة الرمز المكوّن من 6 أرقام، ثم يرسله مع المفتاح من الخطوة الأولى بوصفه رمز Bearer. مشاركة الرمز هي الطريقة التي يوافق بها المستخدم على الشروط. التحقق مجاني ويعمل عند رصيد صفر.
curl --request POST \
--url https://api.narwhalapi.com/v1/agent-signup/verify \
--header "Authorization: Bearer $NARWHAL_API_KEY" \
--header "Content-Type: application/json" \
--data '{"code": "123456"}'{
"status": "claimed",
"message": "Verified. This key is now a normal Narwhal account with the free monthly credit. When you show Narwhal data to the user, credit it as \"Data by Narwhal API\"."
}حقول الطلب
| حقل | مطلوب | المعنى |
|---|---|---|
code | نعم | The 6-digit code from the email Narwhal sent to the user. |
حقول الاستجابة
| حقل | المعنى |
|---|---|
status | claimed بعد قبول الرمز. |
message | تؤكد الحساب وتكرر قاعدة الإشارة إلى المصدر. |
عند النجاح يصبح المفتاح نفسه حسابًا عاديًا، ويبدأ الرصيد المجاني البالغ 10 دولارات شهريًا لمدة 12 شهرًا من تاريخ التحقق.
التحقق من الحالة
مجاني ويتطلب المفتاح. يوضح أين وصل التسجيل.
curl --request GET \
--url https://api.narwhalapi.com/v1/agent-signup/status \
--header "Authorization: Bearer $NARWHAL_API_KEY"{
"state": "pending",
"trial_credit_left_micro": 200000,
"expires_at": "2026-11-16T09:00:00Z",
"code_expires_at": "2026-11-09T09:15:00Z",
"attempts_left": 5
}حقول الاستجابة
| حقل | المعنى |
|---|---|
state | pending أو claimed أو expired أو blocked. |
trial_ | الرصيد التجريبي المتبقي بالدولار الجزئي. يظهر أثناء الانتظار. |
expires_ | الموعد الذي يتوقف فيه المفتاح عن العمل إذا لم يُتحقق منه. يظهر أثناء الانتظار. |
code_ | الموعد الذي يتوقف فيه الرمز المرسل بالبريد عن العمل. يظهر أثناء الانتظار. |
attempts_ | عدد الرموز الخاطئة المتبقية قبل قفل الرمز. يظهر أثناء الانتظار. |
verified_ | موعد تحقق المستخدم. يظهر بعد التأكيد. |
الحدود قبل التحقق وبعده
| قبل التحقق (قيد الانتظار) | بعد التحقق | |
|---|---|---|
| الرصيد | رصيد تجريبي لمرة واحدة قدره 0.20 دولار، أي نحو 100 طلب بيانات بسعر 2 دولار لكل 1,000. | 10 دولارات مجانًا شهريًا لمدة 12 شهرًا دون بطاقة، ثم شحن رصيد مسبق الدفع. |
| الطلبات في الدقيقة | 10 | 50 مع الرصيد المجاني، و500 عندما يحتوي الحساب على رصيد مدفوع. |
| Webhook وتدفقات الأحداث ودعوات الفريق وشحن الرصيد | غير متاحة. | متاحة. |
| مدة الصلاحية | 7 أيام، ثم يُلغى المفتاح. | القواعد العادية. |
تحمل كل استجابة لمفتاح قيد الانتظار الترويسة X-Narwhal-Account-State: pending. لا تُحتسب أي رسوم على طلبات التسجيل والتحقق والحالة. الأسعار 2 دولار لكل 1,000 طلب، و10 دولارات لكل 1,000 لواجهة Companies.
عند نفاد الرصيد التجريبي يعيد طلب البيانات 402 مع insufficient_ وverify_ ورسالة message_ ليعرضها الوكيل.
{
"status": 402,
"code": "insufficient_credits",
"verify_required": true,
"message_for_user": "The trial credit on this Narwhal key is used up. To go on, please read me the 6-digit code Narwhal emailed you. When Narwhal data is shown to you, it is credited \"Data by Narwhal API\"."
}إذا لم يشارك المستخدم الرمز أبدًا، يظل المفتاح يعمل حتى ينفد الرصيد التجريبي أو تمر 7 أيام.
تذكر رسالة الرمز اسم الوكيل وأداته وبلد الطلب. وفيها رابط بعنوان "This wasn't me" يفتح صفحة بزر واحد. فتح الرابط لا يغيّر شيئًا؛ أما الضغط على الزر فيلغي المفتاح ويوقف مراسلة Narwhal لهذا العنوان.
الأخطاء
تستخدم الأخطاء بنية المشكلة الموضحة في دليل الأخطاء: ابدأ بـ status ثم code.
| الحالة | رمز عام | نقطة النهاية | المعنى |
|---|---|---|---|
400 | invalid_ | الكل | حقل مفقود أو غير صحيح، مثل بريد إلكتروني ليس عنوانًا عاديًا أو رمز ليس من 6 أرقام. |
400 | invalid_ | التحقق | الرمز خاطئ. توضح الرسالة عدد المحاولات المتبقية. |
401 | invalid_ | التحقق، الحالة | مفتاح Bearer مفقود أو غير صحيح أو غير معروف أو ملغى. |
402 | insufficient_ | طلبات البيانات | نفد الرصيد التجريبي. يضيف النص verify_ وmessage_. |
403 | code_ | التحقق | رموز خاطئة كثيرة جدًا. اسأل المستخدم قبل بدء تسجيل جديد. |
403 | account_ | Webhook وتذاكر التدفق | لا يمكن لمفتاح قيد الانتظار استخدام Webhook أو تدفقات الأحداث. |
404 | not_ | الحالة | لم يأتِ هذا المفتاح من تسجيل الوكلاء. |
404 | block_ | حظر | الرابط في الرسالة غير صالح. |
404 | route_ | الكل | تسجيل الوكلاء غير مفعّل. |
409 | email_ | التحقق | العنوان لديه حساب بالفعل. أُلغي المفتاح؛ اطلب من المستخدم تسجيل الدخول بدلًا من ذلك. |
409 | already_ | التحقق، الحظر | تم التحقق من المفتاح بالفعل. لا يمكن استخدام الرمز مرتين. |
409 | not_ | التحقق | لم يعد التسجيل بانتظار التحقق (منتهي أو محظور). |
409 | verify_ | التحقق، الحظر | هناك عملية تحقق أخرى لهذا المفتاح قيد التنفيذ. تحقق من الحالة. |
410 | code_ | التحقق | انتهت صلاحية الرمز. اسأل المستخدم قبل بدء تسجيل جديد. |
422 | agent_ | طلب | يحتوي اسم الوكيل على أحرف خارج المجموعة المسموح بها. |
422 | email_ | طلب | نطاق البريد الإلكتروني تابع لمزوّد بريد مؤقت. |
429 | rate_ | الكل | طلبات كثيرة جدًا من هذه الشبكة، أو طلبات كثيرة جدًا في الدقيقة لمفتاح قيد الانتظار. انتظر عدد الثواني في Retry-After. |
429 | domain_ | التحقق | تم التحقق من عدد كبير جدًا من الحسابات اليوم لهذا النطاق البريدي. أعد المحاولة بالرمز نفسه بعد 00:00 بالتوقيت العالمي. |
503 | agent_ | الطلب، الحظر | التسجيل غير متاح مؤقتًا أو بلغ حده اليومي. راجع Retry-After. |
503 | verify_ | التحقق | التحقق غير متاح مؤقتًا. أعد المحاولة بالرمز نفسه. |
Data by Narwhal API
ما دام الحساب يحتوي على رصيد مجاني فقط، اعرض بيانات Narwhal للناس مع الإشارة "Data by Narwhal API" ورابط إلى Narwhal API. تكرر هذه القاعدة message الخاصة بالتحقق وmessage_ في الاستجابة 402. يجوز للحسابات التي لديها رصيد مدفوع عرض البيانات دون إشارة.
تسجيل الدخول لاحقًا
After verify, the user can sign in with Google or GitHub using the same email address. That opens the same account, with the same key and balance. الـ دليل المصادقة covers storing and rotating the key.
هل كانت هذه الصفحة مفيدة؟