Verification sessions let you start a PID-based verification flow and read the
result without needing webhooks.
How it works
Create a session
Send a
POST request to /api/v1/verify/session with your pid and your
internal clientId.Redirect the user
Send the user to the returned
verifyUrl so they can complete the Dock
verification flow.Long-poll
Use
GET /api/v1/verify/session/:sid?wait=25 when you want a simple
request-based waiting flow.SSE stream
Use
GET /api/v1/verify/session/:sid/stream when you want realtime updates
over a single connection.Create a session
Request body
Your Dock Public Identifier. This determines which PID dataset the
verification session belongs to.
Your internal user identifier. Dock stores this on the session so you can map
verification completion back to your own account or user record.
Optional guild identifier used when your verification flow also needs guild
context.
Response fields
HTTP status code for the request.
Unique verification session ID.
PID associated with the session.
Your application’s internal user identifier for this session.
ISO 8601 timestamp indicating when the session expires.
Whether Dock reused an already-active session instead of creating a new one.
Verification URL you should redirect the user to.
Remaining requests in the verification-session bucket.
Each session stores your required
clientId, which makes it easy to map a
completed verification back to the correct user in your own system.Read session completion
- SSE
- Long-poll
Use SSE when you want one open connection that receives updates as soon as
the session changes state.
Node.js SSE client
Session states and result shape
Completed session
Completed session
Completed sessions include
sid, pid, and a populated result object.Pending session
Pending session
Pending sessions include
sid, pid, status, and result: null.Expired session
Expired session
Expired sessions include
sid, pid, status: "expired", and result
remains null if completion never happened.Completed result fields
Unique verification session ID.
PID the session belongs to.
Verified Discord user ID.
Verified Roblox user ID.
Indicates whether this Discord user was previously linked to a different
Roblox account in the PID dataset.
Previous Roblox ID for the same Discord user when
linkChanged is true.Pending or expired fields
Unique verification session ID.
PID the session belongs to.
Current session state, such as pending or expired.
null until verification completes.linkChanged is true when the Discord user in this PID dataset was
previously linked to a different Roblox account.