---
title: "Authenticates a user."
method: POST
path: "/v1/login"
tags: ["Accounts"]
---

# Authenticates a user.

`POST /v1/login`

## Request body

- RobloxAuthenticationApiModelsLoginRequest
  - `ctype` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 — ['Email' = 0, 'Username' = 1, 'PhoneNumber' = 2, 'EmailOtpSessionToken' = 3, 'AuthToken' = 4, 'Passkey' = 5, 'AsUser' = 6, 'TwoStepVerification' = 7, 'XboxLive' = 8, 'PlatformLive' = 9, 'MagicLink' = 10]
  - `cvalue` string
  - `password` string
  - `userId` integer
  - `securityQuestionSessionId` string
  - `securityQuestionRedemptionToken` string
  - `secureAuthenticationIntent` RobloxAuthenticationApiModelsRequestSecureAuthenticationIntentModel
    - `clientPublicKey` string
    - `clientEpochTimestamp` integer
    - `saiSignature` string
    - `serverNonce` string
  - `accountBlob` string
  - `accountLinkParameters` RobloxAuthenticationApiModelsAccountLinkParameters
    - `LinkingPlatform` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 999 — ['Invalid' = 0, 'Xbox' = 1, 'Qq' = 2, 'WeChat' = 3, 'Facebook' = 4, 'RobloxDeveloper' = 5, 'RobloxGroupCreator' = 6, 'Playstation' = 7, 'ExternalProvider' = 8, 'Steam' = 9, 'Example' = 999]
  - `captchaId` string
  - `captchaToken` string
  - `captchaProvider` string
  - `challengeId` string

## Response `200`

OK

- RobloxAuthenticationApiModelsLoginResponse
  - `user` RobloxWebResponsesUsersSkinnyUserResponse
    - `id` integer
    - `name` string
    - `displayName` string
  - `twoStepVerificationData` RobloxAuthenticationApiModelsTwoStepVerificationSentResponse
    - `mediaType` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 — ['Email' = 0, 'SMS' = 1, 'Authenticator' = 2, 'RecoveryCode' = 3, 'SecurityKey' = 4, 'CrossDevice' = 5, 'Password' = 6, 'Passkey' = 7]
    - `ticket` string
  - `identityVerificationLoginTicket` string
  - `isBanned` boolean
  - `accountBlob` string
  - `shouldUpdateEmail` boolean
  - `recoveryEmail` string
  - `passkeyRegistrationSucceeded` boolean
  - `shouldAutoLoginFromRecovery` boolean
  - `shouldPrompt2svRemoval` boolean
  - `shouldPromptPasskeyAddition` boolean
  - `shouldPromptCredentialInvalidation` boolean

## Other responses

- `400` — 0: An unexpected error occurred. 3: Username and Password are required. Please try again. 8: Login with received credential type is not supported.
- `403` — 0: Token Validation Failed 1: Incorrect username or password. Please try again. 2: You must pass the robot test before logging in. 4: Account has been locked. Please request a password reset. 5: Unable to login. Please use Social Network sign on. 6: Account issue. Please contact Support. 9: Unable to login with provided credentials. Default login is required. 10: Received credentials are unverified. 12: Existing login session found. Please log out first. 14: The account is unable to log in. Please log in to the LuoBu app. 15: Too many attempts. Please wait a bit. 27: The account is unable to login. Please log in with the VNG app.
- `429` — 7: Too many attempts. Please wait a bit.
- `503` — 11: Service unavailable. Please try again.

## Changes

- **2026-09-03** `d9b4ae8b3380` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/roblox/apis/roblox-api/changes/v1/login/post.md)

---

[API](https://skmtc.dev/roblox/apis/roblox-api.md) · [All operations](https://skmtc.dev/roblox/apis/roblox-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/roblox/roblox-api/revisions/d9b4ae8b3380/schema)
