# Using granular scopes to request user data

Source: https://developer.nylas.com/docs/dev-guide/scopes/

As you work with Nylas, you'll need to use scopes to control the level of access Nylas has to your users' data.

## What are scopes?

Granular scopes represent sets of permissions you request from your users, on a per-provider basis. Each provider has its own set of scopes, and your users either approve or reject them when they authenticate with your Nylas application.

> **Info:** 
> **IMAP connectors don't support scopes**. For more information, see [Creating grants with IMAP authentication](/docs/v3/auth/imap/).

## Nylas API scopes

Each of the Nylas APIs requires different scopes to function properly. The tables in the following sections list the scopes you need to work with specific Nylas features.

All scopes must include the fully-qualified URI path for the provider. The tables shorten the full scope URIs for space reasons, so be sure to add the provider prefix when requesting scopes.

### Messages API scopes


All scopes except `https://mail.google.com/` must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                             | Required scopes   | Other scopes                             |
| ------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | ---------------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/messages`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`                               | `/gmail.readonly` | `/gmail.modify`                          |
| `PUT /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`                                                                              | `/gmail.modify`   | —                                        |
| `DELETE /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`                                                                           | `/gmail.modify`   | `https://mail.google.com/` (hard-delete) |
| `POST /v3/grants/<NYLAS_GRANT_ID>/messages/smart-compose`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>/smart-compose` | `/gmail.readonly` | `/gmail.modify`                          |
| `PUT /v3/grants/<NYLAS_GRANT_ID>/messages/clean`                                                                                     | `/gmail.readonly` | —                                        |
| `POST /v3/grants/<NYLAS_GRANT_ID>/messages/send`                                                                                     | `/gmail.send`     | `/gmail.compose`<br/>`/gmail.modify`     |

> **Info:** 
> **You need to request the `/gmail.send` scope if you want to schedule messages to be sent in the future**. For more information, see [Schedule messages to send in the future](/docs/v3/email/scheduled-send/).


| Endpoint                                                                                                                             | Required scopes                  | Other scopes                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | ------------------------------------------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/messages`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`                               | `Mail.Read`                      | `Mail.ReadWrite`<br/>`Mail.Read.Shared`<br/>`Mail.ReadWrite.Shared` |
| `PUT /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`               | `Mail.ReadWrite`                 | `Mail.ReadWrite.Shared`                                             |
| `POST /v3/grants/<NYLAS_GRANT_ID>/messages/smart-compose`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>/smart-compose` | `Mail.Read`                      | `Mail.ReadWrite`<br/>`Mail.ReadWrite.Shared`<br/>`Mail.Read.Shared` |
| `PUT /v3/grants/<NYLAS_GRANT_ID>/messages/clean`                                                                                     | `Mail.Read`                      | —                                                                   |
| `POST /v3/grants/<NYLAS_GRANT_ID>/messages/send`                                                                                     | `Mail.ReadWrite`<br/>`Mail.Send` | `Mail.ReadWrite.Shared`                                             |

> **Info:** 
> **You need to request the `Mail.ReadWrite` and `Mail.Send` scopes if you want to schedule messages to be sent in the future**. For more information, see [Schedule messages to send in the future](/docs/v3/email/scheduled-send/).


| Endpoint                                                                                                                                                                                                                                                                                                             | Scopes                            |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/messages`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`                                                                                                                                                                                                               | `email`<br/>`mail-r`              |
| `PUT /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/messages/smart-compose`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>/smart-compose`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/messages/send` | `email`<br/>`mail-r`<br/>`mail-w` |


### Drafts API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                                                     | Required scopes   | Other scopes     |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | ---------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/drafts`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`                                                             | `/gmail.readonly` | `/gmail.compose` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/drafts`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>` | `/gmail.compose`  | —                |
| `POST /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`                                                                                                         | `/gmail.compose`  | `/gmail.modify`  |


| Endpoint                                                                                                                                                     | Required scopes                  | Other scopes                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | ------------------------------------------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/drafts`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`                                                             | `Mail.Read`                      | `Mail.ReadWrite`<br/>`Mail.Read.Shared`<br/>`Mail.ReadWrite.Shared` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/drafts`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>` | `Mail.ReadWrite`                 | `Mail.ReadWrite.Shared`                                             |
| `POST /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`                                                                                                         | `Mail.ReadWrite`<br/>`Mail.Send` | `Mail.ReadWrite.Shared`                                             |


