[Zoom Phone API] Unable to download recording transcript (code 12000) for some users, despite transcript موجود in UI

Hi Zoom Team,

We are experiencing an issue when trying to download Zoom Phone call transcripts via API from our Zoom app.

We are using the following endpoint:

GET https://api.zoom.us/v2/phone/recording_transcript/download/{recording_id}

Our app includes the scope:

phone:read:recording_transcript

For most users, this works correctly. However, for a specific subset of users, we consistently receive the following error:

{
  "code": 12000,
  "message": "Unable to transcribe this recording."
}

What we have verified so far:

  • The issue is user-specific: it only happens for certain users, while others work as expected.

  • The recordings exist and are accessible in the Zoom Admin portal.

  • The audio quality is clear and valid.

  • We manually triggered “Transcribe to” from the Zoom Phone admin panel, and the transcript is successfully generated and visible in the UI.

  • We are receiving the webhook event indicating transcription completion.

  • We are using the recording_id from the webhook payload when calling the API.

Observed behavior:

  • Even after the transcript is visible in the Zoom UI, the API still returns code 12000.

  • This only affects some users, not all.

Questions:

  1. Is there any known issue where transcripts are available in the UI but not accessible via the API?

  2. Are there cases where the recording_id from the webhook is not valid for the transcript download endpoint?

  3. Are there any additional permissions, roles, or account-level settings required to access Zoom Phone recording transcripts via API?

Any guidance would be greatly appreciated.

hi @DannyBC ,

Just some basics to start.

You need to be an admin to download from another account. Have you tried this?
phone:read:recording_transcript
will only allow you to download your own data.

Are those users able to see the transcripts that fail from within the Zoom.us - what I can in the real world? - and you say you have.

From everything you said, it does sound like a permissions problem.
Is there a difference in the way those users have been defined in the user licence or the user group section?

Lastly, to go deeper, we will need to look into your account.
I will ask another Zoomie to do this, you could also consider coming to our office hours meetup which is mentioned at the top of the forum.

@elisa.zoom can somebody check this account

thanks

John

Hi John, thanks a lot for your analysis — sharing some additional context from our side.

Regarding:

“You need to be an admin to download from another account. Have you tried this?”

Our app is used by users on Zoom Workplace Business accounts.

When we receive the webhook indicating that a Zoom Phone call transcription is completed, our system uses the OAuth access token of that same user to attempt downloading the transcript.

So in our understanding, this is happening on behalf of the same user who authorized the app, not as a third-party admin trying to access another user’s data.


Regarding:

“Are those users able to see the transcripts that fail from within Zoom?”

We have not yet confirmed this directly with each affected user.

However, we do have admin access to one of the affected accounts, and from the Zoom Admin dashboard we were able to:

  • Locate the call recording

  • Play the audio (which is clear and valid)

  • Manually trigger “Transcribe to”

  • Successfully see the transcript generated and displayed in the UI

So the transcript does exist and is accessible within Zoom.


Regarding:

“Is there a difference in user license or group configuration?”

We compared policies between:

  • a user where the API works correctly

  • a user where it consistently fails

At a high level, we don’t see any obvious differences.

That said, we acknowledge that Zoom Phone configurations are quite extensive, so it’s possible that a subtle difference exists that we haven’t identified yet.


Additional context

We are planning to onboard many users into this app, so our expectation is:

If a user has a Zoom Workplace Business account and grants the required scopes (including phone:read:recording_transcript), the integration should work without requiring additional manual configuration per user.

Otherwise, this would be very difficult to scale operationally.


Request

If someone from the Zoom team could review our account and app configuration, we would greatly appreciate it.

Here is our app:
:backhand_index_pointing_right: https://marketplace.zoom.us/apps/AoDChSL6Tdqd5DFnF-mY-A

We are happy to provide:

  • sample recording_id

  • webhook payloads

  • timestamps of failing calls

  • affected user IDs

Thanks again for your support — looking forward to your guidance.

Hi @DannyBC
Thanks for reaching out to us and thanks @expertswho for jumping in here to help!

This seems a little odd to me. Since you say that the API call works for some users and not for others.
I will send you a DM to gather more details and possibly escalate this so our Engineering team will take a closer look

Please make sure to reply to my DM