# اختبار مفتاح API بالطلب GET /api/v1/me

> اختبار مفتاح API في مُجيب يتم بالطلب GET /api/v1/me، فيعيد اسم نشاطك واسم المفتاح وصلاحياته. أمثلة بـ curl وJavaScript وPython، وشكل الرد والأخطاء.

اختبار مفتاح API يتم بالطلب `GET /api/v1/me`: يعيد اسم نشاطك واسم المفتاح وصلاحياته إذا كان المفتاح صالحًا، أو الخطأ 401 إذا لم يكن. لا يحتاج الطلب إلى أي صلاحية، فهو أول ما ترسله بعد إنشاء المفتاح.

## ماذا يعيد طلب اختبار المفتاح؟

يعيد الطلب اسم النشاط الذي يتبع له المفتاح، واسم المفتاح كما كتبته عند إنشائه، وقائمة صلاحياته:

| الحقل | النوع | معناه |
| --- | --- | --- |
| `workspace.name` | نص | اسم نشاطك في مُجيب |
| `key.name` | نص | الاسم الذي أعطيته للمفتاح عند إنشائه |
| `key.scopes` | قائمة نصوص | صلاحيات المفتاح: `contacts.read` أو `bookings.read` أو كلتاهما |

هذا الطلب لا يأخذ أي معاملات.

## كيف أرسل الطلب؟

أرسله بمفتاحك في الترويسة `Authorization`:

```bash
curl https://api.mujib.ai/api/v1/me \
  -H "Authorization: Bearer $MUJIB_API_KEY"
```

```js
const res = await fetch('https://api.mujib.ai/api/v1/me', {
  headers: { Authorization: `Bearer ${process.env.MUJIB_API_KEY}` },
});
const body = await res.json();
if (!res.ok) throw new Error(`${res.status} ${body.error.code}: ${body.error.message}`);
console.log(body.workspace.name, body.key.scopes);
```

```python
import os
import requests

res = requests.get(
    "https://api.mujib.ai/api/v1/me",
    headers={"Authorization": f"Bearer {os.environ['MUJIB_API_KEY']}"},
    timeout=30,
)
body = res.json()
if not res.ok:
    raise RuntimeError(f"{res.status_code} {body['error']['code']}: {body['error']['message']}")
print(body["workspace"]["name"], body["key"]["scopes"])
```

## كيف يبدو الرد؟

رد ناجح بالرمز 200، والحقلان في أعلى الجسم مباشرة، دون `data`:

```json
{
  "workspace": { "name": "مركز النخبة" },
  "key": { "name": "تقارير المبيعات", "scopes": ["contacts.read", "bookings.read"] }
}
```

ويحمل الرد ترويسات حد المفتاح `X-RateLimit-Limit` و`X-RateLimit-Remaining` و`X-RateLimit-Reset`، كما تشرح [الأخطاء وحدود الطلبات](https://docs.mujib.ai/developers/errors-limits/).

## متى أستخدم هذا الطلب؟

استخدمه لتتأكد أن المفتاح يعمل وأنه يحمل الصلاحية التي يحتاجها نظامك، قبل أن تقرأ البيانات.

- **عند بدء نظامك:** إذا عاد الخطأ 401 فأوقف المزامنة ونبّه من يدير النظام، بدل أن تفشل كل الطلبات التالية.
- **قبل قراءة الحجوزات:** إذا لم تكن `bookings.read` ضمن `key.scopes`، فتجاوز الحجوزات بدل أن تتلقى الخطأ 403.
- **بعد استبدال المفتاح:** تأكد أن المفتاح الجديد يعمل قبل أن تلغي القديم، كما تشرح [مفتاح API](https://docs.mujib.ai/developers/authentication/).

## ما الأخطاء المحتملة؟

| HTTP | `code` | السبب |
| --- | --- | --- |
| 401 | `UNAUTHORIZED` | لا مفتاح، أو مفتاح غير صالح أو ملغى أو منتهٍ، أو حساب نشاط غير فعّال |
| 429 | `RATE_LIMITED` | تجاوزت حدود الطلبات |
| 500 | `INTERNAL` | خطأ غير متوقع في الخادم |

## الأسئلة الشائعة

### هل يحتاج هذا الطلب إلى صلاحية معيّنة؟

لا. يعمل بأي مفتاح صالح، مهما كانت صلاحياته.

### هل يُحسب هذا الطلب ضمن حدود الطلبات؟

نعم، مثل أي طلب آخر بمفتاح صالح. فلا ترسله قبل كل طلب، بل عند بدء نظامك أو بعد تغيير المفتاح.

### لماذا لا يوجد data في رد هذا الطلب؟

لأنه يصف المفتاح ونشاطه، لا قائمة ولا سجلًا. يأتي الرد بالحقلين workspace وkey مباشرة.

---

المصدر: https://docs.mujib.ai/developers/api-me/ · آخر تحديث: 2026-11-04