| Endpoint                                                                                                                                                                                                               | Scopes                            |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/drafts`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`                                                                                                                       | `email`<br/>`mail-r`              |
| `POST /v3/grants/<NYLAS_GRANT_ID>/drafts/`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>` | `email`<br/>`mail-r`<br/>`mail-w` |


### Folders API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                                                                                                                                                                 | Required scopes | Other scopes    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- | --------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/folders`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/folders`<br/>`PUT /v3/grants/NYLAS_GRANT_ID>/folders/<FOLDER_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>` | `/gmail.labels` | `/gmail.modify` |


| Endpoint                                                                                                                                                         | Required scopes  | Other scopes                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------------------------------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/folders`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>`                                                              | `Mail.Read`      | `Mail.ReadWrite`<br/>`Mail.Read.Shared`<br/>`Mail.ReadWrite.Shared` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/folders`<br/>`PUT /v3/grants/NYLAS_GRANT_ID>/folders/<FOLDER_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>` | `Mail.ReadWrite` | `Mail.ReadWrite.Shared`                                             |


| Endpoint                                                                                                                                                           | Scopes                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/folders`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>`                                                                | `email`<br/>`mail-r`              |
| `POST /v3/grants/<NYLAS_GRANT_ID>/folders/`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>` | `email`<br/>`mail-r`<br/>`mail-w` |


### Attachments API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                      | Required scopes   | Other scopes    |
| ------------------------------------------------------------- | ----------------- | --------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/attachments/<ATTACHMENT_ID>` | `/gmail.readonly` | `/gmail.modify` |


All scopes must be prefixed with Microsoft's URI path (`https://graph.microsoft.com/`).

| Endpoint                                                      | Required scopes | Other scopes                                                        |
| ------------------------------------------------------------- | --------------- | ------------------------------------------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/attachments/<ATTACHMENT_ID>` | `Mail.Read`     | `Mail.ReadWrite`<br/>`Mail.Read.Shared`<br/>`Mail.ReadWrite.Shared` |


| Endpoint                                                      | Scopes               |
| ------------------------------------------------------------- | -------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/attachments/<ATTACHMENT_ID>` | `email`<br/>`mail-r` |


### Contacts API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                                                               | Required scopes                                                               | Other scopes |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------ |
| `GET /v3/grants/<NYLAS_GRANT_ID>/contacts`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/contacts/groups`           | `/contacts.readonly`<br/>`/contacts.other.readonly`<br/>`/directory.readonly` | —            |
| `POST /v3/grants/<NYLAS_GRANT_ID>/contacts`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>` | `/contacts`                                                                   | —            |

> **Info:** 
> **You must request the `/contacts.other.readonly` scope to access contacts from the `inbox` source, and `/directory.readonly` for contacts from the `domain` source**.


| Endpoint                                                                                                                                                               | Required scopes                   | Other scopes |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------ |
| `GET /v3/grants/<NYLAS_GRANT_ID>/contacts`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/contacts/groups`           | `Contacts.Read`<br/>`People.Read` | —            |
| `POST /v3/grants/<NYLAS_GRANT_ID>/contacts`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>` | `Contacts.ReadWrite`              | —            |

> **Info:** 
> **You must request the `People.Read` scope to access contacts from the `inbox` and `domain` sources**.


### Calendar API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                                                                    | Required scopes      | Other scopes |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------ |
| `GET /v3/grants/<NYLAS_GRANT_ID>/calendars`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/calendars/free-busy`        | `/calendar.readonly` | `/calendar`  |
| `POST /v3/grants/<NYLAS_GRANT_ID>/calendars`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>` | `/calendar`          | —            |
| `POST /v3/calendars/availability`                                                                                                                                           | `/calendar.readonly` | `/calendar`  |

> **Info:** 
> **You need to request the `/calendar` scope if you want to use the `primary` keyword to reference the primary calendar associated with a grant**. For more information about the `primary` keyword, see [Find a calendar ID](/docs/reference/api/calendar/).


| Endpoint                                                                                                                                                                    | Required scopes       | Other scopes          |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/calendars`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/calendars/free-busy`        | `Calendars.Read`      | `Calendars.ReadWrite` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/calendars`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>` | `Calendars.ReadWrite` | —                     |
| `POST /v3/calendars/availability`                                                                                                                                           | `Calendars.Read`      | `Calendars.ReadWrite` |


