Source: https://ailoot.ai/docs/ar/cabinet/auth/
Canonical: https://ailoot.ai/docs/ar/cabinet/auth/
Language: ar

[API لوحة الحساب](https://ailoot.ai/docs/ar/) 

# تسجيل الدخول والجلسات

[Markdown](https://ailoot.ai/docs/ar/cabinet/auth/index.md)

الطرق وحقول الطلبات والردود.

يضم القسم 14 طريقة. افتح الطريقة لعرض شروط الوصول وحقول الطلب والرد.

| الطريقة والمسار | الوصف | الوصول |
| --- | --- | --- |
| `POST /api/v1/auth/forgot-password` | طلب إعادة تعيين كلمة المرور | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/login` | تسجيل الدخول بالبريد الإلكتروني وكلمة المرور | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/login/2fa` | إكمال تسجيل الدخول باستخدام TOTP | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/logout` | تسجيل الخروج وإبطال refresh token | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `GET /api/v1/auth/me` | المستخدم الحالي والرصيد والحدود | توكن لوحة الحساب |
| `POST /api/v1/auth/passkey/login/begin` | بدء تسجيل الدخول باستخدام passkey | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/passkey/login/finish` | إكمال تسجيل الدخول باستخدام passkey | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/refresh` | تجديد التوكنات | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/register` | إنشاء حساب | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/reset-password` | إعادة تعيين كلمة المرور | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/revoke-all-sessions` | إبطال جميع الجلسات | توكن لوحة الحساب |
| `POST /api/v1/auth/send-verify-code` | إرسال رمز التحقق | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/validate-invitation-code` | التحقق من الدعوة | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |
| `POST /api/v1/auth/validate-promo-code` | التحقق من الرمز الترويجي | دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة |

**POST /api/v1/auth/forgot-password** — طلب إعادة تعيين كلمة المرور

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

حد المعدل: 5 طلبات خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/forgot-password`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `email` | `string` | نعم | required,email |
| `turnstile_token` | `string` | لا |  |

قالب جسم الطلب

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `ForgotPasswordRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `ForgotPasswordResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/login** — تسجيل الدخول بالبريد الإلكتروني وكلمة المرور

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 20 طلباً خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/login`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `email` | `string` | نعم | required,email |
| `password` | `string` | نعم | required |
| `turnstile_token` | `string` | لا |  |

قالب جسم الطلب

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `LoginRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `TotpLoginResponse`, `User`, `AuthResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

إذا كان للرد عدة أشكال محتملة، تُدرج حقول كل منها في مخطط منفصل؛ ولا ينبغي جمعها في كائن واحد.

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/login/2fa** — إكمال تسجيل الدخول باستخدام TOTP

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 20 طلباً خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/login/2fa`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `temp_token` | `string` | نعم | required |
| `totp_code` | `string` | نعم | required,len=6 |

قالب جسم الطلب

```json
{
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "totp_code": "PLACEHOLDER_TOTP_CODE (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `Login2FARequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `User`, `AuthResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

إذا كان للرد عدة أشكال محتملة، تُدرج حقول كل منها في مخطط منفصل؛ ولا ينبغي جمعها في كائن واحد.

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/logout** — تسجيل الخروج وإبطال refresh token

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

POST`/api/v1/auth/logout`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `refresh_token` | `string` | لا | ؛ اختياري: إبطال توكن التجديد المحدد |

قالب جسم الطلب

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `LogoutRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `LogoutResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**GET /api/v1/auth/me** — المستخدم الحالي والرصيد والحدود

الوصول: توكن لوحة الحساب

GET`/api/v1/auth/me`

قراءة؛ يُؤخذ ID من رد سابق لك

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/auth/me" \
  -H "Authorization: Bearer $TOKEN"
```

لا يلزم جسم للطلب. أرسل المعاملات المذكورة أعلاه في URL.

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `User`, `UserProfileResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "email": "PLACEHOLDER_EMAIL (string)",
    "username": "PLACEHOLDER_USERNAME (string)",
    "role": "PLACEHOLDER_ROLE (string)",
    "balance": "PLACEHOLDER_BALANCE (number)",
    "frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
    "concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
    "status": "PLACEHOLDER_STATUS (string)",
    "last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "deleted_at": "PLACEHOLDER_DELETED_AT (string)",
    "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
    "balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
    "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
    "balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
    "total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
    "rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
    "api_keys": "PLACEHOLDER_API_KEYS (array)",
    "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
    "email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
  }
}
```

ملاحظات: تقتصر جميع البيانات الشخصية والكائنات على صاحب الهوية في JWT.

ملاحظات: ترد حدود إنفاق المفاتيح (quota وquota\_used) في رد المفاتيح، لا في الملف الشخصي. frozen\_balance مبلغ محجوز ولا يجوز اعتباره رصيداً متاحاً.

**POST /api/v1/auth/passkey/login/begin** — بدء تسجيل الدخول باستخدام passkey

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 20 طلباً خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/passkey/login/begin`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `turnstile_token` | `string` | لا |  |

قالب جسم الطلب

```json
{
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `PasskeyBeginLoginRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `PasskeyOptionsResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
    "options": "PLACEHOLDER_OPTIONS (any)"
  }
}
```

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

ملاحظات: تُستخرج credential من navigator.credentials وsession\_token من begin. جسم Finish لا يتجاوز 65536 بايت؛ وتتطلب التسجيل والإزالة كلمة مرور.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/passkey/login/finish** — إكمال تسجيل الدخول باستخدام passkey

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 20 طلباً خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/passkey/login/finish`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `session_token` | `string` | نعم | required |
| `name` | `string` | لا |  |
| `credential` | `object` | نعم | required |

قالب جسم الطلب

```json
{
  "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
  "name": "PLACEHOLDER_NAME (string)",
  "credential": "PLACEHOLDER_CREDENTIAL (object)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `PasskeyFinishRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `User`, `AuthResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

إذا كان للرد عدة أشكال محتملة، تُدرج حقول كل منها في مخطط منفصل؛ ولا ينبغي جمعها في كائن واحد.

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

ملاحظات: تُستخرج credential من navigator.credentials وsession\_token من begin. جسم Finish لا يتجاوز 65536 بايت؛ وتتطلب التسجيل والإزالة كلمة مرور.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/refresh** — تجديد التوكنات

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 30 طلباً خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/refresh`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `refresh_token` | `string` | نعم | required |

قالب جسم الطلب

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `RefreshTokenRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `RefreshTokenResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "access_token": "PLACEHOLDER_ACCESS_TOKEN (string)",
    "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)",
    "expires_in": "PLACEHOLDER_EXPIRES_IN (integer)",
    "token_type": "PLACEHOLDER_TOKEN_TYPE (string)"
  }
}
```

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/register** — إنشاء حساب

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

حد المعدل: 5 طلبات خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/register`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `email` | `string` | نعم | required,email |
| `password` | `string` | نعم | required,min=6 |
| `verify_code` | `string` | لا |  |
| `turnstile_token` | `string` | لا |  |
| `promo_code` | `string` | لا | ؛ الرمز الترويجي للتسجيل |
| `invitation_code` | `string` | لا | ؛ رمز الدعوة |

