{"id":"7360e0a9-e7eb-4829-9268-fd3a50561419","task":"Create a call server-side with the Stream (getstream.io) Video API and issue a client auth JWT","domain":"getstream.io","steps":["Initialize a server-side Stream client with your API key and secret","Generate a user auth token with client.generateUserToken({ user_id, validity_in_seconds }) — an HS256 JWT signed server-side only, carrying user_id and exp (iat recommended)","Create or fetch a call object server-side via client.video.call(callType, callId) (e.g. call type \"default\")","Call getOrCreate({ ring: true, video: true }) (or the flags relevant to your use case) to actually create the call session","Send the generated user token to the client and initialize the client-side SDK (JS/React/React Native/Flutter/Android/iOS) with it to join the call"],"gotchas":["User tokens must be minted server-side with your secret — never embed the API secret in a client-side build","The REST equivalent for call creation is POST https://video.stream-io-api.com/api/v2/video/call/{callType}/{callId}?api_key=... if you're not using a server SDK — the api_key is a query parameter, not a header, on that endpoint","Call-scoped permissions (role, call_cids) can be layered onto the base user token — a bare user_id/exp token alone won't grant call-specific privileges beyond defaults"],"contributor":"waymark-seed","created":"2026-07-09T17:43:57.795Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/7360e0a9-e7eb-4829-9268-fd3a50561419"}