### Events API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                                                                                                                        | Required scopes                                      | Other scopes                                                |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/events`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>`                                                                                                                                | `/calendar.events.readonly`                          | `/calendar.events`<br/>`/calendar`<br/>`/calendar.readonly` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/events`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>/send-rsvp` | `/calendar.events`                                   | `/calendar`                                                 |
| `GET /v3/grants/<NYLAS_GRANT_ID>/resources`                                                                                                                                                                                     | `/admin.directory.resource.`<br/>`calendar.readonly` | —                                                           |

> **Info:** 
> **You need to request the `/calendar` scope if you want to use the `primary` keyword to reference the primary calendar associated with a grant**. For more information about the `primary` keyword, see [Find a calendar ID](/docs/reference/api/calendar/).


| Endpoint                                                                                                                                                                                                                        | Required scopes       | Other scopes          |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| `GET /v3/grants/<NYLAS_GRANT_ID>/events`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>`                                                                                                                                | `Calendars.Read`      | `Calendars.ReadWrite` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/events`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>`<br/>`POST /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>/send-rsvp` | `Calendars.ReadWrite` | —                     |
| `GET /v3/grants/<NYLAS_GRANT_ID>/resources`                                                                                                                                                                                     | `Place.Read.All`      | —                     |

> **Info:** 
> **You need to request the `OnlineMeetings.ReadWrite` scope if you want to automatically create conferencing details on events**. For more information, see [Enable autocreate for conferencing](/docs/v3/calendar/add-conferencing/#enable-autocreate-for-conferencing).


> **Info:** 
> **You need to request the `meeting:write:meeting`, `meeting:update:meeting`, `meeting:delete:meeting`, and `user:read:user` scopes if you want to automatically create conferencing details on events**. For more information, see [Enable autocreate for conferencing](/docs/v3/calendar/add-conferencing/#enable-autocreate-for-conferencing).


### Scheduler API scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Endpoint                                                                                                                                                                                                  | Required scopes      | Other scopes |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------ |
| `POST /v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<CONFIG_ID>`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/scheduling/availability`    | `/calendar.readonly` | `/calendar`  |
| `POST /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings`<br/>`PATCH /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID>` | `/calendar.events`   | `/calendar`  |


| Endpoint                                                                                                                                                                                                  | Required scopes       | Other scopes          |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| `POST /v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations`<br/>`PUT /v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<CONFIG_ID>`<br/>`GET /v3/grants/<NYLAS_GRANT_ID>/scheduling/availability`    | `Calendars.Read`      | `Calendars.ReadWrite` |
| `POST /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings`<br/>`PATCH /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID>`<br/>`DELETE /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID>` | `Calendars.ReadWrite` | —                     |


## Nylas notification scopes

Each of Nylas' notification triggers requires different scopes to function properly. The tables in the following sections list the scopes you need to work with specific Nylas features.

All scopes must include the fully-qualified URI path for the provider. The tables shorten the full scope URIs for space reasons, so be sure to add the provider prefix when requesting scopes.

### Messages notification scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Notification trigger                             | Required scopes                     | Other scopes                         |
| ------------------------------------------------ | ----------------------------------- | ------------------------------------ |
| `message.send_success`<br/>`message.send_failed` | `/gmail.send`                       | —                                    |
| `message.created`<br/>`message.updated`          | `/gmail.metadata`                   | `gmail.readonly`<br/>`/gmail.modify` |
| `message.bounce_detected`                        | `/gmail.readonly`<br/>`/gmail.send` | `/gmail.modify`                      |

