dokumentation
Kontrollpanelens API

Inloggning och sessioner

Markdown

Metoder, anropsfält och svar.

Fullständig guide

Avsnittet innehåller 14 metoder. Öppna en metod för att se åtkomstvillkor, anropsfält och svar.

Metod och sökvägBeskrivningÅtkomst
POST /api/v1/auth/forgot-passwordBegär återställning av lösenordUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/loginInloggning med e-postadress och lösenordUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/login/2faSlutför inloggning med TOTPUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/logoutUtloggning och återkallande av uppdateringstokenUtan inloggning; ytterligare villkor anges för metoden
GET /api/v1/auth/meAktuell användare, saldo och gränserKontrollpaneltoken
POST /api/v1/auth/passkey/login/beginStarta inloggning med passnyckelUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/passkey/login/finishSlutför inloggning med passnyckelUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/refreshFörnya tokenUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/registerRegistrera digUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/reset-passwordÅterställ lösenordUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/revoke-all-sessionsÅterkalla alla sessionerKontrollpaneltoken
POST /api/v1/auth/send-verify-codeSkicka verifieringskodUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/validate-invitation-codeValidera inbjudanUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/validate-promo-codeValidera kampanjkodUtan inloggning; ytterligare villkor anges för metoden
POST /api/v1/auth/forgot-password — Begär återställning av lösenord

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Frekvensgräns: 5 anrop per 60 sekunder från samma adress.

POST/api/v1/auth/forgot-password

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
emailstringjarequired,email
turnstile_tokenstringnej
Mall för anropskropp
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: ForgotPasswordRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: ForgotPasswordResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/login — Inloggning med e-postadress och lösenord

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 20 anrop per 60 sekunder från samma adress.

POST/api/v1/auth/login

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
emailstringjarequired,email
passwordstringjarequired
turnstile_tokenstringnej
Mall för anropskropp
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: LoginRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: TotpLoginResponse, User, AuthResponse. Fält och typer finns på sidorna ”Datascheman”.

Om flera svarsvarianter är möjliga anges deras fält i separata scheman; de ska inte slås ihop till ett objekt.

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/login/2fa — Slutför inloggning med TOTP

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 20 anrop per 60 sekunder från samma adress.

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

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
temp_tokenstringjarequired
totp_codestringjarequired,len=6
Mall för anropskropp
{
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "totp_code": "PLACEHOLDER_TOTP_CODE (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: Login2FARequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: User, AuthResponse. Fält och typer finns på sidorna ”Datascheman”.

Om flera svarsvarianter är möjliga anges deras fält i separata scheman; de ska inte slås ihop till ett objekt.

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/logout — Utloggning och återkallande av uppdateringstoken

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

POST/api/v1/auth/logout

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
refresh_tokenstringnej; Valfritt: återkalla angiven uppdateringstoken
Mall för anropskropp
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: LogoutRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: LogoutResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

GET /api/v1/auth/me — Aktuell användare, saldo och gränser

Åtkomst: kontrollpaneltoken

GET/api/v1/auth/me
Läsning; ID hämtas från ditt föregående svar
curl --fail-with-body "https://ailoot.ai/api/v1/auth/me" \
  -H "Authorization: Bearer $TOKEN"

Ingen anropskropp krävs. Skicka parametrarna ovan i URL:en.

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: User, UserProfileResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "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)"
  }
}

Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.

Observera: Nycklarnas utgiftsgränser (quota, quota_used) returneras i nyckelsvaret, inte i profilen. frozen_balance är reserverat belopp och ska inte räknas som tillgängligt saldo.

POST /api/v1/auth/passkey/login/begin — Starta inloggning med passnyckel

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 20 anrop per 60 sekunder från samma adress.

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

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
turnstile_tokenstringnej
Mall för anropskropp
{
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: PasskeyBeginLoginRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: PasskeyOptionsResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
    "options": "PLACEHOLDER_OPTIONS (any)"
  }
}

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

Observera: credential hämtas från navigator.credentials; session_token från begin. Anropskroppen till Finish <=65536 byte; registrering och borttagning kräver lösenord.

