# PushNotifications resource

> \[!IMPORTANT]
>
> The Push Notifications API is currently available as a
> Private Beta product. The information contained in this document is subject to change. You acknowledge
> and agree that your use of the Twilio Push Notifications API is subject to the terms of the [Services in
> Private Beta](https://www.twilio.com/en-us/legal/service-country-specific-terms/private-beta). This
> means that some features are not yet implemented and others may be changed before the product is
> declared as Generally Available. Private Beta products are not covered by the Twilio Support Terms or
> Twilio Service Level Agreement.

A PushNotification resource represents a push notification sent through the Twilio Communications API. You can send notifications to Android devices, Apple devices, and web browsers through a single API.

You can send personalized notifications to up to 10,000 recipients in a single request, with a mix of APNs and FCM recipients.

When you send a notification, the API returns an `operationId` that you can use to track delivery status. See [Operation resource](/docs/push-notifications/api/operation-resource) for details.

> \[!NOTE]
>
> Records are available for 7 days after creation. Requests for data older than 7 days may return incomplete results.

## PushNotification Properties

<OperationTable type="properties" data={{"x-twilio-version":1,"title":"PushNotificationMetadata","type":"object","description":"The PushNotificationMetadata provides information about the PushNotification. Does not include the Content.","required":["id","to","from","status","createdAt","updatedAt"],"refName":"PushNotificationBase","modelName":"PushNotificationBase","properties":{"id":{"x-twilio-version":1,"title":"PushNotificationId","description":"A reference to a PushNotification.","type":"string","pattern":"^comms_pushnotification_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationId","modelName":""},"from":{"x-twilio-version":1,"title":"PushNotificationCredentialSender","description":"For each supported provider, a `Credential.Id` can be provided.\n\nEnsure that the `Credential.credentialType`s of each `Credential`\nmatches the name of the respective fields.","type":"object","refName":"PushNotificationCredentialSender","modelName":"PushNotificationCredentialSender","additionalProperties":false,"properties":{"fcm":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""},"apn":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""}}},"to":{"title":"PushNotificationRecipient","description":"The recipient of the Push Notification","oneOf":[{"title":"PushNotificationTokenRecipient","description":"A recipient identified by a push token","type":"object","properties":{"token":{"type":"string","description":"Identifies a single device for delivering push notifications via the specified provider."},"provider":{"x-twilio-version":1,"title":"PushNotificationProvider","description":"Push notification service provider.","type":"string","enum":["APN","FCM"],"refName":"PushNotificationProvider","modelName":"PushNotificationProvider"}},"required":["token","provider"]},{"title":"PushNotificationUserRecipient","description":"A recipient identified by their `userId`","properties":{"userId":{"x-twilio-version":1,"title":"PushNotificationUserId","description":"A reference to a Push Notification User.","type":"string","pattern":"^comms_pushnotificationuser_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationUserId","modelName":""}},"required":["userId"]}]},"priority":{"x-twilio-version":1,"title":"PushNotificationPriority","description":"The priority of the Push Notification. A value of \"low\" reduces the client app battery consumption. A value of \"high\" sends the notification immediately and can wake up a sleeping device.","type":"string","enum":["HIGH","LOW"],"default":"HIGH","refName":"PushNotificationPriority","modelName":"PushNotificationPriority"},"sound":{"type":["string","null"],"description":"The name of the sound to be played for the push notification."},"status":{"x-twilio-version":1,"title":"PushNotificationStatus","description":"The status of a `Push Notification` resource. The status can be one of the following:\n- `scheduled` The `Push Notification`  is scheduled to be sent by\n  Twilio in the future.\n\n- `queued` The `Push Notification` is queued in Twilio for sending.\n- `sent` The `Push Notification` resource has been sent by Twilio.\n- `failed` The `Push Notification` resource processing failed inside Twilio.\n  Use `GET /PushNotifications/Operations/{operationId}/Errors` for more details.\n\n- `canceled` The communication resource was canceled via API request.","type":"string","enum":["SCHEDULED","QUEUED","SENT","FAILED","CANCELED"],"refName":"PushNotificationStatus","modelName":"PushNotificationStatus"},"createdAt":{"description":"The date and time when the Push Notification was created, in ISO 8601 format.","type":"string","format":"date-time"},"updatedAt":{"description":"The date and time when the Push Notification was last updated, in ISO 8601 format.","type":"string","format":"date-time"}}}} />

## PushNotification status values

| Status      | Description                                        |
| ----------- | -------------------------------------------------- |
| `SCHEDULED` | The notification is scheduled for future delivery. |
| `QUEUED`    | The notification is queued for sending.            |
| `SENT`      | The notification was sent to the provider.         |
| `FAILED`    | The notification failed during processing.         |
| `CANCELED`  | The notification was canceled via the API.         |

## Send a PushNotification

`POST https://comms.twilio.com/v1/PushNotifications`

Send a push notification to one or more recipients by making an HTTP `POST` request to the Notifications resource URI.

The `to` array accepts up to 10,000 recipients. Each recipient can be either a direct recipient (with a device `token` and `provider`) or a User recipient (with a `userId`). You can include both `APN` and `FCM` recipients in the same request.

You can personalize notification content for each recipient using [LiquidJS templates](/docs/push-notifications/personalization). Pass recipient-specific variables in the `variables` object for each recipient.

### Recipient types

You can address recipients in two ways:

* **Direct recipient**: Provide a device `token` and `provider` (`APN` or `FCM`).
* **User recipient**: Provide a `userId` referencing a [User](/docs/push-notifications/api/user-resource). The API delivers to all devices registered to that User.

### From object

Use the optional `from` object to specify which credentials or app to use for sending. You can either:

* Provide specific credential IDs with `fcm` and `apn` fields.
* Provide an `appName` to use that app's default credentials.

If omitted, the API uses the default [App](/docs/push-notifications/api/app-resource) and its associated credentials.

### Schedule object

Use the optional `schedule` object to schedule notifications for future delivery. Provide an array of RFC 3339 datetime strings in the `sendAt` field. Notifications can be scheduled up to 7 days in the future.

### Tags object

Attach custom key-value metadata to notifications using the optional `tags` object. Tags support up to 10 pairs, with keys up to 128 characters and values up to 256 characters. Tags support Liquid templating.

### Request body parameters

