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.
In Tenklo (free signup), go to Integrations -> Configure New Integration -> Zoom (Server-to-Server OAuth).
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.
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.
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.
-
How do I link my account?
Create a Server-to-Server OAuth app in Zoom and connect it to Tenklo -
How to set up webhooks with Zoom (Server-to-Server OAuth) on Tenklo
Receive real-time notifications for meeting, webinar, and recording events
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.
🧩 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 name | Description | Type | Source code |
|---|---|---|---|
cancel-data-request | Cancel a pending data export/deletion request. | Action | 🔗 Github |
create-data-request | File a GDPR-style data export or deletion request for a specific internal user by email | Action | 🔗 Github |
delete-information-barrier-policy | Delete an information barrier policy. | Action | 🔗 Github |
get-account-details | Get the connected account's own basic details (plan type, seats, owner, creation date). | Action | 🔗 Github |
get-aic-roi-kpis | Get account-wide AI Companion return-on-investment KPI metrics | Action | 🔗 Github |
get-data-request-files | List the downloadable export files produced by a completed EXPORT data request. | Action | 🔗 Github |
get-webinar-participant-qos | Get QoS data for one specific participant of a specific webinar. | Action | 🔗 Github |
list-data-requests | List the history of data export/deletion requests filed on this account. | Action | 🔗 Github |
list-sub-accounts | List sub-accounts managed by this master account. | Action | 🔗 Github |
list-trusted-domains | List domains trusted by this account (used for auto-provisioning/SSO). | Action | 🔗 Github |
update-lock-settings | Update account-wide locked settings. | Action | 🔗 Github |
update-registration-settings | Update account-wide webinar registration settings. | Action | 🔗 Github |
upload-virtual-background-file | Upload 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_requests | Sync the history of data export/deletion requests filed on this account. | Sync | 🔗 Github |
sub_accounts | Sync sub-accounts managed by this master account. | Sync | 🔗 Github |