تصفّح التوثيق كاملًا

تسجيل الوكلاء

Let an AI agent get a Narwhal API key for its user.

يمكن لوكيل ذكاء اصطناعي الحصول على مفتاح Narwhal API لمستخدمه دون متصفح. يرسل الوكيل عنوان البريد الإلكتروني للمستخدم ويحصل فورًا على مفتاح يعمل مع رصيد تجريبي صغير. يقرأ المستخدم للوكيل رمزًا من 6 أرقام وصل في رسالة بريد، فيتحقق منه الوكيل، ويصبح المفتاح نفسه حسابًا كاملًا.

يمكن للوكلاء قراءة المسار نفسه بصيغة markdown بسيطة على /auth.md.

قواعد للوكلاء

  • احصل على موافقة المستخدم قبل تسجيله.
  • استخدم فقط عنوان بريد إلكتروني أعطاك إياه المستخدم.
  • لا تقرأ الرمز من صندوق بريد المستخدم بنفسك أبدًا. يجب أن يعطيك المستخدم الرمز.
  • أعد المحاولة بعد 429 و503 ثلاث مرات على الأكثر، مع انتظار عدد الثواني في Retry-After. ثم توقف وأخبر المستخدم. إذا تجاوز Retry-After 300 ثانية فقد بُلغ الحد اليومي: توقف فورًا وأخبر المستخدم.
  • بعد 403 أو 410، اسأل المستخدم قبل بدء تسجيل جديد. كل تسجيل يرسل إليه رمزًا آخر بالبريد.

طلب مفتاح

أرسل عنوان البريد الإلكتروني للمستخدم. لا حاجة إلى مفتاح API. الاستجابة دائمًا بالحالة 202 وبالنص نفسه، فلا يمكن استخدامها لمعرفة ما إذا كان العنوان يملك حسابًا. يعمل api_key فورًا على حساب قيد الانتظار.

POST /v1/agent-signup
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_nameنعمالاسم الذي يطلقه الوكيل على نفسه: من 1 إلى 80 حرفًا أو رقمًا أو مسافة أو _ - / ( ). يُسمح بالنقطة بين رقمين فقط، كما في رقم الإصدار. بلا روابط ولا أسماء نطاقات ولا نقطتين رأسيتين. تعرضه الرسالة للمستخدم.
clientلاالأداة التي يعمل فيها الوكيل، مثل claude-code أو cursor: أحرف صغيرة وأرقام و_ و-، بحد أقصى 40 حرفًا.

حقول الاستجابة

حقلالمعنى
statusدائمًا pending إلى أن يُتحقق من الرمز.
messageالنص نفسه لكل طلب.
api_keyمفتاح يعمل على حساب قيد الانتظار. أبقه سريًا؛ يُعرض مرة واحدة.
trial_credit_microالرصيد التجريبي لمرة واحدة بالدولار الجزئي (1,000,000 يساوي دولارًا واحدًا). 200000 تعني 0.20 دولار.
expires_atالموعد الذي يتوقف فيه المفتاح عن العمل إذا لم يُتحقق منه: بعد 7 أيام من الطلب.
verify_pathالمسار الذي يُرسل إليه الرمز الذي يقرؤه المستخدم.

إذا كان للعنوان حساب بالفعل، يتلقى مالكه رسالة تطلب منه تسجيل الدخول دون رمز. أما العنوان الجديد فيتلقى رسالة الرمز. يظل الرمز صالحًا 15 دقيقة ويسمح بخمس محاولات خاطئة. لا يتلقى العنوان أكثر من 3 رسائل رمز خلال 30 يومًا.

التحقق من الرمز

يطلب الوكيل من المستخدم قراءة الرمز المكوّن من 6 أرقام، ثم يرسله مع المفتاح من الخطوة الأولى بوصفه رمز Bearer. مشاركة الرمز هي الطريقة التي يوافق بها المستخدم على الشروط. التحقق مجاني ويعمل عند رصيد صفر.

POST /v1/agent-signup/verify
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.

حقول الاستجابة

حقلالمعنى
statusclaimed بعد قبول الرمز.
messageتؤكد الحساب وتكرر قاعدة الإشارة إلى المصدر.

عند النجاح يصبح المفتاح نفسه حسابًا عاديًا، ويبدأ الرصيد المجاني البالغ 10 دولارات شهريًا لمدة 12 شهرًا من تاريخ التحقق.

التحقق من الحالة

مجاني ويتطلب المفتاح. يوضح أين وصل التسجيل.

GET /v1/agent-signup/status
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
}

حقول الاستجابة