```json
{"schema":{"title":"SendPushNotificationsRequest","type":"object","required":["to","content"],"properties":{"from":{"title":"SendPushNotificationRequestFrom","description":"The sender of the Push Notification(s).\nLeave unspecified to automatically use the default `App`.","type":"object","oneOf":[{"x-twilio-version":1,"title":"PushNotificationCredentialSender","description":"For each supported provider, a `Credential.Id` can be provided.\n\nEnsure that the `Credential.credentialType`s of each `Credential`\nmatches the name of the respective fields.","type":"object","properties":{"fcm":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""},"apn":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""}},"additionalProperties":false,"refName":"PushNotificationCredentialSender","modelName":"PushNotificationCredentialSender"},{"x-twilio-version":1,"title":"PushNotificationAppSender","type":"object","properties":{"appName":{"description":"The name of the `App` to be used for sending the Push Notification(s)","x-twilio-version":1,"title":"PushNotificationAppName","type":"string","pattern":"^[a-z0-9_]+$","minLength":1,"maxLength":64,"refName":"PushNotificationAppName","modelName":""}},"required":["appName"],"refName":"PushNotificationAppSender","modelName":"PushNotificationAppSender"}]},"to":{"title":"SendPushNotificationsRequestTo","description":"A list of recipients to send the Push Notifications(s) to.","type":"array","items":{"title":"SendPushNotificationsRecipient","oneOf":[{"x-twilio-version":1,"title":"SendPushNotificationDirectRecipient","description":"A push notification token and provider","type":"object","properties":{"token":{"type":"string","description":"Identifies a single device for delivering push notifications via the specified provider."},"provider":{"x-twilio-version":1,"title":"PushNotificationProvider","description":"Push notification service provider.","type":"string","enum":["APN","FCM"],"refName":"PushNotificationProvider","modelName":"PushNotificationProvider"},"variables":{"x-twilio-version":1,"title":"ContentPersonalization","type":"object","description":"To personalize content for each recipient, supply variables here with values to substitute into any [Liquid](https://shopify.github.io/liquid/) templated content string or pre-stored Content template.","refName":"ContentPersonalization","modelName":"","additionalProperties":{"type":"string"}}},"required":["token","provider"],"refName":"SendPushNotificationDirectRecipient","modelName":"SendPushNotificationDirectRecipient"},{"x-twilio-version":1,"type":"object","title":"SendPushNotificationsUserRecipient","properties":{"userId":{"x-twilio-version":1,"title":"PushNotificationUserId","description":"A reference to a Push Notification User.","type":"string","pattern":"^comms_pushnotificationuser_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationUserId","modelName":""},"variables":{"x-twilio-version":1,"title":"ContentPersonalization","type":"object","description":"To personalize content for each recipient, supply variables here with values to substitute into any [Liquid](https://shopify.github.io/liquid/) templated content string or pre-stored Content template.","refName":"ContentPersonalization","modelName":"","additionalProperties":{"type":"string"}}},"required":["userId"],"refName":"SendPushNotificationsUserRecipient","modelName":"SendPushNotificationsUserRecipient"}]}},"content":{"title":"SendPushNotificationsContent","description":"The content of the Push Notification.\n\n***\n\n* Use the [Liquid](https://shopify.github.io/liquid/)\ntemplating language for personalization in any text-based field.\n\n* When using a templated content,\nuse the `variables` field on each recipient to specify\nthe values to substitute.\n\n* For each variable you specify in your template, you should have\na matching key in each recipient's `variables` object.","oneOf":[{"x-twilio-version":1,"title":"PushNotificationContentBody","type":"object","description":"Push Notification content with body.","properties":{"title":{"type":"string","description":"The title of the push notification. Defaults to the app name.\n\n  \nThis field can be templated with [Liquid](https://shopify.github.io/liquid/). Specify `variables` with each recipient for personalization."},"body":{"type":"string","description":"A simple string or templated content.\n\nThis field can be templated with [Liquid](https://shopify.github.io/liquid/).\nSpecify `variables` with each recipient for personalization."}},"required":["body"],"refName":"PushNotificationContentBody","modelName":"PushNotificationContentBody"}]},"priority":{"x-twilio-version":1,"title":"PushNotificationPriority","description":"The priority of the Push Notification. A value of \"low\" reduces the client app battery consumption. A value of \"high\" sends the notification immediately and can wake up a sleeping device.","type":"string","enum":["HIGH","LOW"],"default":"HIGH","refName":"PushNotificationPriority","modelName":"PushNotificationPriority"},"sound":{"type":["string","null"],"description":"The name of the sound to be played for the Push Notification."},"schedule":{"title":"Schedule","description":"A schedule defines *when* a communication will be sent to a recipient.","x-twilio-version":1,"type":"object","minProperties":1,"refName":"Schedule","modelName":"Schedule","additionalProperties":false,"properties":{"sendAt":{"description":"List of expressions for when the communication may be sent.\n\nThe supported expression formats are:\n  - RFC 3339 date-time string. e.g `\"2025-11-11T11:11:00Z\"`\n\nThe maximum time you can schedule a communication is 7 days in the future.\n\nCurrently, you may specify only a single expression.\nIf you specify multiple expressions, only the first will be used.\nSupport for additional scheduling expression formats may be added in the future.","type":"array","items":{"type":"string"}}}},"tags":{"x-twilio-version":1,"title":"Tags","type":"object","description":"Custom metadata in the form of key-value pairs.\nMaximum size of a tag key is 128 characters.\nMaximum size of a tag value is 256 characters.\nThere can be a maximum of 10 key-value pairs.\n\nThis field can be templated with [Liquid](https://shopify.github.io/liquid/).\nSpecify `variables` with each recipient for personalization.","maxProperties":10,"propertyNames":{"type":"string","maxLength":128,"pattern":"^[a-zA-Z0-9._~-]+$"},"refName":"Tags","modelName":"","additionalProperties":{"type":"string","maxLength":256,"pattern":"^[a-zA-Z0-9._~-]+$"}}}},"examples":{"SendOnePushTextToDirectEntities":{"summary":"Send one push to direct entities","x-twilio-version":1,"value":{"lang":"json","value":"{\n  \"from\": {\n    \"fcm\": \"comms_credential_01h9krwprkeee8fzqspvwy6nq8\",\n    \"apn\": \"comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10\"\n  },\n  \"to\": [\n    {\n      \"token\": \"dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh\",\n      \"provider\": \"FCM\"\n    },\n    {\n      \"token\": \"utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq\",\n      \"provider\": \"APN\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Boarding time @ TLL\",\n    \"body\": \"Dear customer, you have 1 hour until boarding time at the Tallinn airport\"\n  },\n  \"priority\": \"HIGH\",\n  \"sound\": \"ring\"\n}","meta":"","code":"{\n  \"from\": {\n    \"fcm\": \"comms_credential_01h9krwprkeee8fzqspvwy6nq8\",\n    \"apn\": \"comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10\"\n  },\n  \"to\": [\n    {\n      \"token\": \"dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh\",\n      \"provider\": \"FCM\"\n    },\n    {\n      \"token\": \"utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq\",\n      \"provider\": \"APN\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Boarding time @ TLL\",\n    \"body\": \"Dear customer, you have 1 hour until boarding time at the Tallinn airport\"\n  },\n  \"priority\": \"HIGH\",\n  \"sound\": \"ring\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"from\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"fcm\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_credential_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"apn\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"to\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"token\"","#7EE787"],[":","#C9D1D9"]," ",["\"dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"provider\"","#7EE787"],[":","#C9D1D9"]," ",["\"FCM\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"token\"","#7EE787"],[":","#C9D1D9"]," ",["\"utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"provider\"","#7EE787"],[":","#C9D1D9"]," ",["\"APN\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["],","#C9D1D9"],"\n  ",["\"content\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"title\"","#7EE787"],[":","#C9D1D9"]," ",["\"Boarding time @ TLL\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"body\"","#7EE787"],[":","#C9D1D9"]," ",["\"Dear customer, you have 1 hour until boarding time at the Tallinn airport\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"priority\"","#7EE787"],[":","#C9D1D9"]," ",["\"HIGH\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"sound\"","#7EE787"],[":","#C9D1D9"]," ",["\"ring\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}},"SendMultiplePushesToIndirectEntitiesWithPersonalization":{"summary":"Send Push Notifications to multiple Users with personalization","value":{"lang":"json","value":"{\n  \"to\": [\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\",\n      \"variables\": {\n        \"item\": \"Macbook Pro M2 14\"\n      }\n    },\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\",\n      \"variables\": {\n        \"item\": \"Macbook Air M3\"\n      }\n    },\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\",\n      \"variables\": {\n        \"item\": \"iPhone 15\",\n        \"name\": \"John\"\n      }\n    }\n  ],\n  \"content\": {\n    \"title\": \"10% off your wishlist item!\",\n    \"body\": \"Hey {{name | default: 'there' }}, your wishlist item {{item}} is on sale this weekend only!\"\n  }\n}","meta":"","code":"{\n  \"to\": [\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\",\n      \"variables\": {\n        \"item\": \"Macbook Pro M2 14\"\n      }\n    },\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\",\n      \"variables\": {\n        \"item\": \"Macbook Air M3\"\n      }\n    },\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\",\n      \"variables\": {\n        \"item\": \"iPhone 15\",\n        \"name\": \"John\"\n      }\n    }\n  ],\n  \"content\": {\n    \"title\": \"10% off your wishlist item!\",\n    \"body\": \"Hey {{name | default: 'there' }}, your wishlist item {{item}} is on sale this weekend only!\"\n  }\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"to\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"userId\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"variables\"","#7EE787"],[": {","#C9D1D9"],"\n        ",["\"item\"","#7EE787"],[":","#C9D1D9"]," ",["\"Macbook Pro M2 14\"","#A5D6FF"],"\n      ",["}","#C9D1D9"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"userId\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"variables\"","#7EE787"],[": {","#C9D1D9"],"\n        ",["\"item\"","#7EE787"],[":","#C9D1D9"]," ",["\"Macbook Air M3\"","#A5D6FF"],"\n      ",["}","#C9D1D9"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"userId\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"variables\"","#7EE787"],[": {","#C9D1D9"],"\n        ",["\"item\"","#7EE787"],[":","#C9D1D9"]," ",["\"iPhone 15\"","#A5D6FF"],[",","#C9D1D9"],"\n        ",["\"name\"","#7EE787"],[":","#C9D1D9"]," ",["\"John\"","#A5D6FF"],"\n      ",["}","#C9D1D9"],"\n    ",["}","#C9D1D9"],"\n  ",["],","#C9D1D9"],"\n  ",["\"content\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"title\"","#7EE787"],[":","#C9D1D9"]," ",["\"10% off your wishlist item!\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"body\"","#7EE787"],[":","#C9D1D9"]," ",["\"Hey {{name | default: 'there' }}, your wishlist item {{item}} is on sale this weekend only!\"","#A5D6FF"],"\n  ",["}","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}},"SendAScheduledPush":{"summary":"Send a scheduled push","x-twilio-version":1,"value":{"lang":"json","value":"{\n  \"from\": {\n    \"fcm\": \"comms_credential_01h9krwprkeee8fzqspvwy6nq8\"\n  },\n  \"to\": [\n    {\n      \"token\": \"dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh\",\n      \"provider\": \"FCM\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Boarding time @ TLL\",\n    \"body\": \"Dear customer, you have 1 hour until boarding time at the Tallinn airport\"\n  },\n  \"priority\": \"HIGH\",\n  \"sound\": \"ring\",\n  \"schedule\": {\n    \"sendAt\": [\n      \"2023-08-31T14:15:22Z\"\n    ]\n  }\n}","meta":"","code":"{\n  \"from\": {\n    \"fcm\": \"comms_credential_01h9krwprkeee8fzqspvwy6nq8\"\n  },\n  \"to\": [\n    {\n      \"token\": \"dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh\",\n      \"provider\": \"FCM\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Boarding time @ TLL\",\n    \"body\": \"Dear customer, you have 1 hour until boarding time at the Tallinn airport\"\n  },\n  \"priority\": \"HIGH\",\n  \"sound\": \"ring\",\n  \"schedule\": {\n    \"sendAt\": [\n      \"2023-08-31T14:15:22Z\"\n    ]\n  }\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"from\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"fcm\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_credential_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"to\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"token\"","#7EE787"],[":","#C9D1D9"]," ",["\"dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"provider\"","#7EE787"],[":","#C9D1D9"]," ",["\"FCM\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["],","#C9D1D9"],"\n  ",["\"content\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"title\"","#7EE787"],[":","#C9D1D9"]," ",["\"Boarding time @ TLL\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"body\"","#7EE787"],[":","#C9D1D9"]," ",["\"Dear customer, you have 1 hour until boarding time at the Tallinn airport\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"priority\"","#7EE787"],[":","#C9D1D9"]," ",["\"HIGH\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"sound\"","#7EE787"],[":","#C9D1D9"]," ",["\"ring\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"schedule\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"sendAt\"","#7EE787"],[": [","#C9D1D9"],"\n      ",["\"2023-08-31T14:15:22Z\"","#A5D6FF"],"\n    ",["]","#C9D1D9"],"\n  ",["}","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}},"SendAPushToAUser":{"summary":"Send a push to a User","value":{"lang":"json","value":"{\n  \"to\": [\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Sale on your favorite artist!\",\n    \"body\": \"Hey John Dough, your favorite artist's new album is on sale right now! As a premium subscriber, you get an extra 25% off!\"\n  },\n  \"priority\": \"LOW\",\n  \"sound\": \"saxophone\"\n}","meta":"","code":"{\n  \"to\": [\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Sale on your favorite artist!\",\n    \"body\": \"Hey John Dough, your favorite artist's new album is on sale right now! As a premium subscriber, you get an extra 25% off!\"\n  },\n  \"priority\": \"LOW\",\n  \"sound\": \"saxophone\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"to\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"userId\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["],","#C9D1D9"],"\n  ",["\"content\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"title\"","#7EE787"],[":","#C9D1D9"]," ",["\"Sale on your favorite artist!\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"body\"","#7EE787"],[":","#C9D1D9"]," ",["\"Hey John Dough, your favorite artist's new album is on sale right now! As a premium subscriber, you get an extra 25% off!\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"priority\"","#7EE787"],[":","#C9D1D9"]," ",["\"LOW\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"sound\"","#7EE787"],[":","#C9D1D9"]," ",["\"saxophone\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}},"SendAPushToAUsersMobileAppWhenThereAreMultiple":{"summary":"Send a push to a User's mobile app when there are multiple","value":{"lang":"json","value":"{\n  \"from\": {\n    \"appName\": \"limonade_eats_app\"\n  },\n  \"to\": [\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Your food is here!\",\n    \"body\": \"Hey John, your food has arrived!\"\n  },\n  \"priority\": \"HIGH\"\n}","meta":"","code":"{\n  \"from\": {\n    \"appName\": \"limonade_eats_app\"\n  },\n  \"to\": [\n    {\n      \"userId\": \"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"\n    }\n  ],\n  \"content\": {\n    \"title\": \"Your food is here!\",\n    \"body\": \"Hey John, your food has arrived!\"\n  },\n  \"priority\": \"HIGH\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"from\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"appName\"","#7EE787"],[":","#C9D1D9"]," ",["\"limonade_eats_app\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"to\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"userId\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["],","#C9D1D9"],"\n  ",["\"content\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"title\"","#7EE787"],[":","#C9D1D9"]," ",["\"Your food is here!\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"body\"","#7EE787"],[":","#C9D1D9"]," ",["\"Hey John, your food has arrived!\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"priority\"","#7EE787"],[":","#C9D1D9"]," ",["\"HIGH\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}},"encodingType":"application/json","conditionalParameterMap":{}}
```

### Responses

<OperationResponse responses={[{"responseCode":"202","schema":{"x-twilio-version":1,"description":"The request was accepted and an Operation was created to track its progress. The response body contains the ID and link to the Operation resource.","headers":{"Location":{"x-twilio-version":1,"schema":{"x-twilio-version":1,"type":"string","format":"uri","description":"The location (uri) of the Operation resource identified by `operationId`.","refName":"OperationLocation","modelName":""},"description":"The location (uri) of the Operation resource.\nIssue a GET request to this URI to retrieve the status of the Operation."}},"content":{"application/json":{"schema":{"title":"Http202ResponseWithOperationBody","description":"Response body for HTTP 202 response with Operation data.","type":"object","required":["operationId","operationLocation"],"refName":"Http202ResponseWithOperationBody","modelName":"Http202ResponseWithOperationBody","properties":{"operationId":{"x-twilio-version":1,"description":"The Operation ID is an identifier that can be used to correlate all of the\nresources created in a request.\n\nIssue a GET request to the resource list location, using the Operation ID as a query parameter\nto retrieve the resources that correlate with the Operation.","title":"OperationId","type":"string","pattern":"^comms_operation_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_operation_01h9krwprkeee8fzqspvwy6nq8","refName":"OperationId","modelName":""},"operationLocation":{"x-twilio-version":1,"type":"string","format":"uri","description":"The location (uri) of the Operation resource identified by `operationId`.","refName":"OperationLocation","modelName":""}}},"examples":{"SendPushNotificationsAccepted":{"summary":"Send Push Notifications request accepted","x-twilio-version":1,"value":{"lang":"json","value":"{\n  \"operationId\": \"comms_operation_01h9krwprkeee8fzqspvwy6nq8\",\n  \"operationLocation\": \"https://comms.twilio.com/v1/PushNotifications/Operations/comms_operation_01h9krwprkeee8fzqspvwy6nq8\"\n}","meta":"","code":"{\n  \"operationId\": \"comms_operation_01h9krwprkeee8fzqspvwy6nq8\",\n  \"operationLocation\": \"https://comms.twilio.com/v1/PushNotifications/Operations/comms_operation_01h9krwprkeee8fzqspvwy6nq8\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"operationId\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_operation_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"operationLocation\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://comms.twilio.com/v1/PushNotifications/Operations/comms_operation_01h9krwprkeee8fzqspvwy6nq8\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}}}},{"responseCode":"400","schema":{"x-twilio-version":1,"description":"This error indicates that the request content was malformed or ambiguous.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ResourceNotFound":{"summary":"Resource not found","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"Not Found\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"Not Found\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20404","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Not Found\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20404\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http400Response","modelName":"__components_responses_Http400Response"}},{"responseCode":"429","schema":{"x-twilio-version":1,"description":"This error indicates that you have sent too many requests to the API. You should retry according to the `Retry-After` response header.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"TooManyRequests":{"summary":"Too Many Requests","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20429,\n      \"message\": \"Too many requests. Please retry according to the Retry-After response header.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20429\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20429,\n      \"message\": \"Too many requests. Please retry according to the Retry-After response header.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20429\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20429","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Too many requests. Please retry according to the Retry-After response header.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20429\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"headers":{"Retry-After":{"schema":{"type":"string"},"description":"The amount of time in seconds that the customer should wait before issuing a new request towards the API."}},"refName":"#/components/responses/Http429Response","modelName":"__components_responses_Http429Response"}},{"responseCode":"500","schema":{"x-twilio-version":1,"description":"This error indicates that the Twilio API is experiencing server-side issues. The request should not be retried.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"InternalServerError":{"summary":"Internal Server Error","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20500,\n      \"message\": \"Internal server error.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20500\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20500,\n      \"message\": \"Internal server error.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20500\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20500","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Internal server error.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20500\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http500Response","modelName":"__components_responses_Http500Response"}},{"responseCode":"503","schema":{"x-twilio-version":1,"description":"This error indicates that the Twilio API is temporarily unavailable.  You should retry according to the `Retry-After` response header.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ServiceUnavailable":{"summary":"Service Unavailable","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20503,\n      \"message\": \"Service unavailable.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20503\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20503,\n      \"message\": \"Service unavailable.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20503\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20503","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Service unavailable.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20503\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"headers":{"Retry-After":{"schema":{"type":"string"},"description":"The amount of time in seconds that the customer should wait before issuing a new request towards the API."}},"refName":"#/components/responses/Http503Response","modelName":"__components_responses_Http503Response"}}]} path="https://comms.twilio.com/v1/PushNotifications" method="post" specType="comms" />

Send a PushNotification

```ts
import { TwilioClient } from "twilio-comms";

async function main() {
    const client = new TwilioClient({
        accountId: "<username>",
        authToken: "<password>",
    });
    await client.pushNotifications.send({
        from: {
            fcm: "comms_credential_01h9krwprkeee8fzqspvwy6nq8",
            apn: "comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10",
        },
        to: [
            {
                token: "dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh",
                provider: "FCM",
            },
            {
                token: "utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq",
                provider: "APN",
            },
        ],
        content: {
            title: "Boarding time @ TLL",
            body: "Dear customer, you have 1 hour until boarding time at the Tallinn airport",
        },
        priority: "HIGH",
        sound: "ring",
    });
}
main();
```

```py
from twilio import TwilioComms, PushNotificationCredentialSender, SendPushNotificationDirectRecipient, PushNotificationContentBody

client = TwilioComms(
    account_id="<username>",
    auth_token="<password>",
)

client.push_notifications.send(
    from_=PushNotificationCredentialSender(
        fcm="comms_credential_01h9krwprkeee8fzqspvwy6nq8",
        apn="comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10",
    ),
    to=[
        SendPushNotificationDirectRecipient(
            token="dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh",
            provider="FCM",
        ),
        SendPushNotificationDirectRecipient(
            token="utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq",
            provider="APN",
        )
    ],
    content=PushNotificationContentBody(
        title="Boarding time @ TLL",
        body="Dear customer, you have 1 hour until boarding time at the Tallinn airport",
    ),
    priority="HIGH",
    sound="ring",
)
```

```cs
using TwilioComms;
using System.Threading.Tasks;
using System.Collections.Generic;
using OneOf;

public partial class Examples
{
    public async Task Example() {
        var client = new TwilioCommsClient(
            accountId: "<username>",
            authToken: "<password>"
        );

        await client.PushNotifications.SendAsync(
            new PushNotificationsSendRequest {
                From = new PushNotificationCredentialSender {
                    Fcm = "comms_credential_01h9krwprkeee8fzqspvwy6nq8",
                    Apn = "comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10"
                },
                To = new List<OneOf<SendPushNotificationDirectRecipient, SendPushNotificationsUserRecipient>>(){
                    new SendPushNotificationDirectRecipient {
                        Token = "dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh",
                        Provider = PushNotificationProvider.Fcm
                    },
                    new SendPushNotificationDirectRecipient {
                        Token = "utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq",
                        Provider = PushNotificationProvider.Apn
                    },
                }
                ,
                Content = new PushNotificationContentBody {
                    Title = "Boarding time @ TLL",
                    Body = "Dear customer, you have 1 hour until boarding time at the Tallinn airport"
                },
                Priority = PushNotificationPriority.High,
                Sound = "ring"
            }
        );
    }

}
```

```java
package com.example.usage;

import com.twilio.comms.TwilioCommsClient;
import com.twilio.comms.resources.pushnotifications.requests.PushNotificationsSendRequest;
import com.twilio.comms.resources.pushnotifications.types.PushNotificationsSendRequestFrom;
import com.twilio.comms.resources.pushnotifications.types.PushNotificationsSendRequestToItem;
import com.twilio.comms.types.PushNotificationContentBody;
import com.twilio.comms.types.PushNotificationCredentialSender;
import com.twilio.comms.types.PushNotificationPriority;
import com.twilio.comms.types.PushNotificationProvider;
import com.twilio.comms.types.SendPushNotificationDirectRecipient;
import java.util.Arrays;
import java.util.Optional;

public class Example {
    public static void main(String[] args) {
        TwilioCommsClient client = TwilioCommsClient
            .builder()
            .credentials("<username>", "<password>")
            .build();

        client.pushNotifications().send(
            PushNotificationsSendRequest
                .builder()
                .content(
                    PushNotificationContentBody
                        .builder()
                        .body("Dear customer, you have 1 hour until boarding time at the Tallinn airport")
                        .title("Boarding time @ TLL")
                        .build()
                )
                .to(
                    Arrays.asList(
                        PushNotificationsSendRequestToItem.of(
                            SendPushNotificationDirectRecipient
                                .builder()
                                .token("dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh")
                                .provider(PushNotificationProvider.FCM)
                                .build()
                        ),
                        PushNotificationsSendRequestToItem.of(
                            SendPushNotificationDirectRecipient
                                .builder()
                                .token("utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq")
                                .provider(PushNotificationProvider.APN)
                                .build()
                        )
                    )
                )
                .from(
                    PushNotificationsSendRequestFrom.of(
                        PushNotificationCredentialSender
                            .builder()
                            .fcm(Optional.of("comms_credential_01h9krwprkeee8fzqspvwy6nq8"))
                            .apn(Optional.of("comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10"))
                            .build()
                    )
                )
                .priority(PushNotificationPriority.HIGH)
                .sound("ring")
                .build()
        );
    }
}
```

```go
package example

import (
    context "context"

    twiliocomms "github.com/twilio/twilio-comms-go/twilio"
    client "github.com/twilio/twilio-comms-go/twilio/client"
    option "github.com/twilio/twilio-comms-go/twilio/option"
)

func do() {
    client := client.NewWithOptions(
        option.WithBasicAuth(
            "<username>",
            "<password>",
        ),
    )
    request := &twiliocomms.PushNotificationsSendRequest{
        From: &twiliocomms.PushNotificationsSendRequestFrom{
            PushNotificationCredentialSender: &twiliocomms.PushNotificationCredentialSender{
                Fcm: twiliocomms.String(
                    "comms_credential_01h9krwprkeee8fzqspvwy6nq8",
                ),
                Apn: twiliocomms.String(
                    "comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10",
                ),
            },
        },
        To: []*twiliocomms.PushNotificationsSendRequestToItem{
            &twiliocomms.PushNotificationsSendRequestToItem{
                SendPushNotificationDirectRecipient: &twiliocomms.SendPushNotificationDirectRecipient{
                    Token: "dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh",
                    Provider: twiliocomms.PushNotificationProviderFcm,
                },
            },
            &twiliocomms.PushNotificationsSendRequestToItem{
                SendPushNotificationDirectRecipient: &twiliocomms.SendPushNotificationDirectRecipient{
                    Token: "utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq",
                    Provider: twiliocomms.PushNotificationProviderApn,
                },
            },
        },
        Content: &twiliocomms.PushNotificationContentBody{
            Title: twiliocomms.String(
                "Boarding time @ TLL",
            ),
            Body: "Dear customer, you have 1 hour until boarding time at the Tallinn airport",
        },
        Priority: twiliocomms.PushNotificationPriorityHigh.Ptr(),
        Sound: twiliocomms.String(
            "ring",
        ),
    }
    client.PushNotifications.Send(
        context.TODO(),
        request,
    )
}
```

```php
<?php

namespace Example;

use Twilio\TwilioComms;
use Twilio\PushNotifications\Requests\PushNotificationsSendRequest;
use Twilio\Types\PushNotificationCredentialSender;
use Twilio\Types\SendPushNotificationDirectRecipient;
use Twilio\Types\PushNotificationProvider;
use Twilio\Types\PushNotificationContentBody;
use Twilio\Types\PushNotificationPriority;

$client = new TwilioComms(
    accountId: '<username>',
    authToken: '<password>',
);
$client->pushNotifications->send(
    new PushNotificationsSendRequest([
        'from' => new PushNotificationCredentialSender([
            'fcm' => 'comms_credential_01h9krwprkeee8fzqspvwy6nq8',
            'apn' => 'comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10',
        ]),
        'to' => [
            new SendPushNotificationDirectRecipient([
                'token' => 'dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh',
                'provider' => PushNotificationProvider::Fcm->value,
            ]),
            new SendPushNotificationDirectRecipient([
                'token' => 'utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq',
                'provider' => PushNotificationProvider::Apn->value,
            ]),
        ],
        'content' => new PushNotificationContentBody([
            'title' => 'Boarding time @ TLL',
            'body' => 'Dear customer, you have 1 hour until boarding time at the Tallinn airport',
        ]),
        'priority' => PushNotificationPriority::High->value,
        'sound' => 'ring',
    ]),
);
```

```rb
require "twilio"

client = Twilio::Client.new(
  account_id: "<username>",
  auth_token: "<password>"
)

client.push_notifications.send_(
  from: {
    fcm: "comms_credential_01h9krwprkeee8fzqspvwy6nq8",
    apn: "comms_credential_8qn6ywvpsqzf8eeekrpwrk9h10"
  },
  to: [{
    token: "dqWD7WEC83K41WHyufTS7:APA91bFcrVaOLqKeJfSiEutJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFA_ukXD89hGqG3OarzbVfdjGnLOIAQfwbQcqJkjQWMrhwElrtU1y3JLDPfnjc0eTJLxzhyYvDFopEh",
    provider: "FCM"
  }, {
    token: "utJXX2Tr9wN_tYOwYd8rFA6mYUMBFqdz9n6k3v5EpFAukXD89hGq",
    provider: "APN"
  }],
  content: {
    title: "Boarding time @ TLL",
    body: "Dear customer, you have 1 hour until boarding time at the Tallinn airport"
  },
  priority: "HIGH",
  sound: "ring"
)
```

```bash
curl -X POST 'https://comms.twilio.com/v1/PushNotifications' \
--header 'Content-Type: application/json' \
--data '{
    "from": {
        "fcm": "your_fcm_credential_id",
        "apn": "your_apn_credential_id"
    },
    "to": [
        {
            "token": "your_fcm_device_token",
            "provider": "FCM"
        },
        {
            "token": "your_apn_device_token",
            "provider": "APN"
        }
    ],
    "content": {
        "title": "Boarding time",
        "body": "You have 1 hour until boarding time"
    },
    "priority": "HIGH",
    "sound": "ring"
}' \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

## Fetch a PushNotification

`GET https://comms.twilio.com/v1/PushNotifications/{pushNotificationId}`

Retrieve a single PushNotification resource by making an HTTP `GET` request to the PushNotification resource URI with the PushNotification ID.

### Path parameters

```json
[{"schema":{"x-twilio-version":1,"title":"PushNotificationId","description":"A reference to a PushNotification.","type":"string","pattern":"^comms_pushnotification_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationId","modelName":""},"x-twilio-version":1,"name":"pushNotificationId","in":"path","required":true}]
```

### Responses

<OperationResponse responses={[{"responseCode":"200","schema":{"description":"OK","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"PushNotification","type":"object","description":"A push notification is a short, ephemeral message sent to an Android device, iOS device or web browser session.","required":["content","createdAt","from","id","status","to","updatedAt"],"refName":["PushNotificationBase","PushNotificationContentResolved"],"modelName":["PushNotificationBase","PushNotificationContentResolved"],"properties":{"id":{"x-twilio-version":1,"title":"PushNotificationId","description":"A reference to a PushNotification.","type":"string","pattern":"^comms_pushnotification_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationId","modelName":""},"from":{"x-twilio-version":1,"title":"PushNotificationCredentialSender","description":"For each supported provider, a `Credential.Id` can be provided.\n\nEnsure that the `Credential.credentialType`s of each `Credential`\nmatches the name of the respective fields.","type":"object","refName":"PushNotificationCredentialSender","modelName":"PushNotificationCredentialSender","additionalProperties":false,"properties":{"fcm":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""},"apn":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""}}},"to":{"title":"PushNotificationRecipient","description":"The recipient of the Push Notification","oneOf":[{"title":"PushNotificationTokenRecipient","description":"A recipient identified by a push token","type":"object","properties":{"token":{"type":"string","description":"Identifies a single device for delivering push notifications via the specified provider."},"provider":{"x-twilio-version":1,"title":"PushNotificationProvider","description":"Push notification service provider.","type":"string","enum":["APN","FCM"],"refName":"PushNotificationProvider","modelName":"PushNotificationProvider"}},"required":["token","provider"]},{"title":"PushNotificationUserRecipient","description":"A recipient identified by their `userId`","properties":{"userId":{"x-twilio-version":1,"title":"PushNotificationUserId","description":"A reference to a Push Notification User.","type":"string","pattern":"^comms_pushnotificationuser_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationUserId","modelName":""}},"required":["userId"]}]},"priority":{"x-twilio-version":1,"title":"PushNotificationPriority","description":"The priority of the Push Notification. A value of \"low\" reduces the client app battery consumption. A value of \"high\" sends the notification immediately and can wake up a sleeping device.","type":"string","enum":["HIGH","LOW"],"default":"HIGH","refName":"PushNotificationPriority","modelName":"PushNotificationPriority"},"sound":{"type":["string","null"],"description":"The name of the sound to be played for the push notification."},"status":{"x-twilio-version":1,"title":"PushNotificationStatus","description":"The status of a `Push Notification` resource. The status can be one of the following:\n- `scheduled` The `Push Notification`  is scheduled to be sent by\n  Twilio in the future.\n\n- `queued` The `Push Notification` is queued in Twilio for sending.\n- `sent` The `Push Notification` resource has been sent by Twilio.\n- `failed` The `Push Notification` resource processing failed inside Twilio.\n  Use `GET /PushNotifications/Operations/{operationId}/Errors` for more details.\n\n- `canceled` The communication resource was canceled via API request.","type":"string","enum":["SCHEDULED","QUEUED","SENT","FAILED","CANCELED"],"refName":"PushNotificationStatus","modelName":"PushNotificationStatus"},"createdAt":{"description":"The date and time when the Push Notification was created, in ISO 8601 format.","type":"string","format":"date-time"},"updatedAt":{"description":"The date and time when the Push Notification was last updated, in ISO 8601 format.","type":"string","format":"date-time"},"content":{"title":"PushNotificationContent","description":"The content of the Push Notification.","oneOf":[{"x-twilio-version":1,"title":"PushNotificationContentBodyResolved","type":"object","description":"A resolved push notification content object with body.","properties":{"title":{"type":"string","description":"The title of the push notification. Defaults to the app name."},"body":{"type":"string","description":"A simple content string."}},"required":["body"],"refName":"PushNotificationContentBodyResolved","modelName":"PushNotificationContentBodyResolved"}]}}},"examples":{"PushNotificationSent":{"summary":"Push Notification Sent","x-twilio-version":1,"value":{"lang":"json","value":"{\n  \"id\": \"comms_pushnotification_3de3vbxqx0aghtdy1jgf9qdteh\",\n  \"from\": {\n    \"fcm\": \"comms_credential_b554a2dc48d74ff03500c2a582349cad\"\n  },\n  \"to\": {\n    \"provider\": \"FCM\",\n    \"token\": \"dQvBnKpXmRtYwLzHjFsEuA:APA91bHNaWc-KdLePfQgShTiUjVk_WlXmYnZoApBqCr-DsEtFuGvHwIxJy_KzLaMbNcOdPeQfRgShTiUjVk-WlXmYnZoApBqCrDsEtFuGvHwIxJy_KzLaMbNcO\"\n  },\n  \"content\": {\n    \"title\": \"Limon Eats\",\n    \"body\": \"Your order is on the way!\"\n  },\n  \"status\": \"SENT\",\n  \"priority\": \"HIGH\",\n  \"sound\": null,\n  \"createdAt\": \"2025-05-30T17:24:46Z\",\n  \"updatedAt\": \"2025-05-30T17:24:49Z\"\n}","meta":"","code":"{\n  \"id\": \"comms_pushnotification_3de3vbxqx0aghtdy1jgf9qdteh\",\n  \"from\": {\n    \"fcm\": \"comms_credential_b554a2dc48d74ff03500c2a582349cad\"\n  },\n  \"to\": {\n    \"provider\": \"FCM\",\n    \"token\": \"dQvBnKpXmRtYwLzHjFsEuA:APA91bHNaWc-KdLePfQgShTiUjVk_WlXmYnZoApBqCr-DsEtFuGvHwIxJy_KzLaMbNcOdPeQfRgShTiUjVk-WlXmYnZoApBqCrDsEtFuGvHwIxJy_KzLaMbNcO\"\n  },\n  \"content\": {\n    \"title\": \"Limon Eats\",\n    \"body\": \"Your order is on the way!\"\n  },\n  \"status\": \"SENT\",\n  \"priority\": \"HIGH\",\n  \"sound\": null,\n  \"createdAt\": \"2025-05-30T17:24:46Z\",\n  \"updatedAt\": \"2025-05-30T17:24:49Z\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"id\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotification_3de3vbxqx0aghtdy1jgf9qdteh\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"from\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"fcm\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_credential_b554a2dc48d74ff03500c2a582349cad\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"to\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"provider\"","#7EE787"],[":","#C9D1D9"]," ",["\"FCM\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"token\"","#7EE787"],[":","#C9D1D9"]," ",["\"dQvBnKpXmRtYwLzHjFsEuA:APA91bHNaWc-KdLePfQgShTiUjVk_WlXmYnZoApBqCr-DsEtFuGvHwIxJy_KzLaMbNcOdPeQfRgShTiUjVk-WlXmYnZoApBqCrDsEtFuGvHwIxJy_KzLaMbNcO\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"content\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"title\"","#7EE787"],[":","#C9D1D9"]," ",["\"Limon Eats\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"body\"","#7EE787"],[":","#C9D1D9"]," ",["\"Your order is on the way!\"","#A5D6FF"],"\n  ",["},","#C9D1D9"],"\n  ",["\"status\"","#7EE787"],[":","#C9D1D9"]," ",["\"SENT\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"priority\"","#7EE787"],[":","#C9D1D9"]," ",["\"HIGH\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"sound\"","#7EE787"],[":","#C9D1D9"]," ",["null","#79C0FF"],[",","#C9D1D9"],"\n  ",["\"createdAt\"","#7EE787"],[":","#C9D1D9"]," ",["\"2025-05-30T17:24:46Z\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"updatedAt\"","#7EE787"],[":","#C9D1D9"]," ",["\"2025-05-30T17:24:49Z\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}}}},{"responseCode":"400","schema":{"x-twilio-version":1,"description":"This error indicates that the request content was malformed or ambiguous.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ResourceNotFound":{"summary":"Resource not found","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"Not Found\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"Not Found\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20404","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Not Found\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20404\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http400Response","modelName":"__components_responses_Http400Response"}},{"responseCode":"404","schema":{"x-twilio-version":1,"description":"This error indicates that the requested resource was not found.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ResourceNotFound":{"summary":"404 Response","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"The resource was not found.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"The resource was not found.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20404","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The resource was not found.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20404\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http404Response","modelName":"__components_responses_Http404Response"}},{"responseCode":"429","schema":{"x-twilio-version":1,"description":"This error indicates that you have sent too many requests to the API. You should retry according to the `Retry-After` response header.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"TooManyRequests":{"summary":"Too Many Requests","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20429,\n      \"message\": \"Too many requests. Please retry according to the Retry-After response header.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20429\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20429,\n      \"message\": \"Too many requests. Please retry according to the Retry-After response header.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20429\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20429","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Too many requests. Please retry according to the Retry-After response header.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20429\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"headers":{"Retry-After":{"schema":{"type":"string"},"description":"The amount of time in seconds that the customer should wait before issuing a new request towards the API."}},"refName":"#/components/responses/Http429Response","modelName":"__components_responses_Http429Response"}},{"responseCode":"500","schema":{"x-twilio-version":1,"description":"This error indicates that the Twilio API is experiencing server-side issues. The request should not be retried.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"InternalServerError":{"summary":"Internal Server Error","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20500,\n      \"message\": \"Internal server error.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20500\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20500,\n      \"message\": \"Internal server error.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20500\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20500","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Internal server error.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20500\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http500Response","modelName":"__components_responses_Http500Response"}},{"responseCode":"503","schema":{"x-twilio-version":1,"description":"This error indicates that the Twilio API is temporarily unavailable.  You should retry according to the `Retry-After` response header.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ServiceUnavailable":{"summary":"Service Unavailable","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20503,\n      \"message\": \"Service unavailable.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20503\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20503,\n      \"message\": \"Service unavailable.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20503\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20503","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Service unavailable.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20503\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"headers":{"Retry-After":{"schema":{"type":"string"},"description":"The amount of time in seconds that the customer should wait before issuing a new request towards the API."}},"refName":"#/components/responses/Http503Response","modelName":"__components_responses_Http503Response"}}]} path="https://comms.twilio.com/v1/PushNotifications/{pushNotificationId}" method="get" specType="comms" />

Fetch a PushNotification

```ts
import { TwilioClient } from "twilio-comms";

async function main() {
    const client = new TwilioClient({
        accountId: "<username>",
        authToken: "<password>",
    });
    await client.pushNotifications.fetch("comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8");
}
main();
```

```py
from twilio import TwilioComms

client = TwilioComms(
    account_id="<username>",
    auth_token="<password>",
)

client.push_notifications.fetch(
    push_notification_id="comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8",
)
```

```cs
using TwilioComms;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new TwilioCommsClient(
            accountId: "<username>",
            authToken: "<password>"
        );

        await client.PushNotifications.FetchAsync(
            "comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8"
        );
    }

}
```

```java
package com.example.usage;

import com.twilio.comms.TwilioCommsClient;

public class Example {
    public static void main(String[] args) {
        TwilioCommsClient client = TwilioCommsClient
            .builder()
            .credentials("<username>", "<password>")
            .build();

        client.pushNotifications().fetch("comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8");
    }
}
```

```go
package example

import (
    context "context"

    client "github.com/twilio/twilio-comms-go/twilio/client"
    option "github.com/twilio/twilio-comms-go/twilio/option"
)

func do() {
    client := client.NewWithOptions(
        option.WithBasicAuth(
            "<username>",
            "<password>",
        ),
    )
    client.PushNotifications.Fetch(
        context.TODO(),
        "comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8",
    )
}
```

```php
<?php

namespace Example;

use Twilio\TwilioComms;

$client = new TwilioComms(
    accountId: '<username>',
    authToken: '<password>',
);
$client->pushNotifications->fetch(
    'comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8',
);
```

```rb
require "twilio"

client = Twilio::Client.new(
  account_id: "<username>",
  auth_token: "<password>"
)

client.push_notifications.fetch(push_notification_id: "comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8")
```

```bash
curl 'https://comms.twilio.com/v1/PushNotifications/{pushNotificationId}' \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

## List PushNotifications

`GET https://comms.twilio.com/v1/PushNotifications`

Returns a list of Notifications. You can filter by operation ID, status, tags, date range, User, or provider.

### Query parameters

````json
[{"in":"query","name":"operationId","description":"Filter Push Notifications by Operation ID.","schema":{"x-twilio-version":1,"description":"The Operation ID is an identifier that can be used to correlate all of the\nresources created in a request.\n\nIssue a GET request to the resource list location, using the Operation ID as a query parameter\nto retrieve the resources that correlate with the Operation.","title":"OperationId","type":"string","pattern":"^comms_operation_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_operation_01h9krwprkeee8fzqspvwy6nq8","refName":"OperationId","modelName":""}},{"in":"query","name":"status","description":"Filter Push Notifications by Delivery Status.","schema":{"x-twilio-version":1,"title":"PushNotificationStatus","description":"The status of a `Push Notification` resource. The status can be one of the following:\n- `scheduled` The `Push Notification`  is scheduled to be sent by\n  Twilio in the future.\n\n- `queued` The `Push Notification` is queued in Twilio for sending.\n- `sent` The `Push Notification` resource has been sent by Twilio.\n- `failed` The `Push Notification` resource processing failed inside Twilio.\n  Use `GET /PushNotifications/Operations/{operationId}/Errors` for more details.\n\n- `canceled` The communication resource was canceled via API request.","type":"string","enum":["SCHEDULED","QUEUED","SENT","FAILED","CANCELED"],"refName":"PushNotificationStatus","modelName":"PushNotificationStatus"}},{"in":"query","name":"tags","description":"Match Push Notifications by one or many tags. \nIf more than one tag is specified in the query,\nthe search will return only results that have ALL the matching tags.\n\nFor Example: \n```\nGET /PushNotifications?tags=ageGroup:20s;industry:engineering;\n```","schema":{"x-twilio-version":1,"title":"TagsString","type":"string","description":"Custom metadata in the form of key-value pairs.\nMust be in the key value format: key1:value;key2:value;\n\nExample:\n```json\n{\n  \"key1\":\"value1\",\n  \"key2\":\"value2\"\n}\n```\n\nShould be inputted as:\n```\n?tags=key1:value;key2:value;\n```","pattern":"^(?:[a-zA-Z0-9._~-]+:[a-zA-Z0-9._~-]+;){1,10}$","example":"key_1:value;key_2:value;","refName":"TagsString","modelName":""}},{"in":"query","name":"startDate","description":"Filter to Push Notifications created after the specified date and time.","schema":{"type":"string","format":"date-time"}},{"in":"query","name":"endDate","description":"Filter to Push Notifications created before the specified date and time.","schema":{"type":"string","format":"date-time"}},{"in":"query","name":"user","description":"Filter Push Notifications sent to a specific User.","schema":{"x-twilio-version":1,"title":"PushNotificationUserId","description":"A reference to a Push Notification User.","type":"string","pattern":"^comms_pushnotificationuser_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationUserId","modelName":""}},{"in":"query","name":"provider","description":"Filter Push Notifications by provider.","schema":{"x-twilio-version":1,"title":"PushNotificationProvider","description":"Push notification service provider.","type":"string","enum":["APN","FCM"],"refName":"PushNotificationProvider","modelName":"PushNotificationProvider"}},{"in":"query","name":"pageToken","description":"The token to retrieve the next page of results.","schema":{"x-twilio-version":1,"description":"The token that identifies the page of resources to fetch.","title":"PageToken","type":"string","refName":"PageToken","modelName":""}},{"in":"query","name":"pageSize","description":"The number of resources to return in a page.","schema":{"x-twilio-version":1,"description":"Total number of items returned in a single page, the minimum is 1 and maximum is 1000. Default is 50.","title":"PageSize","type":"integer","minimum":1,"maximum":1000,"default":50,"example":50,"refName":"PageSize","modelName":""}}]
````

### Responses

<OperationResponse responses={[{"responseCode":"200","schema":{"description":"OK","content":{"application/json":{"schema":{"title":"ListPushNotificationsResponse","type":"object","required":["pushNotifications","pagination"],"properties":{"pushNotifications":{"type":"array","items":{"x-twilio-version":1,"title":"PushNotificationMetadata","type":"object","description":"The PushNotificationMetadata provides information about the PushNotification. Does not include the Content.","required":["id","to","from","status","createdAt","updatedAt"],"refName":"PushNotificationBase","modelName":"PushNotificationBase","properties":{"id":{"x-twilio-version":1,"title":"PushNotificationId","description":"A reference to a PushNotification.","type":"string","pattern":"^comms_pushnotification_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotification_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationId","modelName":""},"from":{"x-twilio-version":1,"title":"PushNotificationCredentialSender","description":"For each supported provider, a `Credential.Id` can be provided.\n\nEnsure that the `Credential.credentialType`s of each `Credential`\nmatches the name of the respective fields.","type":"object","refName":"PushNotificationCredentialSender","modelName":"PushNotificationCredentialSender","additionalProperties":false,"properties":{"fcm":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""},"apn":{"x-twilio-version":1,"title":"CredentialId","description":"A reference to Credential.","type":"string","pattern":"^comms_credential_[a-hjkmnpqrstv-z0-9]{26,34}","example":"comms_credential_01h9krwprkeee8fzqspvwy6nq8","refName":"CredentialId","modelName":""}}},"to":{"title":"PushNotificationRecipient","description":"The recipient of the Push Notification","oneOf":[{"title":"PushNotificationTokenRecipient","description":"A recipient identified by a push token","type":"object","properties":{"token":{"type":"string","description":"Identifies a single device for delivering push notifications via the specified provider."},"provider":{"x-twilio-version":1,"title":"PushNotificationProvider","description":"Push notification service provider.","type":"string","enum":["APN","FCM"],"refName":"PushNotificationProvider","modelName":"PushNotificationProvider"}},"required":["token","provider"]},{"title":"PushNotificationUserRecipient","description":"A recipient identified by their `userId`","properties":{"userId":{"x-twilio-version":1,"title":"PushNotificationUserId","description":"A reference to a Push Notification User.","type":"string","pattern":"^comms_pushnotificationuser_[0-7][a-hjkmnpqrstv-z0-9]{25,34}","example":"comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8","refName":"PushNotificationUserId","modelName":""}},"required":["userId"]}]},"priority":{"x-twilio-version":1,"title":"PushNotificationPriority","description":"The priority of the Push Notification. A value of \"low\" reduces the client app battery consumption. A value of \"high\" sends the notification immediately and can wake up a sleeping device.","type":"string","enum":["HIGH","LOW"],"default":"HIGH","refName":"PushNotificationPriority","modelName":"PushNotificationPriority"},"sound":{"type":["string","null"],"description":"The name of the sound to be played for the push notification."},"status":{"x-twilio-version":1,"title":"PushNotificationStatus","description":"The status of a `Push Notification` resource. The status can be one of the following:\n- `scheduled` The `Push Notification`  is scheduled to be sent by\n  Twilio in the future.\n\n- `queued` The `Push Notification` is queued in Twilio for sending.\n- `sent` The `Push Notification` resource has been sent by Twilio.\n- `failed` The `Push Notification` resource processing failed inside Twilio.\n  Use `GET /PushNotifications/Operations/{operationId}/Errors` for more details.\n\n- `canceled` The communication resource was canceled via API request.","type":"string","enum":["SCHEDULED","QUEUED","SENT","FAILED","CANCELED"],"refName":"PushNotificationStatus","modelName":"PushNotificationStatus"},"createdAt":{"description":"The date and time when the Push Notification was created, in ISO 8601 format.","type":"string","format":"date-time"},"updatedAt":{"description":"The date and time when the Push Notification was last updated, in ISO 8601 format.","type":"string","format":"date-time"}}}},"pagination":{"x-twilio-version":1,"title":"PaginationMetadata","description":"Metadata for paginated results. \nThis object contains two tokens to navigate through paginated results. \n- Use `next` to retrieve the 'next' page in the result list.\n- Use `self` to retrieve the same page of the result list again. \n- Supply the token in the `pageToken` query param.","type":"object","required":["next","self"],"refName":"PaginationMetadata","modelName":"PaginationMetadata","properties":{"next":{"description":"Token for the next page of results. \nSupply the token in the `pageToken` query param.","type":["string","null"]},"self":{"description":"Token for the current page of results. \nSupply the token in the `pageToken` query param.","type":"string"}}}}},"examples":{"ListOfPushNotifications":{"summary":"List of Push Notifications","x-twilio-version":1,"value":{"lang":"json","value":"{\n  \"pushNotifications\": [\n    {\n      \"id\": \"comms_pushnotification_3de3vbxqx0aghtdy1jgf9qdteh\",\n      \"from\": {\n        \"fcm\": \"comms_credential_b554a2dc48d74ff03500c2a582349cad\"\n      },\n      \"to\": {\n        \"provider\": \"FCM\",\n        \"token\": \"dQvBnKpXmRtYwLzHjFsEuA:APA91bHNaWc-KdLePfQgShTiUjVk_WlXmYnZoApBqCr-DsEtFuGvHwIxJy_KzLaMbNcOdPeQfRgShTiUjVk-WlXmYnZoApBqCrDsEtFuGvHwIxJy_KzLaMbNcO\"\n      },\n      \"status\": \"SENT\",\n      \"priority\": \"HIGH\",\n      \"sound\": \"bell_ring\",\n      \"createdAt\": \"2025-05-30T17:24:46Z\",\n      \"updatedAt\": \"2025-05-30T17:24:49Z\"\n    }\n  ],\n  \"pagination\": {\n    \"next\": null,\n    \"self\": \"eyJTSyI6IkEjMDFqbmVoYm5xYWZmNDlrazUxZHA1bmN5bXciLCJTSzEiOiJBI2FjdGl2YXRlZCMyMDI1LTAzLTAzVDE3OjM3OjQ3WiMwMWpuZWhibnFhZmY0OWtrNTFkcDVuY3ltdyIsIlBLIjoiQyNBQzYwMzg4ODJiZDY5ZWIyNGM4YzU4ZGI5NjE4NjE3OTE4I0EifQ==\"\n  }\n}","meta":"","code":"{\n  \"pushNotifications\": [\n    {\n      \"id\": \"comms_pushnotification_3de3vbxqx0aghtdy1jgf9qdteh\",\n      \"from\": {\n        \"fcm\": \"comms_credential_b554a2dc48d74ff03500c2a582349cad\"\n      },\n      \"to\": {\n        \"provider\": \"FCM\",\n        \"token\": \"dQvBnKpXmRtYwLzHjFsEuA:APA91bHNaWc-KdLePfQgShTiUjVk_WlXmYnZoApBqCr-DsEtFuGvHwIxJy_KzLaMbNcOdPeQfRgShTiUjVk-WlXmYnZoApBqCrDsEtFuGvHwIxJy_KzLaMbNcO\"\n      },\n      \"status\": \"SENT\",\n      \"priority\": \"HIGH\",\n      \"sound\": \"bell_ring\",\n      \"createdAt\": \"2025-05-30T17:24:46Z\",\n      \"updatedAt\": \"2025-05-30T17:24:49Z\"\n    }\n  ],\n  \"pagination\": {\n    \"next\": null,\n    \"self\": \"eyJTSyI6IkEjMDFqbmVoYm5xYWZmNDlrazUxZHA1bmN5bXciLCJTSzEiOiJBI2FjdGl2YXRlZCMyMDI1LTAzLTAzVDE3OjM3OjQ3WiMwMWpuZWhibnFhZmY0OWtrNTFkcDVuY3ltdyIsIlBLIjoiQyNBQzYwMzg4ODJiZDY5ZWIyNGM4YzU4ZGI5NjE4NjE3OTE4I0EifQ==\"\n  }\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"pushNotifications\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"id\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_pushnotification_3de3vbxqx0aghtdy1jgf9qdteh\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"from\"","#7EE787"],[": {","#C9D1D9"],"\n        ",["\"fcm\"","#7EE787"],[":","#C9D1D9"]," ",["\"comms_credential_b554a2dc48d74ff03500c2a582349cad\"","#A5D6FF"],"\n      ",["},","#C9D1D9"],"\n      ",["\"to\"","#7EE787"],[": {","#C9D1D9"],"\n        ",["\"provider\"","#7EE787"],[":","#C9D1D9"]," ",["\"FCM\"","#A5D6FF"],[",","#C9D1D9"],"\n        ",["\"token\"","#7EE787"],[":","#C9D1D9"]," ",["\"dQvBnKpXmRtYwLzHjFsEuA:APA91bHNaWc-KdLePfQgShTiUjVk_WlXmYnZoApBqCr-DsEtFuGvHwIxJy_KzLaMbNcOdPeQfRgShTiUjVk-WlXmYnZoApBqCrDsEtFuGvHwIxJy_KzLaMbNcO\"","#A5D6FF"],"\n      ",["},","#C9D1D9"],"\n      ",["\"status\"","#7EE787"],[":","#C9D1D9"]," ",["\"SENT\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"priority\"","#7EE787"],[":","#C9D1D9"]," ",["\"HIGH\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"sound\"","#7EE787"],[":","#C9D1D9"]," ",["\"bell_ring\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"createdAt\"","#7EE787"],[":","#C9D1D9"]," ",["\"2025-05-30T17:24:46Z\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"updatedAt\"","#7EE787"],[":","#C9D1D9"]," ",["\"2025-05-30T17:24:49Z\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["],","#C9D1D9"],"\n  ",["\"pagination\"","#7EE787"],[": {","#C9D1D9"],"\n    ",["\"next\"","#7EE787"],[":","#C9D1D9"]," ",["null","#79C0FF"],[",","#C9D1D9"],"\n    ",["\"self\"","#7EE787"],[":","#C9D1D9"]," ",["\"eyJTSyI6IkEjMDFqbmVoYm5xYWZmNDlrazUxZHA1bmN5bXciLCJTSzEiOiJBI2FjdGl2YXRlZCMyMDI1LTAzLTAzVDE3OjM3OjQ3WiMwMWpuZWhibnFhZmY0OWtrNTFkcDVuY3ltdyIsIlBLIjoiQyNBQzYwMzg4ODJiZDY5ZWIyNGM4YzU4ZGI5NjE4NjE3OTE4I0EifQ==\"","#A5D6FF"],"\n  ",["}","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}}}},{"responseCode":"400","schema":{"x-twilio-version":1,"description":"This error indicates that the request content was malformed or ambiguous.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ResourceNotFound":{"summary":"Resource not found","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"Not Found\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20404,\n      \"message\": \"Not Found\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20404\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20404","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Not Found\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20404\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http400Response","modelName":"__components_responses_Http400Response"}},{"responseCode":"429","schema":{"x-twilio-version":1,"description":"This error indicates that you have sent too many requests to the API. You should retry according to the `Retry-After` response header.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"TooManyRequests":{"summary":"Too Many Requests","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20429,\n      \"message\": \"Too many requests. Please retry according to the Retry-After response header.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20429\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20429,\n      \"message\": \"Too many requests. Please retry according to the Retry-After response header.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20429\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20429","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Too many requests. Please retry according to the Retry-After response header.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20429\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"headers":{"Retry-After":{"schema":{"type":"string"},"description":"The amount of time in seconds that the customer should wait before issuing a new request towards the API."}},"refName":"#/components/responses/Http429Response","modelName":"__components_responses_Http429Response"}},{"responseCode":"500","schema":{"x-twilio-version":1,"description":"This error indicates that the Twilio API is experiencing server-side issues. The request should not be retried.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"InternalServerError":{"summary":"Internal Server Error","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20500,\n      \"message\": \"Internal server error.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20500\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20500,\n      \"message\": \"Internal server error.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20500\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20500","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Internal server error.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20500\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"refName":"#/components/responses/Http500Response","modelName":"__components_responses_Http500Response"}},{"responseCode":"503","schema":{"x-twilio-version":1,"description":"This error indicates that the Twilio API is temporarily unavailable.  You should retry according to the `Retry-After` response header.","content":{"application/json":{"schema":{"x-twilio-version":1,"title":"TwilioErrors","type":"object","required":["errors"],"example":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 21614,\n      \"message\": \"The address specified in the request is not a valid phone number.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21614\",\n      \"context\": \"$.to[0].address\"\n    },\n    {\n      \"code\": 21617,\n      \"message\": \"The concatenated message text exceeds the 1600 character limit\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/21617\",\n      \"context\": \"$.content.text\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21614","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The address specified in the request is not a valid phone number.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21614\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.to[0].address\"","#A5D6FF"],"\n    ",["},","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["21617","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"The concatenated message text exceeds the 1600 character limit\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/21617\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"$.content.text\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}},"refName":"TwilioErrors","modelName":"TwilioErrors","properties":{"errors":{"description":"A list of one or more Twilio API errors.","type":"array","items":{"x-twilio-version":1,"title":"TwilioError","type":"object","description":"A generic error object communicating client and server side API errors.","required":["code","message","infoUrl","context"],"example":{"code":21614,"message":"The address specified in the request is not a valid phone number.","infoUrl":"https://www.twilio.com/docs/api/errors/21614","context":"$.to[0].address"},"refName":"TwilioError","modelName":"TwilioError","properties":{"code":{"type":"integer","description":"The Twilio error code."},"message":{"type":"string","description":"A human readable message describing the error."},"infoUrl":{"type":"string","format":"uri","description":"A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code."},"context":{"description":"A JSON path that identifies the errant field.","type":["string","null"]}}}}}},"examples":{"ServiceUnavailable":{"summary":"Service Unavailable","value":{"lang":"json","value":"{\n  \"errors\": [\n    {\n      \"code\": 20503,\n      \"message\": \"Service unavailable.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20503\",\n      \"context\": \"null\"\n    }\n  ]\n}","meta":"","code":"{\n  \"errors\": [\n    {\n      \"code\": 20503,\n      \"message\": \"Service unavailable.\",\n      \"infoUrl\": \"https://www.twilio.com/docs/api/errors/20503\",\n      \"context\": \"null\"\n    }\n  ]\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"errors\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["{","#C9D1D9"],"\n      ",["\"code\"","#7EE787"],[":","#C9D1D9"]," ",["20503","#79C0FF"],[",","#C9D1D9"],"\n      ",["\"message\"","#7EE787"],[":","#C9D1D9"]," ",["\"Service unavailable.\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"infoUrl\"","#7EE787"],[":","#C9D1D9"]," ",["\"https://www.twilio.com/docs/api/errors/20503\"","#A5D6FF"],[",","#C9D1D9"],"\n      ",["\"context\"","#7EE787"],[":","#C9D1D9"]," ",["\"null\"","#A5D6FF"],"\n    ",["}","#C9D1D9"],"\n  ",["]","#C9D1D9"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}}}},"headers":{"Retry-After":{"schema":{"type":"string"},"description":"The amount of time in seconds that the customer should wait before issuing a new request towards the API."}},"refName":"#/components/responses/Http503Response","modelName":"__components_responses_Http503Response"}}]} path="https://comms.twilio.com/v1/PushNotifications" method="get" specType="comms" />

List PushNotifications

```ts
import { TwilioClient } from "twilio-comms";

async function main() {
    const client = new TwilioClient({
        accountId: "<username>",
        authToken: "<password>",
    });
    await client.pushNotifications.list({
        operationId: "comms_operation_01h9krwprkeee8fzqspvwy6nq8",
        status: "SCHEDULED",
        tags: "key_1:value;key_2:value;",
        startDate: new Date("2024-01-15T09:30:00Z"),
        endDate: new Date("2024-01-15T09:30:00Z"),
        user: "comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8",
        provider: "APN",
        pageToken: "pageToken",
        pageSize: 50,
    });
}
main();
```

```py
from twilio import TwilioComms
import datetime

client = TwilioComms(
    account_id="<username>",
    auth_token="<password>",
)

client.push_notifications.list(
    operation_id="comms_operation_01h9krwprkeee8fzqspvwy6nq8",
    status="SCHEDULED",
    tags="key_1:value;key_2:value;",
    start_date=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"),
    end_date=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"),
    user="comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8",
    provider="APN",
    page_token="pageToken",
    page_size=50,
)
```

```cs
using TwilioComms;
using System.Threading.Tasks;
using System;
using System.Globalization;

public partial class Examples
{
    public async Task Example() {
        var client = new TwilioCommsClient(
            accountId: "<username>",
            authToken: "<password>"
        );

        await client.PushNotifications.ListAsync(
            new PushNotificationsListRequest {
                OperationId = "comms_operation_01h9krwprkeee8fzqspvwy6nq8",
                Status = PushNotificationStatus.Scheduled,
                Tags = "key_1:value;key_2:value;",
                StartDate = DateTime.Parse("2024-01-15T09:30:00Z", null, DateTimeStyles.AdjustToUniversal),
                EndDate = DateTime.Parse("2024-01-15T09:30:00Z", null, DateTimeStyles.AdjustToUniversal),
                User = "comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8",
                Provider = PushNotificationProvider.Apn,
                PageToken = "pageToken",
                PageSize = 50
            }
        );
    }

}
```

```java
package com.example.usage;

import com.twilio.comms.TwilioCommsClient;
import com.twilio.comms.resources.pushnotifications.requests.PushNotificationsListRequest;
import com.twilio.comms.types.PushNotificationProvider;
import com.twilio.comms.types.PushNotificationStatus;
import java.time.OffsetDateTime;

public class Example {
    public static void main(String[] args) {
        TwilioCommsClient client = TwilioCommsClient
            .builder()
            .credentials("<username>", "<password>")
            .build();

        client.pushNotifications().list(
            PushNotificationsListRequest
                .builder()
                .operationId("comms_operation_01h9krwprkeee8fzqspvwy6nq8")
                .status(PushNotificationStatus.SCHEDULED)
                .tags("key_1:value;key_2:value;")
                .startDate(OffsetDateTime.parse("2024-01-15T09:30:00Z"))
                .endDate(OffsetDateTime.parse("2024-01-15T09:30:00Z"))
                .user("comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8")
                .provider(PushNotificationProvider.APN)
                .pageToken("pageToken")
                .pageSize(50)
                .build()
        );
    }
}
```

```go
package example

import (
    context "context"

    twiliocomms "github.com/twilio/twilio-comms-go/twilio"
    client "github.com/twilio/twilio-comms-go/twilio/client"
    option "github.com/twilio/twilio-comms-go/twilio/option"
)

func do() {
    client := client.NewWithOptions(
        option.WithBasicAuth(
            "<username>",
            "<password>",
        ),
    )
    request := &twiliocomms.PushNotificationsListRequest{
        OperationId: twiliocomms.String(
            "comms_operation_01h9krwprkeee8fzqspvwy6nq8",
        ),
        Status: twiliocomms.PushNotificationStatusScheduled.Ptr(),
        Tags: twiliocomms.String(
            "key_1:value;key_2:value;",
        ),
        StartDate: twiliocomms.Time(
            twiliocomms.MustParseDateTime(
                "2024-01-15T09:30:00Z",
            ),
        ),
        EndDate: twiliocomms.Time(
            twiliocomms.MustParseDateTime(
                "2024-01-15T09:30:00Z",
            ),
        ),
        User: twiliocomms.String(
            "comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8",
        ),
        Provider: twiliocomms.PushNotificationProviderApn.Ptr(),
        PageToken: twiliocomms.String(
            "pageToken",
        ),
        PageSize: twiliocomms.Int(
            50,
        ),
    }
    client.PushNotifications.List(
        context.TODO(),
        request,
    )
}
```

```php
<?php

namespace Example;

use Twilio\TwilioComms;
use Twilio\PushNotifications\Requests\PushNotificationsListRequest;
use Twilio\Types\PushNotificationStatus;
use DateTime;
use Twilio\Types\PushNotificationProvider;

$client = new TwilioComms(
    accountId: '<username>',
    authToken: '<password>',
);
$client->pushNotifications->list(
    new PushNotificationsListRequest([
        'operationId' => 'comms_operation_01h9krwprkeee8fzqspvwy6nq8',
        'status' => PushNotificationStatus::Scheduled->value,
        'tags' => 'key_1:value;key_2:value;',
        'startDate' => new DateTime('2024-01-15T09:30:00Z'),
        'endDate' => new DateTime('2024-01-15T09:30:00Z'),
        'user' => 'comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8',
        'provider' => PushNotificationProvider::Apn->value,
        'pageToken' => 'pageToken',
        'pageSize' => 50,
    ]),
);
```

```rb
require "twilio"

client = Twilio::Client.new(
  account_id: "<username>",
  auth_token: "<password>"
)

client.push_notifications.list(
  operation_id: "comms_operation_01h9krwprkeee8fzqspvwy6nq8",
  status: "SCHEDULED",
  tags: "key_1:value;key_2:value;",
  start_date: "2024-01-15T09:30:00Z",
  end_date: "2024-01-15T09:30:00Z",
  user: "comms_pushnotificationuser_01h9krwprkeee8fzqspvwy6nq8",
  provider: "APN",
  page_token: "pageToken",
  page_size: 50
)
```

```bash
curl 'https://comms.twilio.com/v1/PushNotifications?pageSize=50' \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```
