> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 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 Nango 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 — Nango authenticates directly as your own Zoom account.

**1. Create the integration**

In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *Zoom (Server-to-Server OAuth)*.

**2. Connect Zoom**

Go to [Connections](https://app.nango.dev/dev/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.

**3. Call the Zoom API**

Let's make your first request to the Zoom API. Replace the placeholders below with your [Environment API key](https://nango.dev/docs/reference/backend/http-api/api-keys.md), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

> [tab] cURL
>
> ```bash theme={null}
> curl "https://api.nango.dev/proxy/v2/users/me" \
>   -H "Authorization: Bearer <NANGO-API-KEY>" \
>   -H "Provider-Config-Key: <INTEGRATION-ID>" \
>   -H "Connection-Id: <CONNECTION-ID>"
> ```

> [tab] Node
>
> Install Nango's backend SDK with `npm i @nangohq/node`. Then run:
>
> ```typescript theme={null}
> import { Nango } from '@nangohq/node';
>
> const nango = new Nango({ apiKey: '<NANGO-API-KEY>' });
>
> const res = await nango.get({
>     endpoint: '/v2/users/me',
>     providerConfigKey: '<INTEGRATION-ID>',
>     connectionId: '<CONNECTION-ID>'
> });
>
> console.log(res.data);
> ```

Or fetch credentials with the [Node SDK](https://nango.dev/docs/reference/backend/backend-sdk/node.md#get-a-connection-with-credentials) or [API](https://nango.dev/docs/reference/backend/http-api/connections/get.md).

✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

**4. Implement Nango in your app**

Follow our [Auth implementation guide](https://nango.dev/docs/guides/auth/auth-guide.md) to integrate Nango in your app.

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

Nango-maintained guides for common use cases.

* [How do I link my account?](https://nango.dev/docs/api-integrations/zoom-cc/connect)\
  Create a Server-to-Server OAuth app in Zoom and connect it to Nango

* [How to set up webhooks with Zoom (Server-to-Server OAuth) on Nango](https://nango.dev/docs/api-integrations/zoom-cc/webhooks)\
  Receive real-time notifications for meeting, webinar, and recording events

Official docs: [Zoom OAuth 2.0](https://developers.zoom.us/docs/integrations/oauth/), [Zoom API docs](https://developers.zoom.us/docs/api/)

> [!NOTE]
>
> 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](https://nango.dev/docs/api-integrations/zoom.md) instead.

## API gotchas

* Access tokens expire after 1 hour. Zoom doesn't use a refresh token for this flow — Nango 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.

> [!NOTE]
>
> Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/api-integrations/zoom-cc.mdx)

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

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

### Others

| Function name | Description | Type |
| - | - | - |
| `cancel-data-request` | Cancel a pending data export/deletion request. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-data-request` | File a GDPR-style data export or deletion request for a specific internal user by email | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-information-barrier-policy` | Delete an information barrier policy. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-account-details` | Get the connected account's own basic details (plan type, seats, owner, creation date). | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-aic-roi-kpis` | Get account-wide AI Companion return-on-investment KPI metrics | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-data-request-files` | List the downloadable export files produced by a completed EXPORT data request. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-webinar-participant-qos` | Get QoS data for one specific participant of a specific webinar. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-data-requests` | List the history of data export/deletion requests filed on this account. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-sub-accounts` | List sub-accounts managed by this master account. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-trusted-domains` | List domains trusted by this account (used for auto-provisioning/SSO). | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-lock-settings` | Update account-wide locked settings. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-registration-settings` | Update account-wide webinar registration settings. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `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. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `data_requests` | Sync the history of data export/deletion requests filed on this account. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `sub_accounts` | Sync sub-accounts managed by this master account. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.