Zoom (Server-to-Server OAuth)

Integrate with the Zoom API using Server-to-Server OAuth, without a user authorization redirect

🚀 Quickstart

Connect to Zoom with Tenklo and see data flow in 2 minutes. This provider uses Zoom's Server-to-Server OAuth (client credentials) flow, so there's no user consent redirect — Tenklo authenticates directly as your own Zoom account.

Create the integration

In Tenklo (free signup), go to Integrations -> Configure New Integration -> Zoom (Server-to-Server OAuth).

Connect Zoom

Go to Connections -> Add Test Connection, then enter your Zoom Account ID, Client ID, and Client Secret. Later, you'll let your users do the same directly from your app.

Call the Zoom API

Let's make your first request to the Zoom API. Replace the placeholders below with your Environment API key, integration ID, and connection ID:

curl "https://api.tenklo.dev/proxy/v2/users/me" \
  -H "Authorization: Bearer <NANGO-API-KEY>" \
  -H "Provider-Config-Key: <INTEGRATION-ID>" \
  -H "Connection-Id: <CONNECTION-ID>"

Or fetch credentials with the Node SDK or API.

✅ You're connected! Check the Logs tab in Tenklo to inspect requests.

Implement Tenklo in your app

Follow our Auth implementation guide to integrate Tenklo in your app.

📚 Zoom (Server-to-Server OAuth) Integration Guides

Nango-maintained guides for common use cases.

Official docs: Zoom OAuth 2.0, Zoom API docs

This integration authenticates directly as your own Zoom account (no end-user consent screen). For an integration where each of your users authorizes their own Zoom account, use Zoom instead.

API gotchas

  • Access tokens expire after 1 hour. Zoom doesn't use a refresh token for this flow — Tenklo simply requests a new access token with your Client ID, Client Secret, and Account ID when the current one expires.
  • The Account ID comes from your Server-to-Server OAuth app's build page in the Zoom Marketplace — it's different from your Client ID and Client Secret.
  • Scopes are granted per Server-to-Server OAuth app in the Marketplace (Scopes tab), not requested at connection time — there's no consent screen for this flow.
Contribute API gotchas by editing this page

🧩 Pre-built syncs & actions for Zoom (Server-to-Server OAuth)

Explore Nango-provided actions in your dashboard. Extend and customize them to fit your needs.

Others

Function nameDescriptionTypeSource code
cancel-data-requestCancel a pending data export/deletion request.Action🔗 Github
create-data-requestFile a GDPR-style data export or deletion request for a specific internal user by emailAction🔗 Github
delete-information-barrier-policyDelete an information barrier policy.Action🔗 Github
get-account-detailsGet the connected account's own basic details (plan type, seats, owner, creation date).Action🔗 Github
get-aic-roi-kpisGet account-wide AI Companion return-on-investment KPI metricsAction🔗 Github
get-data-request-filesList the downloadable export files produced by a completed EXPORT data request.Action🔗 Github
get-webinar-participant-qosGet QoS data for one specific participant of a specific webinar.Action🔗 Github
list-data-requestsList the history of data export/deletion requests filed on this account.Action🔗 Github
list-sub-accountsList sub-accounts managed by this master account.Action🔗 Github
list-trusted-domainsList domains trusted by this account (used for auto-provisioning/SSO).Action🔗 Github
update-lock-settingsUpdate account-wide locked settings.Action🔗 Github
update-registration-settingsUpdate account-wide webinar registration settings.Action🔗 Github
upload-virtual-background-fileUpload a new account-wide virtual background image file. Must be implemented as a proxy script, not an action, due to multipart/form-data requirements.Action🔗 Github
data_requestsSync the history of data export/deletion requests filed on this account.Sync🔗 Github
sub_accountsSync sub-accounts managed by this master account.Sync🔗 Github

On this page