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.
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.
POST /v3/grants/<NYLAS_GRANT_ID>/messages/smart-compose 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 /gmail.modify
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.
Endpoint
Required scopes
Other scopes
GET /v3/grants/<NYLAS_GRANT_ID>/messages GET /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>
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.
Endpoint
Scopes
GET /v3/grants/<NYLAS_GRANT_ID>/messages GET /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>
email mail-r
PUT /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID> POST /v3/grants/<NYLAS_GRANT_ID>/messages/smart-compose POST /v3/grants/<NYLAS_GRANT_ID>/messages/<MESSAGE_ID>/smart-compose POST /v3/grants/<NYLAS_GRANT_ID>/messages/send
POST /v3/grants/<NYLAS_GRANT_ID>/drafts PUT /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID> 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 Mail.Send
Mail.ReadWrite.Shared
Endpoint
Scopes
GET /v3/grants/<NYLAS_GRANT_ID>/drafts GET /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>
email mail-r
POST /v3/grants/<NYLAS_GRANT_ID>/drafts/ PUT /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID> POST /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/drafts/<DRAFT_ID>
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 GET /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID> POST /v3/grants/<NYLAS_GRANT_ID>/folders PUT /v3/grants/NYLAS_GRANT_ID>/folders/<FOLDER_ID> 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 GET /v3/grants/<NYLAS_GRANT_ID>/folders/<FOLDER_ID>
POST /v3/grants/<NYLAS_GRANT_ID>/contacts PUT /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>
/contacts
—
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 GET /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID> GET /v3/grants/<NYLAS_GRANT_ID>/contacts/groups
Contacts.Read People.Read
—
POST /v3/grants/<NYLAS_GRANT_ID>/contacts PUT /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/contacts/<CONTACT_ID>
Contacts.ReadWrite
—
You must request the People.Read scope to access contacts from the inbox and domain sources.
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 GET /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID> POST /v3/grants/<NYLAS_GRANT_ID>/calendars/free-busy
/calendar.readonly
/calendar
POST /v3/grants/<NYLAS_GRANT_ID>/calendars PUT /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>
/calendar
—
POST /v3/calendars/availability
/calendar.readonly
/calendar
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.
Endpoint
Required scopes
Other scopes
GET /v3/grants/<NYLAS_GRANT_ID>/calendars GET /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID> POST /v3/grants/<NYLAS_GRANT_ID>/calendars/free-busy
Calendars.Read
Calendars.ReadWrite
POST /v3/grants/<NYLAS_GRANT_ID>/calendars PUT /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>
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 GET /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>
/calendar.events.readonly
/calendar.events /calendar /calendar.readonly
POST /v3/grants/<NYLAS_GRANT_ID>/events PUT /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID> POST /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>/send-rsvp
/calendar.events
/calendar
GET /v3/grants/<NYLAS_GRANT_ID>/resources
/admin.directory.resource. calendar.readonly
—
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.
Endpoint
Required scopes
Other scopes
GET /v3/grants/<NYLAS_GRANT_ID>/events GET /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>
Calendars.Read
Calendars.ReadWrite
POST /v3/grants/<NYLAS_GRANT_ID>/events PUT /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID> POST /v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>/send-rsvp
Calendars.ReadWrite
—
GET /v3/grants/<NYLAS_GRANT_ID>/resources
Place.Read.All
—
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.
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.
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 PUT /v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<CONFIG_ID> GET /v3/grants/<NYLAS_GRANT_ID>/scheduling/availability
/calendar.readonly
/calendar
POST /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings PATCH /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID> 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 PUT /v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<CONFIG_ID> GET /v3/grants/<NYLAS_GRANT_ID>/scheduling/availability
Calendars.Read
Calendars.ReadWrite
POST /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings PATCH /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID> DELETE /v3/grants/<NYLAS_GRANT_ID>/scheduling/bookings/<BOOKING_ID>
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>/consolidated-order GET /v3/grants/<NYLAS_GRANT_ID>/consolidated-shipment GET /v3/grants/<NYLAS_GRANT_ID>/consolidated-return
/gmail.readonly
—
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>/consolidated-order GET /v3/grants/<NYLAS_GRANT_ID>/consolidated-shipment GET /v3/grants/<NYLAS_GRANT_ID>/consolidated-return
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.
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.