Inconsistencies with API Registrations: Participants Not Visible on Zoom

I am experiencing an intermittent issue while using your APIs to register participants for webinars. My system shows that the registration was successful (data is correctly sent via the APIs), but some users do not appear in the attendee list on Zoom.

I have conducted multiple tests with my account and others, and in all cases, the registration seems to work correctly. However, some users report that they are not registered.

Could you help identify the issue?

the php script is something like this:

$apiUrl = "https://api.zoom.us/v2/webinars/" . $webinarId . "/registrants";
$accessToken = getZoomBearerToken();

$data = [
    "email" => $email,
    "last_name" => $lastName,
    "first_name" => $firstName
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $accessToken,
    "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

Thank you in advance for your assistance.
Best regards

Hi @ferroliacademy
Thanks for reaching out to us, allow me to run a couple of tests on my end to see if I can replicate this.
I have one question, are you calling the get webinar/webinarIdD/registrants endpoint once the webinar is finished? when are you retrieving this data?
Please share some sample responses so I can take a look at the responses you are getting. That’d be awesome!

Hi,
To add onto @elisa.zoom response.
This could happen if users have already been approved through an invitation sent via the Zoom portal.
To fix this, you could add a step to check if the user is already registered before trying to register them again.
Cheers,
Harsh

Hi @elisa.zoom,

Thank you for your prompt response.

Our users can register only if the webinar has not started.

Here is an example of the response we receive:

{
  "registrant_id": "Muat7lyBStWOuRCLiJ1knA",
  "id": 87523992719,
  "topic": "WEBINAR AGENZIE - PRESCRIZIONI DI SICUREZZA PER OPERARE SULLE POMPE DI CALORE AD R290",
  "start_time": "2025-01-27T16:00:00Z",
  "join_url": "https://us02web.zoom.us/w/87523992719?tk=JRHLNmqhG5hi5ol3szrrNnb3R7RVuEeAL7ZdJ54RXSs.DQcAAAAUYNYkjxZNdWF0N2x5QlN0V091UkNMaUoxa25BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&uuid=WN_SEAoiECETwSbrznygZtFiA"
}

The issue is that I cannot reproduce the bug where users appear as registered in our system but are not listed as registrants on Zoom. Unfortunately, I cannot confirm if this response is from one of those cases because I haven’t been able to replicate the problem.

To answer @Fario_Consulting’s question: users are never invited directly through the Zoom portal.

Thanks again

Hi @ferroliacademy
Thanks for sharing more details about this issue.
So, are you having issues getting the list of registrants to a webinar using this endpoint?

You are not getting the right registrants and you added them manually?

Is my understanding correct?

@elisa.zoom not exactly. When a user registers, two distinct actions are triggered:

  1. An insert operation on a table in my database for internal management purposes.
  2. The API call mentioned above to register the user on Zoom, where the webinar actually takes place.

Registration is only allowed through my portal and only if the webinar hasn’t already started.

The issue arises when the user is successfully added to my system (point 1) but not registered on Zoom (point 2).

Unfortunately, I’m unable to replicate the reported bug because every time I test the process, it works without any issues.

Interesting @ferroliacademy
Would you be able to grab a tracking ID found in the response headers and the request URL of this issue when you face it again?

Thanks @elisa.zoom,
I’m not sure I fully understand which data you need. Can I find this data in the response example I sent earlier?