I’m implementing the new AI Call Summary APIs from the April 14, 2025 Phone Changelog and I’m encountering a recurring issue when trying to retrieve AI call summaries.
Despite including the required scope (phone:read:ai_call_summary:master) in my Server-to-Server OAuth app, the following response is returned when I make a request to:
GET /v2/accounts/{accountId}/phone/user/{userId}/ai_call_summary/{aiCallSummaryId}
Response:
{
"code": 104,
"message": "Invalid access token, does not contain scopes: [phone:read:ai_call_summary:master]."
}
Confirmations:
The scope is listed under the app’s scopes in the Zoom Marketplace dashboard.
A fresh access token is generated after scope changes.
I’ve re-authorized the app and double-checked that the new token is being used.
I’ve confirmed I’m not mixing dev vs prod environments.
Thanks in advance — looking forward to resolving this so I can use the new AI Call Summary features as documented.
Hi @elisa.zoom , I’ve tried using the request URL as suggested, however on the S2SOAuth it still gives me an Error 403 Forbidden, when I should have account level access to all.
{
"code": 403,
"message": "You do not have permission"
}
i.e. I can manage everything in the organisation. I had thought this would be considered the “master” account.
Our goal ultimately is the ability to pull meeting summaries for a given Call ID for everyone in the organisation through S2S Oauth through the organisation’s admin account.
Anyhow, using the user API endpoint
GET
/phone/user/{userId}/ai_call_summary/{aiCallSummaryId}
instead of account endpoint results in this error when passing /me for the {userId}:
{
"code": 124,
"message": "You do not have permission.",
"status": 401,
"statusText": "Unauthorized"
}
and the following when passing a valid user id:
{
"code": 403,
"message": "You do not have permission.",
"status": 403,
"statusText": "Forbidden"
}
Ideally, we would prefer a way to not require the userId to be obtained - I believe the aiCallSummaryId would be sufficient given that my admin account should have access to all user accounts managed by it.
We have the 1:1 same setup and goal as you do. Will be interesting how and if this can be solved.
We want to scrape the AI Summary ID with WebHook, then a GetRequest for the Summary itself and reveal the Call ID to get the phone number, which should be searched in our CRM to transmit the summary there.
Yet the issue we face is the authentication with OAuth at the start …
Nonethless, since you’re able to access the call summary with the correct scopes with general OAuth app as you showed here, I believe there may be a granular scopes issue specific to S2S.
@elisa.zoom , did you open a ticket for this already or should I?
@kslowpes@JakeJ can you confirm if you have a master account set up? If not, can you please query again with the admin scope like @tamn shared with their example?
Want to confirm if I need to also ping engineering about there being an issue with the master scope as well.
Additionally, can you all please share your zm-tracking-id from the response header of the requests where you’ve received the error?
Wanted to update on the scopes (doesn’t affect/solve existing issue) - I got confused between :admin and :master because I couldn’t see the :master scope in marketplace.
Turns out what happened was we had another user set as “owner”, and our shared team account was only an admin. However, being an admin with the :admin scope was sufficient for all other API endpoints when querying information regarding sub-accounts.
That said, even with the :master scope assigned and generating a fresh new token
Hi @tamn@kslowpes@krautpotato I am checking to see why it woulds with General OAuth but not S2S. If this is expected, awaiting justification (ZSEE-167355).
Additionally @tamn@krautpotato can you please respond with the latest:
I am checking to see why it woulds with General OAuth but not S2S
Just re-reading one of your previous messages - sorry, I haven’t confirmed that it worked with general Oauth .
My response in the other thread was only pointing out what the intended usage is based on Zoom’s documentation, as I’ve spoken to people who are unsure of how to retrieve the ai_call_summary_id (not yet documented in the /phone/call_history_detail endpoint), whilst also noting a caveat of S2S not working. I haven’t confirmed that general Oauth works.
{“code”:403,“message”:“You do not have permission.”}
I’ve followed steps to get the S2S OAuth and scopes for admin/master and still get this for every call to /phone/user/{userId}/ai_call_summary/{aiCallSummaryId}
For what it’s worth, I’m able to access the AI call summary for my own account, but I’m still unable to access for any other users. @gianni.zoom is this issue being worked on by the devs? Thank you.
@gianni.zoom - I implemented General OAuth and still no difference - it does not work with General OAuth or S2S for me. I don’t think anyone has stated that it works with General OAuth. I just went back through this, and the referenced, forum topics again. Hopefully this helps prioritize a fix?