قالب جسم الطلب

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "verify_code": "PLACEHOLDER_VERIFY_CODE (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)",
  "promo_code": "PLACEHOLDER_PROMO_CODE (string)",
  "invitation_code": "PLACEHOLDER_INVITATION_CODE (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `RegisterRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `User`, `AuthResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

إذا كان للرد عدة أشكال محتملة، تُدرج حقول كل منها في مخطط منفصل؛ ولا ينبغي جمعها في كائن واحد.

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/reset-password** — إعادة تعيين كلمة المرور

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

حد المعدل: 10 طلبات خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/reset-password`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `email` | `string` | نعم | required,email |
| `token` | `string` | نعم | required |
| `new_password` | `string` | نعم | required,min=6 |

قالب جسم الطلب

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "token": "PLACEHOLDER_TOKEN (string)",
  "new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `ResetPasswordRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `ResetPasswordResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/revoke-all-sessions** — إبطال جميع الجلسات

الوصول: توكن لوحة الحساب

POST`/api/v1/auth/revoke-all-sessions`

لا يلزم جسم للطلب.

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `RevokeAllSessionsResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

ملاحظات: تقتصر جميع البيانات الشخصية والكائنات على صاحب الهوية في JWT.

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/send-verify-code** — إرسال رمز التحقق

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

حد المعدل: 5 طلبات خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/send-verify-code`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `email` | `string` | نعم | required,email |
| `turnstile_token` | `string` | لا |  |

قالب جسم الطلب

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `SendVerifyCodeRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `SendVerifyCodeResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)",
    "countdown": "PLACEHOLDER_COUNTDOWN (integer)"
  }
}
```

