Push Notification Statuses

I am a little bit confused about Zoom’s push notifications.

While they seem to push out just fine, the documentation says that Zoom will send events for “meeting start, meeting end and recording ready events”. In my testing, I have seen ‘status’ with 4 different values: STARTED, ENDED, JBH, and JOIN.

I can guess that…

  • STARTED = meeting started
  • ENDED = meeting ended
  • JBH = join before host(?)

I do not know what “JOIN” would mean (how can a host rejoin the same uuid meeting?), and I have yet to see a status that indicates a recording is ready on cloud storage.

Can you clarify what these statuses mean, and if the recording-ready event is functioning, and if it is, what the status would be?



Hi Carl,


I will get some more info on the JBH/JOIN statuses, however since they are undocumented, consider them unofficial/experimental for the moment and only use the STARED/ENDED statuses.

I’m going to file a bug for the recording ready status as well. I didn’t get the notification in my testing either.

Hi Joshua,

I noticed that on your (new?) GitHub documentation site, that JBH and JOIN statuses are documented: https://zoom.github.io/api/#webhooks

I had a follow-up question about the reliability of Zoom push notifications. While the documentation says to check each notification with an API call (which seems redundant), what is the confidence level that all meetings will have their status pushed? I ask because I was running a php script to monitor our started and ended sessions. After a busy morning of about 800 classes, I noticed we had about a dozen meetings that had “STARTED” statuses, but no matching “ENDED” status.

Is there any condition that would prevent Zoom from sending the ENDED status?


Hi Carl,


Yes that is new documentation, we will be moving to that in the near future.

I believe what is meant by that statement is to not action on the notification, meaning don’t update your database or send users notifications based on that push notification. Instead use it as such, a notification to your system, so for example; you receive a meeting started notice, before you update your records or email participants you should verify by doing a REST call to get meeting info to validate, in case it has changed since being notified or worst case the notification was spoofed by a third party.


I do not know of any case. Can you shoot me some meeting IDs and we can investigate. joshua.woodward@zoom.us

Hi Carl,

Looks like you have to turn on a setting for recording ready currently.


Recording > “Push notification to subscription URL when a cloud recording is available”

Hi Joshua,

Thanks for the follow-up … when did that option appear? It seems new to me, and we do a lot of recording!

As for my issue, the code has been taken down for now, so when we re-enable it (and if we get the issue again), I’ll give you a poke!

I’ve enabled the setting and received the notification for recording completed but the format is completely different to the documentation. There is no status or id, there is ‘type’ which seems like it should be ‘status’ and ‘content’ which is a urlencoded version of the json representing the meeting but with a file_path property rather than the download_url and play_url I would expect.

Is this going to be the behaviour going foward or likely to change to match the documentation?

Hi James,


The response is inconsistent with the other notifications, I’m working to get it fixed. Please refer to this Gist for a workaround (example in php, concept is the important thing https://gist.github.com/joshuawoodward/35ee7f4b220f88b6559587cb9fbdab02


Hope to get the issue resolved ASAP so that the notification matches the others.