Docs:read:export:admin scope added but missing from issued Server-to-Server OAuth access token

API Endpoint(s) and/or Zoom API Event(s)

  • GET /v2/docs/files/{fileId}/content (Zoom Docs Export API, released 2026-03-30)
  • POST /v2/oauth/token (Server-to-Server OAuth, grant_type=account_credentials)

Description

I have a Server-to-Server OAuth app and want to call the Zoom Docs Export API to
retrieve the content of an AI Companion meeting summary doc. I added the scope
docs:read:export:admin in the app’s Scopes tab (it shows as added/checked), but
the access token issued via the account_credentials grant does not include this
scope at all — confirmed by decoding the JWT “scope” claim, no “docs” scope appears.

Other scopes on the same app (cloud_recording:read:meeting_transcript:admin,
cloud_recording:read:list_user_recordings:admin, cloud_recording:read:recording:admin,
meeting:read:summary:admin) work correctly and do appear in the issued token.

I’ve already tried deactivating and reactivating the app after adding the scope, but
the issue persists.

Error?

401 Unauthorized

{ “code”:104, “message”:“Invalid access token, does not contain scopes:[docs:read:export]” }

How To Reproduce

  1. Request:
    Method: GET
    Path: /v2/docs/files/{fileId}/content (Zoom REST API base URL)
    Headers: Authorization: Bearer {a
    Body: none

  2. Authentication method: Server-to-Server OAuth (account_credentials grant),
    app type “Account-level app”

  3. Steps:

    • Create Server-to-Server OAuth app
    • Add scope docs:read:export:admi
    • Activate app (also tried deactivate + reactivate after adding scope)
    • Request access token via POST /count_credentials)
    • Decode returned JWT’s “scope” claim → docs:read:export:admin is absent
    • Call GET /v2/docs/files/{fileId

Is docs:read:export:admin / the Zoehind an
account-level entitlement (plan or feature flag) separate from the app’s scope
configuration? If so, how can that b

This specific 104 error points to an app-type and scope mismatch. A Zoom engineer confirmed in a near-identical S2S case that this endpoint does not work with Server-to-Server OAuth because S2S has no associated compatible scope. Instead create a General App and use Zoom’s authorization-code OAuth flow. The clearest supported path is a user-managed app with docs:read:export authorized by the document owner. For account-wide unattended access, use an admin-managed General App or request explicit S2S support from Zoom, since there is no documented feature flag that enables this endpoint for account_credentials tokens.

For an alternative way to capture and process meeting content, Recall.ai’s Meeting Bot API handles the meeting ingestion layer.