[ZoomRooms] Schedule meeting callback returns a bad formatted payload

I’m trying to schedule a meeting in a Zoom Room using the API, but the request that hits the callback endpoint has the payload in a wrong format, instead of a JSON, I’m receiving request_id=60cc5021-dae4-4eb8-959e-a2811b2115f9&meeting_number=

Which Endpoint/s?
Schedule, from Zoom Rooms API

How To Reproduce (If applicable)
Steps to reproduce the behavior:

  1. URL: POST https://api.zoom.us/v2/rooms/{roomId}/meetings
    Body: { jsonrpc: ‘2.0’,
    method: ‘schedule’,
    { callback_url: ‘http://ac081f69.ngrok.io/api/v1/webhooks/zoomRooms?id=123123123’,
    { topic: ‘Testing User’s booking.’,
    start_time: ‘2019-10-06T21:15:00Z’,
    duration: 15 } } }
    Header: JWT token
  2. Wait for callback
  3. Callback body has a string instead of a JSON

Hey @addison,

We are coming out with new Zoom Room APIs soon. That endpoint unfortunatly is not REST and will not return JSON.

You can use our GET /rooms to get rooms in a JSON response.

Be sure to track our releases here for the Zoom Rooms API update.



Is there any ETA for the new API?
What I need is to get the scheduled meeting’s info, to give our customers the join URL, is there any other way to get it?


Hey @addison,

Have you tried specifying the JSON response instead of the XML response to POST https://api.zoom.us/v2/rooms/{roomId}/meetings?

Can you send me the string you get back?


So you’re saying I shouldn’t use these endpoints at all, right? https://marketplace.zoom.us/docs/guides/zoom-rooms/zoom-rooms-api

So instead of getting {“request_id”: 123, “meeting_number”:"1234567890″}, I get something like “request_id=123&meeting_number=”. I can make a workaround to parse it before it gets to the express middleware, but I’d rather have an official solution for this :slight_smile:

1 Like

Hey @addison,

Those endpoints will be updated soon with new ones.

Have you tried setting a "Accept": "application/json" header?

By default the Zoom Room endpoints return an XML string.


I’ve set the jsonrpc: '2.0' field, but I can’t send headers for the callback_url in POST https://api.zoom.us/v2/rooms/${roomId}/meetings. Or can I?

Hey @addison In your initial post request, in your headers try setting:

   "Accept": "application/json"

Let me know if you get JSON back instead of the string.


It has the same effect, sending the Accept header in the same way I send the Authorization does not change the outcome of the request fired from your side

Thanks for letting me know @addison.

My best suggestion is to wait for the updated Zoom Rooms APIs, and use the work around you suggest above.


Ok, thanks!!

Is there an ETA for this?

Also, I’ve just tried the workaround, and it won’t work because I still get the answer like request_id=123&meeting_number= hehe

Hey @addison,

As a work around I would suggest using GET /rooms which can return up to 300 rooms at a time, and can be filtered by status.

Then you can filter through the list to get the specific room you want.


Mmm I think that’s not going to work, because what I need is the meeting I’ve just scheduled, which is not sent on the GET /rooms response

Hey @addison,

Have you tried using the Meeting Created Webhook?

This will send a payload automatically to your application after the meeting is created.


Ok, that one worked!!

Now I have a different issue… I see the meeting.created event, and then immediately I receive a meeting.deleted, so I can’t join any of the meetings I create. Do you want me to create a new ticket for this? Or can we solve it right here?

1 Like

@addison Awesome!

Yes please create a new topic for that :slight_smile:


Ok, thank you so much for your help and patience!!

1 Like

You are so welcome :slight_smile: