Auth
Dashboard sign-in: password, magic link, TOTP.
17 نقطة وصول. أسماء نقاط الوصول وأوصافها مأخوذة من ملف OpenAPI، لذلك تظهر بالإنجليزية.
POST /v1/auth/signupPOST /v1/auth/loginPOST /v1/auth/magic-linkPOST /v1/auth/magic-link/verifyPOST /v1/auth/mfa/verifyPOST /v1/auth/logoutGET /v1/auth/mePOST /v1/auth/verify-emailPOST /v1/auth/password/forgotPOST /v1/auth/password/resetPOST /v1/auth/password/changePOST /v1/auth/totp/setupPOST /v1/auth/totp/enablePOST /v1/auth/totp/disableGET /v1/auth/sessionsDELETE /v1/auth/sessions/{session_id}GET /v1/whoami
POST
/v1/auth/signupCreate a user and a store (14-day trial)
لا يحتاج إلى مفتاح
جسم الطلب application/json SignupRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
name | string | نعم | max length 200 |
password | string | null | لا | Omit to use magic links.min length 12 · max length 200 |
store_name | string | null | لا | The new store's name. Required unless invite_token is given.max length 200 |
locale | "en" | "ar" | لا | Dashboard language.default "en" |
invite_token | string | null | لا | Sign up from a team invite: join that store (the email must match the invite); no new store.max length 200 |
الردود
- 201Successful Response
LoginResult
POST
/v1/auth/loginEmail + password
لا يحتاج إلى مفتاح
جسم الطلب application/json LoginRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
password | string | نعم | max length 200 |
الردود
- 200Successful Response
LoginResult
POST
/v1/auth/magic-linkEmail a one-time sign-in link (15 minutes)
لا يحتاج إلى مفتاح
جسم الطلب application/json MagicLinkRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
locale | "en" | "ar" | لا | Language of the email.default "en" |
الردود
- 200Successful Response
LoginResult
POST
/v1/auth/magic-link/verifyAuth Magic Link Verify
لا يحتاج إلى مفتاح
جسم الطلب application/json TokenRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
token | string | نعم | min length 20 · max length 200 |
الردود
- 200Successful Response
LoginResult
POST
/v1/auth/mfa/verifySecond step: TOTP or recovery code
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
جسم الطلب application/json MfaVerifyRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
code | string | نعم | 6-digit TOTP code or a recovery code.pattern ^(\d{6}|[a-z0-9]{10})$ |
الردود
- 200Successful Response
LoginResult
POST
/v1/auth/logoutAuth Logout
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
الردود
- 200Successful Response
Accepted
GET
/v1/auth/meAuth Me
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
الردود
- 200Successful Response
UserOut
POST
/v1/auth/verify-emailAuth Verify Email
لا يحتاج إلى مفتاح
جسم الطلب application/json TokenRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
token | string | نعم | min length 20 · max length 200 |
الردود
- 200Successful Response
Accepted
POST
/v1/auth/password/forgotAuth Password Forgot
لا يحتاج إلى مفتاح
جسم الطلب application/json MagicLinkRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
locale | "en" | "ar" | لا | Language of the email.default "en" |
الردود
- 200Successful Response
Accepted
POST
/v1/auth/password/resetAuth Password Reset
لا يحتاج إلى مفتاح
جسم الطلب application/json PasswordResetRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
token | string | نعم | min length 20 · max length 200 |
password | string | نعم | min length 12 · max length 200 |
الردود
- 200Successful Response
Accepted
POST
/v1/auth/password/changeChange the password (needs the current one; ends your other sessions)
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
جسم الطلب application/json PasswordChangeRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
current_password | string | نعم | max length 200 |
new_password | string | نعم | min length 12 · max length 200 |
الردود
- 200Successful Response
Accepted
POST
/v1/auth/totp/setupAuth Totp Setup
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
الردود
- 200Successful Response
TotpSetup
POST
/v1/auth/totp/enableAuth Totp Enable
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
جسم الطلب application/json TotpEnableRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
code | string | نعم | pattern ^\d{6}$ |
الردود
- 200Successful Response
RecoveryCodes
POST
/v1/auth/totp/disableAuth Totp Disable
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
جسم الطلب application/json MfaVerifyRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
code | string | نعم | 6-digit TOTP code or a recovery code.pattern ^(\d{6}|[a-z0-9]{10})$ |
الردود
- 200Successful Response
Accepted
GET
/v1/auth/sessionsAuth Sessions List
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
الردود
- 200Successful Response
SessionOut[]
DELETE
/v1/auth/sessions/{session_id}Auth Sessions Revoke
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
المعاملات
| الاسم | الموضع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
session_id | path | string | نعم |
الردود
- 200Successful Response
Deleted
GET
/v1/whoamiWho these credentials are (Test connection)
يحتاج إلى مفتاح أو جلسة في لوحة التحكم
الردود
- 200Successful Response
WhoAmI
أشكال البيانات في هذه الصفحة
SignupRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
name | string | نعم | max length 200 |
password | string | null | لا | Omit to use magic links.min length 12 · max length 200 |
store_name | string | null | لا | The new store's name. Required unless invite_token is given.max length 200 |
locale | "en" | "ar" | لا | Dashboard language.default "en" |
invite_token | string | null | لا | Sign up from a team invite: join that store (the email must match the invite); no new store.max length 200 |
LoginResult
On success the API sets the `sg_session` cookie (HttpOnly, Secure, SameSite=Lax) and returns the CSRF token, which the web app sends back as `X-CSRF-Token` on every write.
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
status | "ok" | "mfa_required" | "email_sent" | نعم | |
user | UserOut | null | لا | |
csrf_token | string | null | لا | |
weak_password | boolean | لا | Password sign-in only: the password is on the breached-password list or no longer meets the rules. Sign-in still works; ask the user to change it (POST /v1/auth/password/change).default false |
UserOut
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
id | string | نعم | |
email | string | نعم | |
name | string | null | نعم | |
locale | "en" | "ar" | نعم | |
email_verified | boolean | نعم | |
totp_enabled | boolean | نعم | |
is_superadmin | boolean | نعم | |
memberships | MembershipOut[] | نعم |
MembershipOut
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
id | string | نعم | |
tenant_id | string | نعم | |
tenant_name | string | نعم | |
tenant_slug | string | نعم | |
role | "owner" | "admin" | "editor" | "viewer" | نعم |
LoginRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
password | string | نعم | max length 200 |
MagicLinkRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
email | string (email) | نعم | |
locale | "en" | "ar" | لا | Language of the email.default "en" |
TokenRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
token | string | نعم | min length 20 · max length 200 |
MfaVerifyRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
code | string | نعم | 6-digit TOTP code or a recovery code.pattern ^(\d{6}|[a-z0-9]{10})$ |
Accepted
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
accepted | boolean | لا | default true |
job | Job | null | لا |
Job
A row of the shared `jobs` table. Poll GET /v1/jobs/{id} until status is terminal.
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
id | string | نعم | |
kind | "reindex" | "import" | "sync" | "translate_backfill" | "translate_writeback" | "export" | "data_export" | "data_delete" | "embed" | "synonym_mining" | نعم | |
status | "queued" | "running" | "succeeded" | "failed" | "canceled" | نعم | |
progress | number | لا | default 0 · min 0 · max 1 |
created_at | string (date-time) | نعم | |
started_at | string (date-time) | null | لا | |
finished_at | string (date-time) | null | لا | |
result | object | null | لا | |
error | string | null | لا |
PasswordResetRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
token | string | نعم | min length 20 · max length 200 |
password | string | نعم | min length 12 · max length 200 |
PasswordChangeRequest
Signed-in password change. The new password follows the sign-up rules (12+ characters, not on the breached-password list, not built from the email or name).
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
current_password | string | نعم | max length 200 |
new_password | string | نعم | min length 12 · max length 200 |
TotpSetup
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
secret | string | نعم | |
otpauth_url | string | نعم |
TotpEnableRequest
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
code | string | نعم | pattern ^\d{6}$ |
RecoveryCodes
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
codes | string[] | نعم | Shown once. 10 single-use codes. |
SessionOut
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
id | string | نعم | |
created_at | string (date-time) | نعم | |
last_seen_at | string (date-time) | نعم | |
user_agent | string | null | نعم | |
current | boolean | نعم |
Deleted
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
deleted | boolean | لا | default true |
id | string | نعم |
WhoAmI
What the current credentials are (connectors use it for 'Test connection').
| الاسم | النوع | إلزامي | الوصف |
|---|---|---|---|
tenant_id | string | نعم | |
auth | "public_key" | "secret_key" | "session" | نعم | |
key_id | string | null | لا | |
user_id | string | null | لا | |
role | "owner" | "admin" | "editor" | "viewer" | null | لا | |
scopes | string[] | نعم |