ملاحظات: تغيّر العملية الحالة أو تواصل مصادقة لمرة واحدة؛ يصف المثال العقد ولا يتم تنفيذه.

تغيّر الطريقة البيانات. تكون إعادة الإرسال آمنة فقط إذا ذُكر Idempotency-Key لهذه الطريقة. إذا فُقد الرد، فتحقق أولاً من النتيجة (مثل قائمة المفاتيح)، ثم قرر ما إذا كنت ستعيد الطلب.

**POST /api/v1/auth/validate-invitation-code** — التحقق من الدعوة

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 10 طلبات خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/validate-invitation-code`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `code` | `string` | نعم | required |

قالب جسم الطلب

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `ValidateInvitationCodeRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `ValidateInvitationCodeResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)"
  }
}
```

الخصائص: تتحقق الطريقة من الدعوة ولا تستهلك الرمز؛ يصف المثال عقد واجهة API ولا يُنفَّذ.

تتحقق الطريقة من رمز الدعوة فقط ولا تستهلكه. يمكن تكرار التحقق مع مراعاة حد معدل الطلبات؛ وتعكس النتيجة حالة الرمز وقت الطلب.

**POST /api/v1/auth/validate-promo-code** — التحقق من الرمز الترويجي

الوصول: دون تسجيل دخول؛ تُذكر الشروط الإضافية عند الطريقة

يُتحقق من توافر الميزة وشروط الوصول الإضافية عند تنفيذ الطلب.

حد المعدل: 10 طلبات خلال 60 ثانية من عنوان واحد.

POST`/api/v1/auth/validate-promo-code`

## حقول JSON / النموذج

| الحقل | النوع | مطلوب | التحقق / الوصف |
| --- | --- | --- | --- |
| `code` | `string` | نعم | required |

قالب جسم الطلب

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

يشير PLACEHOLDER إلى مدخلاتك ونوعها. استبدل القيم وأبقِ الحقول الاختيارية المطلوبة فقط؛ لا ترسل العلامات النصية بدلاً من الأرقام أوboolean أوالكائنات أوالمصفوفات.

مخطط الطلب: `ValidatePromoCodeRequest`

## الرد

يتضمن رد JSON الحقول code وmessage وdata. محتوى data موضح في المخططات أدناه.

مخططات بيانات الرد: `ValidatePromoCodeResponse`. الحقول والأنواع موضحة في صفحات «مخططات البيانات».

مخطط الرد؛ القيم تمثيلية

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "bonus_amount": "PLACEHOLDER_BONUS_AMOUNT (number)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)",
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

الخصائص: تتحقق الطريقة من الرمز الترويجي ولا تضيف مكافأة؛ يصف المثال عقد واجهة API ولا يُنفَّذ.

تتحقق الطريقة من الرمز الترويجي فقط ولا تطبّقه على الحساب. يمكن تكرار التحقق مع مراعاة حد معدل الطلبات؛ وتعكس النتيجة حالة الرمز وقت الطلب.

## تسجيل الدخول والجلسات · 2FA

`POST /api/v1/auth/login` → `data`

- `data.requires_2fa === true` → [TotpLoginResponse](https://ailoot.ai/docs/ar/cabinet/schemas-1/#totploginresponse) → `data.temp_token` → `POST /api/v1/auth/login/2fa` · `{"temp_token": "…", "totp_code": "…"}` → `data.access_token`
- `data.access_token` → [AuthResponse](https://ailoot.ai/docs/ar/cabinet/schemas-1/#authresponse) → `Authorization: Bearer $TOKEN`

`totp_code`: `string`, `len = 6`. `temp_token ≠ access_token`. [User](https://ailoot.ai/docs/ar/cabinet/schemas-1/#user)

هل لديك أسئلة أخرى؟ أرسل Request ID ووصفاً للمشكلة وسنساعدك على فهمها.[مراسلة الدعم](mailto:support@ailoot.ai)

## Ailoot · الشركة ومحفظة مشاريعها





تستند Ailoot إلى خبرة تشغيلية متراكمة وقاعدة عملاء واسعة وخدمة مستقرة ومراقبة مستمرة لمؤشرات الأداء KPI.





الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.





توظف Ailoot هذه الخبرة التشغيلية لإتاحة الوصول عبر API إلى قدرات الذكاء الاصطناعي في منتجات العملاء ووكلائهم وتطبيقاتهم وعمليات الأتمتة.