> **Warn:** 
> **If your account uses the `/gmail.metadata` scope, Nylas sends [**`message.*.metadata` notifications**](/docs/reference/notifications/message-metadata/message-created-metadata/) with limited information**. For more information, see [Using webhooks with Nylas](/docs/v3/notifications/#gmail-metadata-webhooks).


| Notification trigger                             | Required scopes                  | Other scopes                                                        |
| ------------------------------------------------ | -------------------------------- | ------------------------------------------------------------------- |
| `message.send_success`<br/>`message.send_failed` | `Mail.ReadWrite`<br/>`Mail.Send` | —                                                                   |
| `message.created`<br/>`message.updated`          | `Mail.Read`                      | `Mail.ReadWrite`<br/>`Mail.ReadWrite.Shared`<br/>`Mail.Read.Shared` |
| `message.bounce_detected`                        | `Mail.Read`<br/>`Mail.Send`      | `Mail.ReadWrite`                                                    |


All `message.*` notifications require the `email` and `mail-r` scopes.


### Threads notification scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Notification trigger | Required scopes                     | Other scopes    |
| -------------------- | ----------------------------------- | --------------- |
| `thread.replied`     | `/gmail.readonly`<br/>`/gmail.send` | `/gmail.modify` |


| Notification trigger | Required scopes             | Other scopes     |
| -------------------- | --------------------------- | ---------------- |
| `thread.replied`     | `Mail.Read`<br/>`Mail.Send` | `Mail.ReadWrite` |


All `thread.*` notifications require the `email` and `mail-r` scopes.


### Folders notification scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Notification trigger                                       | Required scopes   | Other scopes                         |
| ---------------------------------------------------------- | ----------------- | ------------------------------------ |
| `folder.created`<br/>`folder.updated`<br/>`folder.deleted` | `/gmail.metadata` | `/gmail.readonly`<br/>`gmail.modify` |

> **Warn:** 
> **If your account uses the `/gmail.metadata` scope, Nylas sends [**`message.*.metadata` notifications**](/docs/reference/notifications/message-metadata/message-created-metadata/) with limited information**. For more information, see [Using webhooks with Nylas](/docs/v3/notifications/#gmail-metadata-webhooks).


| Notification trigger                                       | Required scopes | Other scopes                                                        |
| ---------------------------------------------------------- | --------------- | ------------------------------------------------------------------- |
| `folder.created`<br/>`folder.updated`<br/>`folder.deleted` | `Mail.Read`     | `Mail.ReadWrite`<br/>`Mail.ReadWrite.Shared`<br/>`Mail.Read.Shared` |


All `folder.*` notifications require the `email` and `mail-r` scopes.


### Contacts notification scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Notification trigger                    | Required scopes                     | Other scopes |
| --------------------------------------- | ----------------------------------- | ------------ |
| `contact.updated`<br/>`contact.deleted` | `/contact.readonly`<br/>`/contacts` | —            |


| Notification trigger                    | Required scopes | Other scopes                                                                    |
| --------------------------------------- | --------------- | ------------------------------------------------------------------------------- |
| `contact.updated`<br/>`contact.deleted` | `Contacts.Read` | `Contacts.Read.Shared`<br/>`Contacts.ReadWrite`<br/>`Contacts.ReadWrite.Shared` |


### Calendar notification scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Notification trigger                                             | Required scopes             | Other scopes       |
| ---------------------------------------------------------------- | --------------------------- | ------------------ |
| `calendar.created`<br/>`calendar.updated`<br/>`calendar.deleted` | `/calendar.events.readonly` | `/calendar.events` |


| Notification trigger                                             | Required scopes  | Other scopes                                                                       |
| ---------------------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |
| `calendar.created`<br/>`calendar.updated`<br/>`calendar.deleted` | `Calendars.Read` | `Calendars.Read.Shared`<br/>`Calendars.ReadWrite`<br/>`Calendars.ReadWrite.Shared` |


### Events notification scopes


All scopes must be prefixed with Google's URI path (`https://www.googleapis.com/auth/`).

| Notification trigger                                    | Required scopes                                      | Other scopes       |
| ------------------------------------------------------- | ---------------------------------------------------- | ------------------ |
| `event.created`<br/>`event.updated`<br/>`event.deleted` | `/calendar.events.readonly`<br/>`/calendar.readonly` | `/calendar.events` |


| Notification trigger                                    | Required scopes  | Other scopes                                                                       |
| ------------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |
| `event.created`<br/>`event.updated`<br/>`event.deleted` | `Calendars.Read` | `Calendars.Read.Shared`<br/>`Calendars.ReadWrite`<br/>`Calendars.ReadWrite.Shared` |


## Google OAuth verification


If your application accesses Google user data with the Google APIs and requests certain scopes, you might have to complete the Google verification process and a separate security assessment process. The processes that you need to complete depends on whether your application requests [_sensitive_ or _restricted_ scopes](/docs/provider-guides/google/google-verification-security-assessment-guide/#google-scopes).

| Scope type | Required processes                          | Google policy and requirements                                                                                                                                                                                                                                                                                      |
| ---------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sensitive  | Google verification                         | Your application must follow [Google’s API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy).                                                                                                                                                                           |
| Restricted | Google verification and security assessment | Your application must follow [Google’s API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy) and meet [additional requirements for specific scopes](https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes). |


For more information, see our [Google verification and security assessment guide](/docs/provider-guides/google/google-verification-security-assessment-guide/).