# Using GraphQL

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

> **Beta**
>
> Zoom GraphQL is in a public beta.

## Zoom GraphQL endpoint

GraphQL only requires one endpoint for all queries and mutations. Here is the Zoom GraphQL endpoint:

`https://api.zoom.us/v3/graphql`

## Authentication

Authenticate using OAuth. Create an [OAuth](/docs/integrations/create/) app or a [Server-to-Server OAuth](/docs/internal-apps/create/) app to get credentials and see [OAuth with Zoom](/docs/integrations/oauth/) for details.

You must have the required [scopes](/docs/api/graphql/graphql-scopes) to access the data in your query or mutation.

## Pagination

Use the `cursor` value to get the next page token, then send it to get the next page of data. See the following samples and the [GraphQL Pagination documentation](https://graphql.org/learn/pagination/) for details.

### Request

```graphql
{
    meetings(userId: "me", first: 10, meetingType: PREVIOUS_MEETINGS) {
        edges {
            id
        }
        pageInfo {
            cursor
        }
    }
}
```

### Response

```json
{
    "data": {
        "meetings": {
            "edges": [
                {
                    "id": 93989529046
                },
                {
                    "id": 92631809138
                },
                {
                    "id": 92849539085
                },
                {
                    "id": 94292260890
                },
                {
                    "id": 99070971365
                },
                {
                    "id": 92260053040
                },
                {
                    "id": 92260053040
                },
                {
                    "id": 92260053040
                },
                {
                    "id": 92260053040
                },
                {
                    "id": 92260053040
                }
            ],
            "pageInfo": {
                "cursor": "mSrvrBJZhdALywcIEb1LmpEMDJ6whNfoSJ2"
            }
        }
    }
}
```

The `cursor` value is the token for the next page. Enter it using the after argument in your next request.

### Request for the next page of values

```graphql
{
    meetings(
        userId: "me"
        first: 10
        meetingType: PREVIOUS_MEETINGS
        after: "DsitdziACFmWHu3nTYiGtaGEjB4P6fsve02"
    ) {
        edges {
            id
        }
        pageInfo {
            cursor
        }
    }
}
```

### Response

```json
{
    "data": {
        "meetings": {
            "edges": [
                {
                    "id": 92260053040
                },
                {
                    "id": 92260053040
                }
            ],
            "pageInfo": {
                "cursor": ""
            }
        }
    }
}
```

If there are no more pages, the cursor value will be empty.

## Resources

For details about rate limits and scopes, see:

-   [Rate limits](/docs/api/graphql/graphql-ratelimits)
-   [Scopes](/docs/api/graphql/graphql-scopes)
