Webhook Event JSON Responses

I’m using ASP .NET Core 2.1 and created a Web API endpoint to receive Webhook event notifications. I first tested using Swagger and Postman, expecting the JSON in the HttpPost body to be formatted according to these documents: https://developer.zoom.us/docs/webhooks/ and https://developer.zoom.us/docs/webhooks-v2/  so everything was working locally.

When I published the application to make my endpoint publicly accessible, the JSON objects I received from the meeting_ended and participant_left events were in a different format. Some events appear to send a uniquely formatted JSON objects based on event type, but I was not able to find any documentation on the Zoom website. Is this documentation available?

JSON for meeting_ended:

**NOTE - For some reason “end_time” is not populated in the meeting_ended event.

{  
    “payload” :{  
       “account_id” :"—REMOVED–",
       “meeting” :{  
          “duration” :60,
          “start_time” :“2018-09-07T03:48:13Z”,
          “timezone” :“America/New_York”,
          “end_time” :"",
          “topic” :“Test in Azure”,
          “id” :“528888737”,
          “uuid” :"—REMOVED–",
          “host_id” :"—REMOVED–"
      } 
   },
    “event” :“meeting_ended”
}

JSON for participant_left

{
    “payload”:{
        “meeting”:{
                “duration”:60,
                 “start_time”:“2018-09-07T03:48:13Z”,
                 “timezone”:“America/New_York”,
                 “end_time”:"",
                 “topic”:“TestinAzure”,
                 “id”:528888737,
                 “uuid”:"—REMOVED–",
                 “host_id”:"—REMOVED–",
                 “participant”:{
                     “leave_time”:“2018-09-07T03:52:05Z”,
                     “user_id”:"—REMOVED–",
                     “user_name”:“AdamGilmore”
                 }
             }
         },
    “event”:“participant_left”
}

 

Regards,

Adam

Hi Adam, 

Yes we do have documentation available here for Webhooks https://devdocs.zoom.us/docs/subscribing-to-zoom-events-1 and the payloads for webhooks here - https://devdocs.zoom.us/docs/marketplace-reference. 

Thanks

Hi Michael,

Thank you for the links! I don’t see “end_time” as part of the meeting_ended payload. Any reason why this would be blank?

Regards,

Adam

Hi Adam, 

Some of our Webhook payloads don’t include all the meeting information by design and its similar to the meeting API where we don’t include the end_time as well. I can reach out to the Engineers to see if they can include it in a future release. 

Thanks

Hey everyone,

Recently we launched Zoom Rivet for Node.js. Zoom Rivet is Zoom’s Official API Library and API Wrapper.

We currently support Node.js. Java, Python, GO, C#, and other languages are coming soon or being considered.

Zoom Rivet is available on npm and can be used to automatically handle OAuth and easily call Zoom APIs like Meetings, Phone, Users, Team Chat, Chatbot, Accounts, Video SDK, and more. It even includes a Webhook server to easily receive Zoom Webhooks.

npm install @zoom/rivet

Example that handles OAuth and calls a Meeting API and listens to a webhook event:

import { MeetingsS2SAuthClient } from "@zoom/rivet/meetings";

(async () => {
   const meetingsClient = new MeetingsS2SAuthClient({
      clientId: process.env.CLIENT_ID,
      clientSecret: process.env.CLIENT_SECRET,
      webhooksSecretToken: process.env.WEBHOOKS_SECRET_TOKEN,
      accountId: process.env.ACCOUNT_ID
   });

   // Rivet Events and Endpoints Go Here

   meetingsClient.endpoints.meetings.getMeeting({
      path: { meetingId: "MEETINGID" }
   }).then((response) => {
      console.log(response)
   });

   meetingsClient.webEventConsumer.event("meeting.started", (response) => {
      console.log(response.payload);
   })

   const server = await meetingsClient.start();

   console.log(`Zoom Rivet Events Server running on: ${JSON.stringify(server.address())}`);
})();

NPM:

Docs:

Sample App:

For feedback, requests, or questions please refer to the Rivet Devforum Category:

Best,
Tommy