Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/nylas:nylas-amazon-sns-notifications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Nylas Amazon SNS Notifications API
version: v3
summary: The complete Nylas v3 API — Email, Calendar, Contacts, Notetaker, Scheduling, Administration, and Migration.
description: The Nylas API is designed using the REST ideology to provide simple and predictable URIs to access and modify objects. Requests support standard HTTP methods like `GET`, `PUT`, `POST`, and `DELETE`, and standard status codes. Response bodies are always UTF-8 encoded JSON objects, unless explicitly documented otherwise. You can use the Nylas Postman collection to quickly start using the Nylas APIs. For more information, check out the Nylas Postman collection documentation.
contact:
url: https://www.nylas.com/
servers:
- url: https://api.us.nylas.com
description: U.S.
- url: https://api.eu.nylas.com
description: E.U.
security:
- ACCESS_TOKEN: []
- NYLAS_API_KEY: []
tags:
- name: Amazon SNS Notifications
description: 'Amazon SNS notification channels allow you to receive Nylas event notifications through Amazon Simple Notification Service (SNS) instead of webhooks.
To use Amazon SNS notifications, you need to set up an SNS topic and an IAM role in your AWS account. The topic ARN must start with `arn:aws:sns:`. The IAM role must allow Nylas to assume it via STS `AssumeRoleWithWebIdentity` and must have `sns:Publish` permission on the topic. For detailed set up instructions, see the Amazon SNS notification channel documentation.
The Amazon SNS notification channels use the same notification trigger types and schemas as webhook notifications, and require the same provider scopes.
Nylas strongly recommends setting `compressed_delivery` to `true` when you create an SNS channel. SNS enforces a 256 KB message size limit, and gzip compression is the simplest way to keep large `message.*` notifications inside it. Nylas adds a `content_encoding: gzip+base64` message attribute so your subscriber knows which messages to decompress. For setup and the decode pattern, see Reducing payload size with compression.'
paths:
/v3/channels/sns:
post:
summary: Create an Amazon SNS channel
tags:
- Amazon SNS Notifications
operationId: create-sns-channel
description: 'Create an Amazon SNS notification channel in the specified application.
The `topic` must be a valid Amazon SNS topic ARN (starting with `arn:aws:sns:`).'
security:
- NYLAS_API_KEY: []
responses:
'200':
$ref: '#/components/responses/create_sns_200'
description: Returns the new Amazon SNS channel.
'400':
$ref: '#/components/responses/create_sns_400'
description: Returns an error.
requestBody:
required: true
description: Amazon SNS channel definition
content:
application/json:
schema:
$ref: '#/components/schemas/amazon_sns_input_payload'
x-code-samples:
- lang: bash
label: cURL
source: "curl --request POST \\\n --url 'https://api.us.nylas.com/v3/channels/sns' \\\n --header 'Content-Type: application/json' \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --data-raw '{\n \"description\": \"SNS Test\",\n \"trigger_types\": [\"message.send_success\"],\n \"topic\": \"arn:aws:sns:us-east-1:123456789012:my-topic\",\n \"role_arn\": \"arn:aws:iam::123456789012:role/nylas-sns-role\",\n \"notification_email_addresses\": [\"leyah@example.com\"]\n }'"
get:
summary: Get Amazon SNS channels for an application
tags:
- Amazon SNS Notifications
operationId: get-sns-channels
description: Get the Amazon SNS notification channels for an application.
security:
- NYLAS_API_KEY: []
responses:
'200':
$ref: '#/components/responses/get_sns_200'
description: List of Amazon SNS channels for an application.
'400':
$ref: '#/components/responses/get_sns_400'
description: Returns an error.
x-code-samples:
- lang: bash
label: cURL
source: "curl --request GET \\\n --url 'https://api.us.nylas.com/v3/channels/sns/' \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>'"
/v3/channels/sns/{id}:
get:
operationId: get-sns-by-id
tags:
- Amazon SNS Notifications
summary: Get a specific Amazon SNS channel
description: Get a specific Amazon SNS notification channel from a specific Nylas application.
security:
- NYLAS_API_KEY: []
parameters:
- name: id
in: path
description: The ID of the Amazon SNS channel to retrieve.
required: true
schema:
type: string
x-code-samples:
- lang: bash
label: cURL
source: "curl --request GET \\\n --url 'https://api.us.nylas.com/v3/channels/sns/<SNS_CHANNEL_ID>' \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>'"
responses:
'200':
$ref: '#/components/responses/get_sns_by_id_200'
description: The Amazon SNS channel matching the query.
'400':
$ref: '#/components/responses/get_sns_400'
put:
operationId: put-sns-by-id
tags:
- Amazon SNS Notifications
summary: Update an Amazon SNS channel
description: 'Updates the specified Amazon SNS notification channel.
When you make a `PUT` request, Nylas replaces all data in the nested object with the information
included in your request. For more information, see
Updating objects.'
security:
- NYLAS_API_KEY: []
parameters:
- name: id
in: path
description: The ID of the Amazon SNS channel to update.
required: true
schema:
type: string
requestBody:
required: true
description: The Amazon SNS channel properties to update.
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: A human-readable description of the Amazon SNS channel.
example: Prod account status notifications SNS
trigger_types:
$ref: '#/components/schemas/trigger_types'
topic:
type: string
description: The Amazon SNS topic ARN that Nylas sends notifications to. Must start with `arn:aws:sns:`.
example: arn:aws:sns:us-east-1:123456789012:my-topic
role_arn:
type: string
description: The ARN of the IAM role that Nylas assumes to publish messages to the SNS topic.
example: arn:aws:iam::123456789012:role/nylas-sns-role
status:
type: string
description: The new status of the channel. Use this to restart a channel that you manually paused, or that was automatically paused due to deliverability issues.
enum:
- active
- pause
notification_email_addresses:
type: array
items:
type: string
description: The email addresses that Nylas notifies if there are errors or deliverability problems. See the [rate limit documentation](/docs/dev-guide/best-practices/rate-limits/) for details.
example:
- sysadmin@example.com
- sre_pager@example.com
compressed_delivery:
type: boolean
description: 'If `true`, Nylas gzip-compresses and then base64-encodes notification payloads before delivering them. Nylas adds a `content_encoding: gzip+base64` message attribute to the SNS message. To decode, base64-decode the message body, then gzip-decompress.'
example: true
x-code-samples:
- lang: bash
label: cURL
source: "curl --request PUT \\\n --url 'https://api.us.nylas.com/v3/channels/sns/<SNS_CHANNEL_ID>' \\\n --header 'Content-Type: application/json' \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --data-raw '{\n \"description\": \"Updated SNS channel\",\n \"trigger_types\": [\"event.created\", \"event.updated\"],\n \"topic\": \"arn:aws:sns:us-east-1:123456789012:my-updated-topic\",\n \"notification_email_addresses\": [\"sysadmin@example.com\"]\n }'"
responses:
'200':
$ref: '#/components/responses/update_sns_200'
'400':
$ref: '#/components/responses/update_sns_400'
delete:
operationId: delete-sns-by-id
tags:
- Amazon SNS Notifications
summary: Delete a specific Amazon SNS channel
description: Delete a specific Amazon SNS notification channel from a specific Nylas application.
security:
- NYLAS_API_KEY: []
parameters:
- name: id
in: path
description: The ID of the Amazon SNS channel to delete.
required: true
schema:
type: string
x-code-samples:
- lang: bash
label: cURL
source: "curl --request DELETE \\\n --url 'https://api.us.nylas.com/v3/channels/sns/<SNS_CHANNEL_ID>' \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>'"
responses:
'200':
$ref: '#/components/responses/delete_200'
description: Returns a success message.
'400':
$ref: '#/components/responses/delete_400'
description: Returns an error message.
components:
responses:
delete_200:
description: Destination Deleted
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
status:
type: string
enum:
- success
request_id:
type: string
description: The ID for each request.
get_sns_by_id_200:
description: Get specific Amazon SNS channel information
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
description: A unique identifier for the Amazon SNS channel.
example: UMWjAjMeWQ4D8gYF2moonK4486
description:
type: string
description: A human-readable description of the Amazon SNS channel.
example: Production SNS channel for Event updates
trigger_types:
$ref: '#/components/schemas/trigger_types'
topic:
type: string
description: The Amazon SNS topic ARN that Nylas sends notifications to.
example: arn:aws:sns:us-east-1:123456789012:my-topic
role_arn:
type: string
description: The ARN of the IAM role that Nylas assumes to publish messages to the SNS topic.
example: arn:aws:iam::123456789012:role/nylas-sns-role
status:
type: string
description: The deliverability status of the Amazon SNS channel.
enum:
- active
- pause
- failing
- failed
notification_email_addresses:
type: array
items:
type: string
description: The email addresses that Nylas notifies if delivery to the Amazon SNS channel fails.
example:
- jane@example.com
- joe@example.com
compressed_delivery:
type: boolean
description: If `true`, Nylas gzip-compresses and then base64-encodes notification payloads before delivering them.
example: false
status_updated_at:
type: integer
description: The time the `status` field was last updated, represented as a Unix timestamp in seconds.
example: 1234567890
created_at:
type: integer
description: The time the Amazon SNS channel was created, represented as a Unix timestamp in seconds.
example: 1234567890
updated_at:
type: integer
description: The time the Amazon SNS channel was last updated, represented as a Unix timestamp in seconds.
example: 1234567890
request_id:
type: string
description: The unique ID of the request that generated this response.
update_sns_200:
description: Amazon SNS channel updated
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
description: A unique identifier for the Amazon SNS channel.
example: UMWjAjMeWQ4D8gYF2moonK4486
description:
type: string
description: A human-readable description of the Amazon SNS channel.
example: Production SNS channel
trigger_types:
$ref: '#/components/schemas/trigger_types'
topic:
type: string
description: The Amazon SNS topic ARN that Nylas sends notifications to.
example: arn:aws:sns:us-east-1:123456789012:my-topic
role_arn:
type: string
description: The ARN of the IAM role that Nylas assumes to publish messages to the SNS topic.
example: arn:aws:iam::123456789012:role/nylas-sns-role
status:
type: string
description: The deliverability status of the Amazon SNS channel.
enum:
- active
- pause
- failing
- failed
notification_email_addresses:
type: array
items:
type: string
description: The email addresses that Nylas notifies if delivery to the Amazon SNS channel fails.
example:
- jane@example.com
- joe@example.com
compressed_delivery:
type: boolean
description: If `true`, Nylas gzip-compresses and then base64-encodes notification payloads before delivering them.
example: false
status_updated_at:
type: integer
description: The time the `status` field was last updated, represented as a Unix timestamp in seconds.
example: 1234567890
created_at:
type: integer
description: The time the Amazon SNS channel was created, represented as a Unix timestamp in seconds.
example: 1234567890
updated_at:
type: integer
description: The time the Amazon SNS channel was last updated, represented as a Unix timestamp in seconds.
example: 1234567890
request_id:
type: string
description: The unique ID of the request that generated this response.
delete_400:
description: Notification channel not deleted
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
type:
type: string
description: An alphanumeric code that represents the error type.
example: '70000'
message:
type: string
description: A human readable message with details about the error.
example: 'destination.id.not.found : record not found'
request_id:
type: string
description: The unique ID of the request that generated this response.
create_sns_400:
description: Unable to create Amazon SNS channel
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
type:
type: string
description: An alphanumeric code that represents the error type.
example: '70005'
message:
type: string
description: A human-readable message with details about the error.
example: 'invalid.input.format : topic is required'
request_id:
type: string
description: The unique ID of the request that generated this response.
create_sns_200:
description: Amazon SNS channel created
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
description: A unique identifier for the Amazon SNS notification channel.
example: UMWjAjMeWQ4D8gYF2moonK4486
description:
type: string
description: A human-readable description of the Amazon SNS notification channel.
example: Production SNS channel for Grant notifications
trigger_types:
$ref: '#/components/schemas/trigger_types'
topic:
type: string
description: The Amazon SNS topic ARN that Nylas sends notifications to.
example: arn:aws:sns:us-east-1:123456789012:my-topic
role_arn:
type: string
description: The ARN of the IAM role that Nylas assumes to publish messages to the SNS topic.
example: arn:aws:iam::123456789012:role/nylas-sns-role
status:
type: string
description: The status of the Amazon SNS channel. When you first create a new channel, Nylas sets it to "active".
enum:
- active
notification_email_addresses:
type: array
items:
type: string
description: The email addresses that Nylas notifies if delivery to the Amazon SNS channel fails.
example:
- jane@example.com
- joe@example.com
compressed_delivery:
type: boolean
description: If `true`, Nylas gzip-compresses and then base64-encodes notification payloads before delivering them.
example: false
request_id:
type: string
description: The unique ID of the request that generated this response.
get_sns_400:
description: Unable to get Amazon SNS channel information
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
type:
type: string
description: An alphanumeric code that represents the error type.
example: '70001'
message:
type: string
description: A human readable message with details about the error.
example: 'invalid.input.format : topic is required'
request_id:
type: string
description: The unique ID of the request that generated this response.
update_sns_400:
description: Amazon SNS channel not updated
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
type:
type: string
description: An alphanumeric code that represents the error type.
example: '70000'
message:
type: string
description: A human readable message with details about the error.
example: 'invalid.input.format : topic is required'
request_id:
type: string
description: The unique ID of the request that generated this response.
get_sns_200:
description: Get Amazon SNS channel information
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
description: A unique identifier for the Amazon SNS notification channel.
example: UMWjAjMeWQ4D8gYF2moonK4486
description:
type: string
description: A human-readable description of the Amazon SNS notification channel.
example: Production SNS channel for Email notifications
trigger_types:
$ref: '#/components/schemas/trigger_types'
topic:
type: string
description: The Amazon SNS topic ARN that Nylas sends notifications to.
example: arn:aws:sns:us-east-1:123456789012:my-topic
role_arn:
type: string
description: The ARN of the IAM role that Nylas assumes to publish messages to the SNS topic.
example: arn:aws:iam::123456789012:role/nylas-sns-role
status:
type: string
description: The status of the Amazon SNS channel.
enum:
- active
- paused
- failing
- failed
notification_email_addresses:
type: array
items:
type: string
description: The email addresses that Nylas notifies if delivery to the Amazon SNS channel fails.
example:
- jane@example.com
- joe@example.com
compressed_delivery:
type: boolean
description: If `true`, Nylas gzip-compresses and then base64-encodes notification payloads before delivering them.
example: false
request_id:
type: string
description: The unique ID of the request that generated this response.
schemas:
trigger_types:
type: array
items:
type: string
enum:
- calendar.created
- calendar.updated
- calendar.deleted
- event.created
- event.updated
- event.deleted
- grant.created
- grant.updated
- grant.deleted
- grant.expired
- grant.imap_sync_completed
- message.send_success
- message.send_failed
- message.bounce_detected
- message.created
- message.created.cleaned
- message.opened
- message.opened.legacy
- message.updated
- message.link_clicked
- message.link_clicked.legacy
- thread.replied
- thread.replied.legacy
- contact.updated
- contact.deleted
- folder.created
- folder.updated
- folder.deleted
- booking.created
- booking.pending
- booking.rescheduled
- booking.cancelled
- booking.reminder
- message.deleted
- message.transactional.bounced
- message.transactional.complaint
- message.transactional.delivered
- message.transactional.rejected
- message.bounced
- message.complaint
- message.delivered
- message.rejected
- notetaker.created
- notetaker.updated
- notetaker.deleted
- notetaker.meeting_state
- notetaker.media
description: 'The event that triggers the notification. See the
[notification schemas](/docs/reference/notifications/) for details about each trigger
type.
See the [Grants](/docs/reference/api/manage-grants/), [Calendar](/docs/reference/api/calendar/),
[Events](/docs/reference/api/events/), and [Messages](/docs/reference/api/messages/) references
for information on how to trigger each event type.'
amazon_sns_input_payload:
title: Amazon SNS Channel Payload
required:
- trigger_types
- topic
- role_arn
type: object
properties:
description:
type: string
description: A human-readable description of the Amazon SNS channel.
example: Production SNS channel for Events notifications
trigger_types:
$ref: '#/components/schemas/trigger_types'
topic:
type: string
description: The Amazon SNS topic ARN that Nylas sends notifications to. Must start with `arn:aws:sns:`.
example: arn:aws:sns:us-east-1:123456789012:my-topic
role_arn:
type: string
description: The ARN of the IAM role that Nylas assumes to publish messages to the SNS topic. Must match `arn:aws:iam::<account-id>:role/<role-name>`.
example: arn:aws:iam::123456789012:role/nylas-sns-role
notification_email_addresses:
type: array
items:
type: string
description: The email addresses that Nylas notifies if delivery to the Amazon SNS channel fails.
example:
- jane@example.com
- joe@example.com
compressed_delivery:
type: boolean
description: 'If `true`, Nylas gzip-compresses and then base64-encodes notification payloads before delivering them. Nylas adds a `content_encoding: gzip+base64` message attribute to the SNS message. To decode, base64-decode the message body, then gzip-decompress. Default is `false`.'
default: false
example: true
securitySchemes:
IAM_API_KEY:
type: http
scheme: bearer
bearerFormat: IAM API key
description: An active, unexpired IAM credential of type `api_key` whose principal is active, has an Organization resource binding, and has the required IAM management permission. Use an existing IAM credential with these permissions, or [create your first management credential in the Dashboard](/docs/v3/auth/nylas-iam/manage-principals-with-api/#create-a-management-credential-in-the-dashboard). Application API keys (including legacy API keys) and provider OAuth tokens cannot authorize IAM management endpoints.
ACCESS_TOKEN:
scheme: bearer
type: http
bearerFormat: NYLAS_ACCESS_TOKEN
description: 'The Nylas **access token** for a specific grant. Issued as part of OAuth 2.1 flow token
exchange.'
NYLAS_API_KEY:
scheme: bearer
type: http
bearerFormat: NYLAS_API_KEY
description: 'The Nylas **API key** provides application-level access to APIs and all grants. You can
generate these from the Dashboard. Learn more about [authorizing requests](/docs/v3/auth/).'
SCHEDULER_SESSION_TOKEN:
scheme: bearer
type: http
bearerFormat: Session ID
description: The Nylas Scheduler **session ID** that Scheduler UI Components use to authorize API requests.
x-provenance:
method: harvested
publisher: Nylas
source: https://developer.nylas.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)