> ## Documentation Index
> Fetch the complete documentation index at: https://nango-marcin-nan-6306-mcp-tool-connections-get.mintlify.site/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.

<Steps>
  <Step id="create-integration" title="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)*.
  </Step>

  <Step id="connect-zoom" title="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.
  </Step>

  <Step id="call-zoom-api" title="Call the Zoom API">
    Let's make your first request to the Zoom API. Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

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

      <Tab title="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({ secretKey: '<NANGO-SECRET-KEY>' });

        const res = await nango.get({
            endpoint: '/v2/users/me',
            providerConfigKey: '<INTEGRATION-ID>',
            connectionId: '<CONNECTION-ID>'
        });

        console.log(res.data);
        ```
      </Tab>
    </Tabs>

    Or fetch credentials with the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

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

  <Step id="implement-nango" title="Implement Nango in your app">
    Follow our [Auth implementation guide](/guides/auth/auth-guide) to integrate Nango in your app.
  </Step>
</Steps>

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

Nango-maintained guides for common use cases.

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

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](/api-integrations/zoom) instead.
</Note>

## 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)</Note>

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

Enable them in your dashboard. Extend and customize to fit your needs.

### Others

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

***
