Skip to content

Zoom

Zoom Server-to-Server OAuth apps

Set up a Zoom Server-to-Server OAuth app so your workflows can call Zoom without a personal OAuth login

Connect Zoom with a Server-to-Server OAuth app. Activate the app, grant the scopes your workflows need, and add its Account ID, Client ID, and client secret to Sim.

Prerequisites

You need a Zoom admin whose role has permission to view and edit Server-to-Server OAuth apps, plus permission for the scopes the app will use. The Develop option in the Zoom Marketplace only appears for accounts with this permission.

Set up the Server-to-Server OAuth app

1. Create the app

  1. Sign in at marketplace.zoom.us as a Zoom admin, click Develop → Build an app, select Server-to-Server OAuth app, and click Create. Give it a name (e.g. Sim)

  2. On the App Credentials page, copy the Account ID, Client ID, and Client secret — these are the three values you'll paste into Sim

  3. In the Information section, fill in the required short description, company name, and developer name and email — the app can't be activated without them

  4. In Scopes, click Add Scopes and add the admin-level granular scopes your workflows need (see the list below)

  5. In Activation, resolve any remaining blockers and activate the app

2. Choose scopes

Server-to-Server OAuth apps use Zoom's granular scopes with account-level (:admin) variants. Grant only what your workflows use. The set Sim's Zoom tools can draw on is:

Users:

text
user:read:user:admin

Meetings:

text
meeting:read:meeting:admin
meeting:read:list_meetings:admin
meeting:write:meeting:admin
meeting:update:meeting:admin
meeting:delete:meeting:admin
meeting:read:invitation:admin
meeting:read:list_past_participants:admin

Cloud recordings:

text
cloud_recording:read:list_user_recordings:admin
cloud_recording:read:list_recording_files:admin
cloud_recording:delete:recording_file:admin
cloud_recording:delete:meeting_recording:admin

Deleting a specific recording file uses cloud_recording:delete:recording_file:admin. Omitting recordingId deletes the meeting's recordings and requires cloud_recording:delete:meeting_recording:admin. See Zoom's granular scope reference.

Match these against what the Marketplace Scopes picker actually offers — Zoom's granular-scope catalog shows the :admin variants for account-level apps, but names occasionally differ from the user-level scopes Sim's OAuth flow requests. If a picker entry differs slightly from this list, prefer the picker's name for the matching action.

A missing scope surfaces at run time as a 4xx error from the Zoom API naming a scope problem. Add the scope in the app's Scopes section and re-run the workflow — no changes are needed in Sim.

3. Copy the credentials

The Client secret is bearer material for your entire Zoom account, limited only by the app's scopes. Treat it like a password — do not commit it to source control or share it publicly. Sim encrypts it at rest.

Regenerating the Client secret in the Zoom Marketplace invalidates the stored pair. If you rotate it, update the credential in Sim right away.

Add the Server-to-Server app to Sim

  1. Open Integrations from your workspace sidebar

  2. Search for "Zoom" and open it, then click Add to Sim and choose Add server-to-server app

  3. In the Add Zoom server-to-server app dialog, paste the Client ID, Client secret, and Account ID, and optionally set a display name and description

  4. Click Add server-to-server app. Sim verifies the credentials by minting a real access token from Zoom — if it fails, the error tells you whether Zoom rejected the credentials or couldn't be reached. A rejection usually means bad credentials, an app that isn't a Server-to-Server OAuth app, or an app that hasn't been activated.

Use the credential in workflows

Add a Zoom block to your workflow. In the credential dropdown, select the saved Zoom server-to-server app. Configure the selected operation.

The block calls api.zoom.us using a minted access token. Operations use the same API request paths as the OAuth flow, subject to app scopes and account access.

Sim's Zoom tools call the standard api.zoom.us host. Standard commercial Zoom accounts work as-is; Zoom for Government and other regionally partitioned accounts may not be reachable at that host and aren't currently supported with service accounts.

Token behavior

Access tokens minted from the app live for one hour and there is no refresh token — Sim simply mints a new token when one is needed. Zoom explicitly allows multiple concurrently valid tokens, so minting never invalidates workflows already in flight. Account changes can interrupt access:

  • Deactivating the app — all minted tokens die immediately and no new ones can be issued until it's reactivated
  • Regenerating the Client secret — the stored credentials cannot mint new tokens; reconnect the credential in Sim with the new secret

Troubleshooting and rotation

ProblemWhat to check
Token request is rejectedCopy all three values from the app's App Credentials page. Use its opaque Account ID, rather than the numeric account number from your Zoom profile.
Unsupported grant or inactive appConfirm that the credentials belong to a Server-to-Server OAuth app and that it is activated. A regular OAuth app cannot use this grant.
A user-scoped action rejects client credentialsReplace me with the target Zoom user's ID or email address.
Scope errors after a role changeInspect the app's scopes and the creating admin's permissions, restore the required scopes, and retry.

To rotate, regenerate the client secret in App Credentials, then select Reconnect on the saved Zoom credential in Sim and paste the new credentials. Coordinate the change: the old stored secret stops working when it is replaced.

See Zoom's Server-to-Server OAuth guide for activation, role permissions, and token behavior.

Was this helpful?
Suggest an edit