Meeting.rtms_started webhook missing WebSocket URL / Stream ID

The RTMS meeting.rtms_started webhook is expected to include the connection details (server_urls, rtms_stream_id, and signature) under the nested payload.payload object. If your handler is only looking at the outer wrapper, you can end up logging just event plus whatever fields you happen to surface

Also make sure you’re correctly handling Zoom’s webhook validation ping: when the request includes the x-zoom-webhook-validator header you must echo plainToken, and only treat real POST bodies as RTMS events

If parsing/validation is correct and the RTMS fields are genuinely absent, it usually points to account/user enablement: RTMS access can be toggled by Zoom (see a real example where support enabled a trial in the forum thread on missing RTMS events/scopes)