حقلالمعنى
statepending أو claimed أو expired أو blocked.
trial_credit_left_microالرصيد التجريبي المتبقي بالدولار الجزئي. يظهر أثناء الانتظار.
expires_atالموعد الذي يتوقف فيه المفتاح عن العمل إذا لم يُتحقق منه. يظهر أثناء الانتظار.
code_expires_atالموعد الذي يتوقف فيه الرمز المرسل بالبريد عن العمل. يظهر أثناء الانتظار.
attempts_leftعدد الرموز الخاطئة المتبقية قبل قفل الرمز. يظهر أثناء الانتظار.
verified_atموعد تحقق المستخدم. يظهر بعد التأكيد.

الحدود قبل التحقق وبعده

قبل التحقق (قيد الانتظار)بعد التحقق
الرصيدرصيد تجريبي لمرة واحدة قدره 0.20 دولار، أي نحو 100 طلب بيانات بسعر 2 دولار لكل 1,000.10 دولارات مجانًا شهريًا لمدة 12 شهرًا دون بطاقة، ثم شحن رصيد مسبق الدفع.
الطلبات في الدقيقة1050 مع الرصيد المجاني، و500 عندما يحتوي الحساب على رصيد مدفوع.
Webhook وتدفقات الأحداث ودعوات الفريق وشحن الرصيدغير متاحة.متاحة.
مدة الصلاحية7 أيام، ثم يُلغى المفتاح.القواعد العادية.

تحمل كل استجابة لمفتاح قيد الانتظار الترويسة X-Narwhal-Account-State: pending. لا تُحتسب أي رسوم على طلبات التسجيل والتحقق والحالة. الأسعار 2 دولار لكل 1,000 طلب، و10 دولارات لكل 1,000 لواجهة Companies.

عند نفاد الرصيد التجريبي يعيد طلب البيانات 402 مع insufficient_credits وverify_required: true ورسالة message_for_user ليعرضها الوكيل.

الاستجابة
{
  "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.

الحالةرمز عامنقطة النهايةالمعنى
400invalid_queryالكلحقل مفقود أو غير صحيح، مثل بريد إلكتروني ليس عنوانًا عاديًا أو رمز ليس من 6 أرقام.
400invalid_codeالتحققالرمز خاطئ. توضح الرسالة عدد المحاولات المتبقية.
401invalid_api_keyالتحقق، الحالةمفتاح Bearer مفقود أو غير صحيح أو غير معروف أو ملغى.
402insufficient_creditsطلبات البياناتنفد الرصيد التجريبي. يضيف النص verify_required وmessage_for_user.
403code_lockedالتحققرموز خاطئة كثيرة جدًا. اسأل المستخدم قبل بدء تسجيل جديد.
403account_pendingWebhook وتذاكر التدفقلا يمكن لمفتاح قيد الانتظار استخدام Webhook أو تدفقات الأحداث.
404not_an_agent_accountالحالةلم يأتِ هذا المفتاح من تسجيل الوكلاء.
404block_link_invalidحظرالرابط في الرسالة غير صالح.
404route_not_foundالكلتسجيل الوكلاء غير مفعّل.
409email_has_accountالتحققالعنوان لديه حساب بالفعل. أُلغي المفتاح؛ اطلب من المستخدم تسجيل الدخول بدلًا من ذلك.
409already_verifiedالتحقق، الحظرتم التحقق من المفتاح بالفعل. لا يمكن استخدام الرمز مرتين.
409not_pendingالتحققلم يعد التسجيل بانتظار التحقق (منتهي أو محظور).
409verify_in_progressالتحقق، الحظرهناك عملية تحقق أخرى لهذا المفتاح قيد التنفيذ. تحقق من الحالة.
410code_expiredالتحققانتهت صلاحية الرمز. اسأل المستخدم قبل بدء تسجيل جديد.
422agent_name_not_allowedطلبيحتوي اسم الوكيل على أحرف خارج المجموعة المسموح بها.
422email_domain_not_allowedطلبنطاق البريد الإلكتروني تابع لمزوّد بريد مؤقت.
429rate_limit_exceededالكلطلبات كثيرة جدًا من هذه الشبكة، أو طلبات كثيرة جدًا في الدقيقة لمفتاح قيد الانتظار. انتظر عدد الثواني في Retry-After.
429domain_daily_limitالتحققتم التحقق من عدد كبير جدًا من الحسابات اليوم لهذا النطاق البريدي. أعد المحاولة بالرمز نفسه بعد 00:00 بالتوقيت العالمي.
503agent_signup_unavailableالطلب، الحظرالتسجيل غير متاح مؤقتًا أو بلغ حده اليومي. راجع Retry-After.
503verify_unavailableالتحققالتحقق غير متاح مؤقتًا. أعد المحاولة بالرمز نفسه.

اقرأ دليل الأخطاء الكامل

Data by Narwhal API

ما دام الحساب يحتوي على رصيد مجاني فقط، اعرض بيانات Narwhal للناس مع الإشارة "Data by Narwhal API" ورابط إلى Narwhal API. تكرر هذه القاعدة message الخاصة بالتحقق وmessage_for_user في الاستجابة 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.

هل كانت هذه الصفحة مفيدة؟