Generate a Jitsi as a Service (JaaS) JWT and launch an authenticated meeting via the IFrame API
domain: developer.8x8.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
In the JaaS Console, create an API key and download its RS256 private key once (8x8 does not retain a copy)
Build a JWT header with alg: RS256, kid set to "<AppID>/<APIKeyID>", and typ
Set the payload's fixed claims aud: "jitsi" and iss: "chat", plus sub set to your AppID (format vpaas-magic-cookie-<uuid>), room (name, regex, or "*"), exp, and nbf
Populate context.user with id, name, avatar, email, moderator, and hidden-from-recorder as needed, and context.features to toggle livestreaming/recording/transcription/sip-inbound-call/sip-outbound-call per meeting
Sign the JWT with the downloaded RS256 private key
Load https://8x8.vc/<AppID>/external_api.js and instantiate JitsiMeetExternalAPI("8x8.vc", { roomName: "<AppID>/<room>", jwt: <token>, ... }) — the JWT is passed as a JS config property, not a URL query parameter
Known gotchas
The kid header must be exactly "<AppID>/<APIKeyID>" — omitting the AppID prefix is a common cause of silent auth failures
The RS256 private key is shown only once at creation in the JaaS Console; losing it means generating a new API key
roomName must be prefixed with the AppID ("<AppID>/<room>"), not just the bare room name, or the client won't match the token's room claim
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?