Generated banner for Zoom Oauth
Generated logo for Zoom Oauth

Zoom Oauth

OpenAIOfficialCreated by ZoomDistributed by OpenAI

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • No issues found

From the author

Use when implementing OAuth.
— the description by Zoom

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured approach to implementing Zoom OAuth, covering various app types including user-level, account-level, and server-to-server OAuth. It assists developers in selecting the correct grant flow, managing token lifecycles, and diagnosing common authentication errors. The skill emphasizes secure practices, such as handling refresh tokens as single-use values and maintaining proper scope architecture.

What it does

  • Guides selection of appropriate OAuth grant flows like PKCE or authorization code.
  • Provides workflows for identifying app types and required scopes.
  • Offers best practices for secure token management and refresh token rotation.
  • Assists in troubleshooting common OAuth errors and redirect URI issues.
  • Clarifies the distinction between classic and granular scope usage.
  • Defines standard environment variables required for Zoom API integration.

When to use it

  • When setting up authentication for a new Zoom Marketplace application.
  • When debugging failed authorization requests or token refresh issues.
  • When determining the correct OAuth scopes for specific API endpoints.
  • When transitioning from classic scopes to granular scopes.
  • When implementing server-to-server OAuth for automated account-level tasks.

Advantages

  • Reduces integration errors by providing clear flow selection criteria.
  • Promotes security by enforcing single-use refresh token patterns.
  • Simplifies scope management through structured lookup workflows.
  • Centralizes configuration requirements and environment variable standards.

Usage examples

“How do I implement authorization code flow with PKCE for my public Zoom app?”
The agent will outline the steps to generate a code challenge, initiate the authorization request, and exchange the code for an access token while ensuring PKCE security.
“I am getting an invalid scope error when calling the meeting API. How do I fix this?”
The agent will guide you to verify your app's configured scopes against the endpoint requirements and check if you are using deprecated classic scopes instead of granular ones.
“What is the correct way to handle Zoom refresh tokens?”
The agent will explain the requirement to persist the new refresh token returned by every refresh response and discard the old one to maintain security.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/openai/zoom-oauth/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip zoom-oauth.zip -d .agents/skills

Documentation by Zoom

Zoom OAuth

Use this skill for concrete Zoom authentication implementation and troubleshooting. Prefer setup-zoom-oauth for the first-pass setup plan, then return here for exact flows, scope behavior, refresh handling, and error diagnosis.

Workflow

  1. Identify the app type and actor: user-level OAuth, account-level OAuth, server-to-server OAuth where officially supported, SDK JWT, or Build-platform credentials.

  2. Confirm the target API, SDK, or app surface, because scopes and token audiences differ by surface.

  3. Choose the grant flow: authorization code with PKCE for public clients, authorization code for confidential web apps, device authorization where appropriate, or account credentials for supported account-level automation.

  4. Store refresh tokens as single-use values: persist the replacement refresh token returned by each refresh response before reusing the old one.

  5. Validate requests against redirect URI, account ID, scopes, app publication state, and token expiration before changing application code.

  6. For local development, keep access tokens out of logs and treat refresh tokens as single-use when rotating credentials.

References

Files

references/oauth-errors.md

OAuth Error Messages

Source: https://developers.zoom.us/docs/integrations/oauth/

This table lists OAuth error messages, possible causes, and recommended mitigations.

Error CodeError MessageDescriptionGuidance
4700(empty)The cause can vary depending on the API.Use the tracking ID to find additional information in the logs and contact Zoom for further assistance.
4700Token cannot be empty.The token is missing.Verify that the token is present in the header and that its value is correct.
4700Exception messageThis is a catch all for unexpected errors.Report the error code to Zoom for further assistance.
4702, 4704Invalid client. / Invalid client secret.Client ID does not match authenticated client. The client ID or client secret isn't entered correctly, or the related app doesn't exist.Verify that the client ID and client secret are entered in the header correctly. If they are correct then contact Zoom for further assistance.
4705Grant type is not supported from token endpoint.The grant type is not supported by the token endpoint.Use a valid grant type against https://zoom.us/oauth/token (for example authorization_code, refresh_token, account_credentials, client_credentials, urn:ietf:params:oauth:grant-type:device_code).
4706Client ID or client secret is missing.The client ID and client secret are missing either in the header or in the request parameter.Verify that the client ID and client secret are entered correctly in the header or request parameter.
4706Missing grant type.OAuth requires the grant type, and it is missing in the header.Verify that the grant type is entered in the header.
4709Redirect URI mismatch.The redirect_uri is missing or the value is null or is incorrect.Verify that the redirect_uri is entered correctly.
4711Refresh token invalid.The token scopes do not match with the client scopes.Verify that there isn't a mismatch between the token's scopes and the client's scopes.
4717The app has been disabledThe app has been disabled.Contact Zoom support to enable the app.
4724Exception error message.An invalid JWT token is passed in the header.Verify that the JWT token is correctly signed and that the token passed in the header is valid.
4732Creating authorization code error.The lookup service may be down. ELK logs usually throw a /lookup/v1/indexes POST 5005 Internal Server error.Contact your DNS lookup service provider to verify the server status, or contact Zoom for further support.
4733Code is expiredAuthorization codes have an expiration time of 5 minutes.Regenerate the authorization code.
4734Invalid authorization code.The authorization code is invalid.Regenerate the authorization code.
4735The owner of the token does not exist.The user ID of the token doesn't exist. This might happen if the refresh token was issued for a user who has since been removed from an account. The user ID is stored in the uid field of a token.Verify the uid for the token is valid and entered correctly.
4737Can not find the authentication for the access token.The refresh token isn't found in the DynamoDB table.Contact Zoom and request to reauthorize the app.
4738The token is disabled by admin.An admin turned off pre-approval for the related app for users under an account.Contact Zoom for further support.
4740The token ID is out of the token tolerance range.The maximum number of times a refresh token is allowed to be used has been surpassed. Tolerance errors happen with version 7 tokens. Version 8 and later tokens do not use the tolerance mechanism.Contact Zoom for assistance with reconfiguring the tolerance range.
4741The token has been revoked.This happens when you perform multiple authorizations. With multiple authorizations, the last token issued is considered valid, and the previous ones are invalidated.Make sure you are using the latest and valid authorization token.

Common Issues Quick Reference

SymptomCheck
Empty error (4700)Check tracking ID in logs
Invalid client (4702/4704)Verify Client ID and Client Secret
Grant type error (4705)Use: refresh_token, authorization_code, device_auth, account_credentials
Missing credentials (4706)Ensure Client ID/Secret in header or request params
Redirect mismatch (4709)Verify redirect_uri matches app configuration
Token scope mismatch (4711)Compare token scopes vs client scopes
Code expired (4733)Authorization codes expire in 5 minutes
Invalid code (4734)Regenerate authorization code
Token revoked (4741)Use the most recent token from latest authorization

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Zoom
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/zoom/skills/oauth · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/zoom/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Zoom or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download zoom-oauth.zip