eventToken scoped to that attendee.
Endpoint
Authorization: Bearer <accessToken> (your runtime client token)
| Path param | Description |
|---|---|
eventId | The event ID returned by Start Event |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
attendeeRef | string | — | An optional identifier you assign to this attendee (e.g. username, seat number). Used for tracking — not visible to the attendee. |
Response
| Field | Description |
|---|---|
eventToken | Attendee-scoped Bearer token. Pass this to the audience web frontend so it can authenticate audience-side API calls |
expiresIn | Token lifetime in seconds |
Error responses
| Status | Code | Meaning |
|---|---|---|
401 | INVALID_RUNTIME_CLIENT | Runtime client token missing or invalid |
403 | EVENT_NOT_FOUND_OR_ENDED | The event doesn’t exist or has already ended |
403 | RUNTIME_CLIENT_NOT_AUTHORIZED | Token not authorized for this event’s visual |
Typical flow
This call is usually made by the audience web frontend (the page your audience visits after scanning the QR code), not directly from Unreal Engine. The frontend calls your visual’s backend (or a serverless function you provide), which calls/join with the runtime client token and forwards the eventToken back to the attendee’s browser.

