Overview
Checks the current status of a verification session. Used by web clients to poll for completion after displaying a verification code to the user.Procedure Type
Mutation - Despite being a status check, this uses mutation to implement rate limiting.Input Parameters
The unique session identifier returned by
beginVerification.Validation:- Must be a valid UUID format
Response Fields
The response structure varies based on the verification status:Status: “expired”
Returned when the verification session no longer exists or has expired.Value:
"expired"Status: “pending”
Returned when the session is still active but verification has not been completed.Value:
"pending"Unix timestamp (in milliseconds) when this session will expire.
The verification code that should be entered in the Roblox game.
Status: “verified”
Returned when verification has been successfully completed.Value:
"verified"JSON Web Token for authenticated API requests. Valid for 1 hour.
Authenticated user information.JwtUser fields:
robloxUserId(string): The user’s Roblox user IDusername(string): The user’s Roblox usernamedisplayName(string): The user’s Roblox display namepicture(string): URL to the user’s Roblox avatar headshot (420x420 PNG)
Rate Limiting
Per Session:- Limit: 60 requests per session
- Window: 60 seconds (1 minute)
- Key:
sessionId
- Error Code:
TOO_MANY_REQUESTS - Message:
Rate limit hit. Try again in {seconds}s.
Error Codes
Rate limit exceeded for this session. Reduce polling frequency.Message:
Rate limit hit. Try again in {seconds}s.Example Usage
Use Cases
- Polling for verification completion in web applications
- Checking if a verification code has been entered
- Retrieving the JWT token after successful verification
- Monitoring session expiration
Implementation Notes
- Poll at reasonable intervals (1-2 seconds recommended) to respect rate limits
- The JWT expires after 1 hour and must be refreshed using the
refreshendpoint - Expired sessions are automatically cleaned up before checking status
- Rate limiting is per-session, so each verification flow has its own quota
- Once status is “verified”, the session data persists until expiration