I am getting a 403 forbidden error response when making a POST request to /solutions/virtualEvents/webinars/{webinarId}/registrations to create a webinar registration. I have confirmed in Graph Explorer that I have allocated the correct permission (VirtualEvent.ReadWrite) and have used the correct body:
Request:
{
method: 'POST',
headers: {
Authorization: 'Bearer eyJ0eXAiOiJKV1Qi....',
'Content-Type': 'application/json',
'Accept-Language': 'en-GB'
},
body: {
"preferredTimezone":"GMT Standard Time",
"preferredLanguage":"en-GB"}'
},
}
Response:
Response {
status: 403,
statusText: 'Forbidden',
headers: Headers {
'transfer-encoding': 'chunked',
'content-type': 'application/json',
'content-encoding': 'gzip',
vary: 'Accept-Encoding',
'strict-transport-security': 'max-age=31536000',
'request-id': '<PII removed>',
'client-request-id': '<PII removed>',
'x-ms-ags-diagnostic': '{"ServerInfo":{"DataCenter":"UK South","Slice":"E","Ring":"5","ScaleUnit":"001","RoleInstance":"LN2PEPF000114DE"}}',
'scenario-id': '<PII removed>',
date: 'Fri, 09 Jan 2026 12:36:50 GMT'
},
body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true },
bodyUsed: false,
ok: false,
redirected: false,
type: 'basic',
url: 'https://graph.microsoft.com/v1.0/solutions/virtualEvents/webinars/<PII removed>/registrations'
}