POST /api/v1/auth/passkey/login/finish — Slutför inloggning med passnyckel

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 20 anrop per 60 sekunder från samma adress.

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

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
session_tokenstringjarequired
namestringnej
credentialobjectjarequired
Mall för anropskropp
{
  "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
  "name": "PLACEHOLDER_NAME (string)",
  "credential": "PLACEHOLDER_CREDENTIAL (object)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: PasskeyFinishRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: User, AuthResponse. Fält och typer finns på sidorna ”Datascheman”.

Om flera svarsvarianter är möjliga anges deras fält i separata scheman; de ska inte slås ihop till ett objekt.

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

Observera: credential hämtas från navigator.credentials; session_token från begin. Anropskroppen till Finish <=65536 byte; registrering och borttagning kräver lösenord.

POST /api/v1/auth/refresh — Förnya token

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 30 anrop per 60 sekunder från samma adress.

POST/api/v1/auth/refresh

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
refresh_tokenstringjarequired
Mall för anropskropp
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: RefreshTokenRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: RefreshTokenResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "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)"
  }
}

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/register — Registrering

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Frekvensgräns: 5 anrop per 60 sekunder från samma adress.

POST/api/v1/auth/register

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
emailstringjarequired,email
passwordstringjarequired,min=6
verify_codestringnej
turnstile_tokenstringnej
promo_codestringnej; Kampanjkod för registrering
invitation_codestringnej; Inbjudningskod
Mall för anropskropp
{
  "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 anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: RegisterRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: User, AuthResponse. Fält och typer finns på sidorna ”Datascheman”.

Om flera svarsvarianter är möjliga anges deras fält i separata scheman; de ska inte slås ihop till ett objekt.

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/reset-password — Återställ lösenord

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Frekvensgräns: 10 anrop per 60 sekunder från samma adress.

POST/api/v1/auth/reset-password

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
emailstringjarequired,email
tokenstringjarequired
new_passwordstringjarequired,min=6
Mall för anropskropp
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "token": "PLACEHOLDER_TOKEN (string)",
  "new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: ResetPasswordRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: ResetPasswordResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/revoke-all-sessions — Återkalla alla sessioner

Åtkomst: kontrollpaneltoken

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

Ingen anropskropp krävs.

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: RevokeAllSessionsResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/send-verify-code — Skicka verifieringskod

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Frekvensgräns: 5 anrop per 60 sekunder från samma adress.

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

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
emailstringjarequired,email
turnstile_tokenstringnej
Mall för anropskropp
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: SendVerifyCodeRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: SendVerifyCodeResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)",
    "countdown": "PLACEHOLDER_COUNTDOWN (integer)"
  }
}

Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/validate-invitation-code — Validera inbjudan

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 10 anrop per 60 sekunder från samma adress.

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

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
codestringjarequired
Mall för anropskropp
{
  "code": "PLACEHOLDER_CODE (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: ValidateInvitationCodeRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: ValidateInvitationCodeResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "code": 0,
  "message": "success",
  "data": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)"
  }
}

Observera: Metoden kontrollerar inbjudan utan att markera koden som använd; exemplet beskriver kontraktet och körs inte.

POST /api/v1/auth/validate-promo-code — Validera kampanjkod

Åtkomst: utan inloggning; ytterligare villkor anges för metoden

Funktionens tillgänglighet och ytterligare åtkomstvillkor kontrolleras när anropet utförs.

Frekvensgräns: 10 anrop per 60 sekunder från samma adress.

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

JSON-/formulärfält

FältetTypObligatorisktValidering / beskrivning
codestringjarequired
Mall för anropskropp
{
  "code": "PLACEHOLDER_CODE (string)"
}

PLACEHOLDER anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.

Anropsschema: ValidatePromoCodeRequest

Svar

JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.

Datascheman för svaret: ValidatePromoCodeResponse. Fält och typer finns på sidorna ”Datascheman”.

Svarsschema med exempelvärden
{
  "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)"
  }
}

Observera: Metoden kontrollerar kampanjkoden utan att tilldela någon bonus; exemplet beskriver kontraktet och körs inte.

Inloggning och sessioner · 2FA

POST /api/v1/auth/login → data

  • data.requires_2fa === true → TotpLoginResponse → data.temp_token → POST /api/v1/auth/login/2fa · {"temp_token": "…", "totp_code": "…"} → data.access_token
  • data.access_token → AuthResponse → Authorization: Bearer $TOKEN

totp_code: string, len = 6. temp_token ≠ access_token. User

Har du fler frågor? Skicka Request ID och en beskrivning, så hjälper vi dig.Kontakta supporten