Skip to main content
Verification sessions let your app start a Dock verification flow and receive the completed Discord to Roblox link without webhooks.

Flow

1

Create a session

Call POST /v2/sessions with your pid, your internal clientId, and optional guildId.
2

Redirect the user

Send the user to data.verifyUrl.
3

Wait for completion

Read GET /v2/sessions/:id?wait=25 or open GET /v2/sessions/:id/stream.
4

Store the result

When status becomes completed, store result.discordId, result.robloxId, and your original clientId.

Create a session

string
required
Public Identifier attached to your API key. The pid must belong to the authenticated API key.
string
required
Your internal user, session, or checkout ID. Dock returns it with the session so you can map completion back to your system.
string
Optional Discord guild ID for flows that need guild context.
string
Optional key for safely retrying session creation with the same body.
cURL
200 OK

Read a session

string
required
Session ID returned as data.id by session creation.
number
Optional long-poll wait in seconds. Maximum 25.
Long-poll

Stream a session

The stream uses Server-Sent Events and sends session events. The connection closes when the session reaches a terminal state or after the stream limit.
Browser or Node SSE
Browser EventSource cannot set custom Authorization headers. If you need API-key auth from a browser, proxy the stream through your backend.

Session states

Completed result

Completed session
true when the same Discord user was previously linked to a different Roblox account in your PID dataset.
string | null
Previous Roblox ID when linkChanged is true.

Limits