I am getting a Request Body should be a valid JSON object
error when attempting to create a recurring webinar but unfortunately this message is too vague and doesn’t help me figure out what’s wrong with the JSON I am submitting.
REQUEST:
POST https://api.zoom.us/v2/users/8lzIwvZTSOqjndWPbPqzuA/webinars
{
"type": 9,
"topic": "ZoomNet Integration Testing: recurring webinar",
"agenda": "The agenda",
"password": "p@ss!w0rd",
"start_time": "2025-09-08T00:12:39Z",
"duration": 30,
"recurrence": {
"type": 2,
"weekly_days": [
1,
5
],
"end_times": 2
},
"timezone": "UTC",
"settings": {
"approval_type": 1,
"registration_type": 1,
"audio": "telephony",
"auto_recording": "local"
},
"tracking_fields": [
{
"field": "field1",
"value": "value1"
},
{
"field": "field2",
"value": "value2"
}
]
}
RESPONSE:
HTTP/1.1 400 Bad Request
Date: Fri, 08 Aug 2025 00:13:00 GMT
x-zm-trackingid: v=2.0;clid=us06;rid=WEB_3c76dbbfe6cf00095c34ba906cab3202
{
"code":300,
"message":"Request Body should be a valid JSON object."
}
After much trial and error I figured out the problem: the weekly_days
property is expected to be a comma-separated string rather than an array of integer.
It so happens that about a month ago @elisa.zoom helped me with a problem when creating recurring events. Elisa pointed out that I was specifying weekly_days as a comma separated string but the API was expecting an array of integers.
The solution to the problem I am reporting today conflicts with the advice I received from @elisa.zoom in the previous case. If I understand the situation correctly, there are some scenarios (such as when creating recurring webinars) where weekly_days must be specified as a comma-separated string and there are other scenarios where weekly_days property must be specified as an array of integers (such as when creating a recurring event for example).