---
title: "Send single Push notification"
method: POST
path: "/push/2/message/single"
tags: ["channels", "mobile-app-messaging", "send-push"]
deprecated: true
---

# Send single Push notification

`POST /push/2/message/single`

## Request

- Base URL: `https://api.infobip.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.infobip.com/push/2/message/single`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.infobip.com/auth/1/oauth2/token`
  - API key in header `Authorization`
  - API key in header `Authorization`
  - HTTP basic

> **Deprecated.**

Use this method to send a single Push notification to one or multiple recipients.

## Request body

- Be899aa87631e28acaf5aa6d4ae5df630595a5bf087810b506602819a5d8b742PushRequest: List of push requests
  - `from` string, required: PUSH Application Code you are using to send messages. Application Code is the application identifier which links your mobile application to the [application profile](https://www.infobip.com/docs/mobile-push/get-started/mobile-application-profile#copy-application-code-create-and-enable-a-mobile-application-profile) created in Infobip Platform. It is required to insert the Application Code in Mobile Messaging SDK configuration once you implement it in your mobile application.
  - `to` object, required: Recipient destination address. [Check examples](https://www.infobip.com/docs/mobile-push/mobile-push-over-api) how to work with recipients
  - `text` string, required: Text of the message that will be sent.
  - `validityPeriod` integer: The message validity period. Unless specified differently in `validityPeriodTimeUnit`, it is expressed in hours. Once the period expires, messages that haven't left the Infobip platform or the Cloud (APNS or FCM) will be canceled and won't get delivered. Default value is 48h. Minimum value is 30 sec. Maximum value is 72h.
  - `validityPeriodTimeUnit` 'SECONDS' | 'MINUTES' | 'HOURS': Time unit for validity period. Defaults to hours.
  - `sendAt` string, date-time: Used for scheduled Push notifications. Message will be sent at scheduled time. Date and time when the message is to be sent. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ, and can only be scheduled for no later than 180 days in advance.
  - `customPayload` object: Additional data that can be delivered with the Push message. customPayload must be formatted as JSON object.
  - `notificationOptions` Be899aa87631e28acaf5aa6d4ae5df630595a5bf087810b506602819a5d8b742PushRequestNotificationOptions: JSON object that contains notification options.
    - `title` string: Notification title displayed within the notification. Requires iOS 10+ or Android 4.1+ (may depend on Android custom firmware)
    - `soundEnabled` boolean: Sound when a notification arrives on a device.
    - `soundName` string: Name of the custom sound played when a notification arrives on a device. The audio file should be located in the app with max 30 seconds length. File extension is required for [iOS](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/How-to-use-custom-notification-sound%3F) and optional for [Android](https://github.com/infobip/mobile-messaging-sdk-android/wiki/How-to-use-custom-notification-sound%3F). (Example: notification_sound.wav). Check Android and iOS usage details. To play a custom sound, `soundEnabled` must be set to `true`.
    - `vibrationEnabled` boolean: Notification vibration (Android only).
    - `isSilent` boolean: Set to true to send silent push message. Such messages aren’t displayed on device lock screen and in the notification center. Silent messages can be used to deliver custom data to your mobile application or to trigger an in-app notification.
    - `badge` integer: Badge counter (iOS only).
    - `contentUrl` string: URL of the image displayed in the notification. Rich push notifications are available on devices with [iOS](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/Rich-notifications) 10 and [Android](https://github.com/infobip/mobile-messaging-sdk-android/wiki/Rich-notifications) 4.1.+. Supported on iOS since MM SDK version 2.5.8. Supported on Android since MM SDK version 1.6.4.
    - `category` string: Category id for actionable notification. Supported on [Android](https://github.com/infobip/mobile-messaging-sdk-android/wiki/Interactive-notifications) since MM SDK version 1.6.16. Supported on [iOS](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/Interactive-Notifications) since MM SDK version 2.6.9. Predefined category ids: mm_accept_decline - Accept & Decline button actions.
    - `showInApp` boolean: Show notification in application.
    - `inAppStyle` 'MODAL' | 'BANNER': Set to `MODAL` to use in app dialog for actionable message or `BANNER` to show a standard banner view. `MODAL` is supported on iOS from [3.6.0](https://github.com/infobip/mobile-messaging-sdk-ios/releases/tag/3.6.0), on Android from [1.13.0](https://github.com/infobip/mobile-messaging-sdk-android/releases/tag/1.13.0) and on Cordova from [0.7.0](https://github.com/infobip/mobile-messaging-cordova-plugin/releases/tag/0.7.0). `BANNER` is supported from iOS [5.0.0](https://github.com/infobip/mobile-messaging-sdk-ios/releases/tag/5.0.0), Android [2.0.0](https://github.com/infobip/mobile-messaging-sdk-android/releases/tag/2.0.0) and Cordova [1.0.0](https://github.com/infobip/mobile-messaging-cordova-plugin/releases/tag/1.0.0)
    - `inAppExpirationPeriod` integer: Sets validity period for in-app notification. Users will only see in-app if they received it to their device within validity period, which starts from sending time. Time unit for this parameter is set by property of inAppExpirationTimeUnit. Default value is 48h. Supported on Android since version 3.4.0, on iOS since version 8.2.1
    - `inAppExpirationTimeUnit` 'MINUTES' | 'HOURS': Time unit for in-app expiration.
    - `inAppDismissTitle` string: Specifies custom title for `Dismiss` button. Supported on Android since version 3.4.0, on iOS since version 8.2.1.
    - `inAppOpenTitle` string: Specifies custom title for `Open` button. Supported on Android since version 3.4.0, on iOS since version 8.2.1.
    - `primaryButtonAction` Be899aa87631e28acaf5aa6d4ae5df630595a5bf087810b506602819a5d8b742PrimaryButtonAction: Defines which action to perform on notification tap or on in-app notification primary button tap. More information for [Android](https://github.com/infobip/mobile-messaging-sdk-android/wiki/How-to-define-specific-action-on-notification-or-in-app-primary-button-tap(open-url,-deeplink)%3F), [iOS](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/How-to-define-specific-action-on-notification-or-in-app-primary-button-tap(open-url,-deeplink)%3F), [Cordova](https://github.com/infobip/mobile-messaging-cordova-plugin/wiki/How-to-define-specific-action-on-notification-or-in-app-primary-button-tap(open-url,-deeplink)%3F), [React Native](https://github.com/infobip/mobile-messaging-react-native-plugin/wiki/How-to-define-specific-action-on-notification-or-in-app-primary-button-tap(open-url,-deeplink)%3F).
      - `resource` string: Defines which URL or path should be opened. Must be a valid `http://` or `https://` URL when `type` is `WEB_VIEW_URL` or `OPEN_URL_IN_BROWSER`.
      - `type` 'WEB_VIEW_URL' | 'DEEP_LINK' | 'OPEN_URL_IN_BROWSER': `WEB_VIEW_URL` - opening of the external web content in webView, `OPEN_URL_IN_BROWSER` - opening of the external web content in device browser, `DEEP_LINK` - opening of particular mobile app screen over deep link.
    - `inboxTopic` string: A case sensitive topic name to save a message to an inbox. If the topic name does not exist for a specified account, message sending will be rejected.
  - `notifyUrl` string: The URL on your call back server on to which a delivery report will be sent. The retry cycle for when your URL becomes unavailable uses the following formula: `1min + (1min * retryNumber * retryNumber)`.
  - `notifyContentType` string: Preferred Delivery report content type. Supported content types: application/json, application/xml.
  - `callbackData` string: Additional client's data that will be sent onto `notifyUrl`. The maximum value is 200 characters.
  - `targetOnlyPrimaryDevices` boolean: Set to true to only send messages to push devices which are marked as primary devices. By default, messages will be sent to all targeted devices, including both primary and non-primary.

## Response `200`

OK

- Be899aa87631e28acaf5aa6d4ae5df630595a5bf087810b506602819a5d8b742PushResponse
  - `bulks` Be899aa87631e28acaf5aa6d4ae5df630595a5bf087810b506602819a5d8b742PushBulkResponse[], required: Array of push bulk responses
    - `to` object, required: Recipient destination address.
    - `status` Be899aa87631e28acaf5aa6d4ae5df630595a5bf087810b506602819a5d8b742PushStatusResponse, required: Message status.
      - `groupId` integer, required: Status group ID.
      - `groupName` string, required: Status group name.
      - `id` integer, required: Status ID.
      - `name` string, required: Status name.
      - `description` string: Human readable description of the status.
    - `messageCount` integer, required: Number of recipients for targeted segment.
    - `bulkId` string, required: The ID which uniquely identifies the request.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `500`: Internal Server Error

---

[API](https://skmtc.dev/infobip/apis/infobip-openapi-specification.md) - [All operations](https://skmtc.dev/infobip/apis/infobip-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/infobip/apis/infobip-openapi-specification/revisions/9dcbbaf902de?raw)
