---
schema_version: "1"
id: fd87691d7f81cee73f7b44dd94155d37e7ef7fb29411b4441853b3220361b327
title: Transactional Messaging - Push
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/references/generated-api-specs/mc_rest_transactional_messaging_push.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push
source_site: developer.salesforce.com
content_type: documentation
content_hash: 7d0a844bc24726e3983c3539da9f2d30c23f35994ca2e62c99dbe701d4f2def2
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
Transactional Messaging - Push

# Transactional Messaging - Push

Use the transactional push endpoint to programmatically manage transactional push notification send definitions and send transactional push notifications.

This table lists the use cases that the Transactional Push API supports.

| Supported Use Case | HTTP Verb | URI |
| --- | --- | --- |
| Get push send definitions | [GET](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Get%2BPush%2BSend%2BDefinitions) | /messaging/v1/push/definitions |
| Create a push send definition | [POST](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Create%2Ba%2BPush%2BSend%2BDefinition) | /messaging/v1/push/definitions |
| Get details of a push send definition | [GET](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Get%2BPush%2BSend%2BDefinition%2BDetails) | /messaging/v1/push/definitions/{definitionKey} |
| Update a push send definition | [PATCH](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Update%2Ba%2BPush%2BSend%2BDefinition) | /messaging/v1/push/definitions/{definitionKey} |
| Delete a push send definition | [DELETE](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Delete%2Ba%2BPush%2BSend%2BDefinition) | /messaging/v1/push/definitions/{definitionKey} |
| Send a transactional push notification | [POST](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Send%2Ba%2BTransactional%2BPush%2BNotification) | /messaging/v1/push/messages/ |
| Retrieve the status of a transactional push notification | [GET](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Get%2BTransactional%2BPush%2BNotification%2BStatus) | /messaging/v1/push/messages/{messageKey} |

Append the operation endpoint addresses to this base URL, replacing `{subdomain}` with the unique subdomain for your Marketing Cloud Engagement tenant:

**Version:** 1

## Servers

*   `https://{subdomain}.rest.marketingcloudapis.com`
    *   `subdomain (default N/A) The unique API subdomain for your Marketing Cloud Engagement tenant. You can find this value in the Installed Packages section of Marketing Cloud Engagement Setup.`

## Operations

### GET Retrieve a list of transactional push send definitions in your account.

`GET /messaging/v1/push/definitions`

Operation ID: `Get Push Send Definitions`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Read` permission.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Responses

*   **200** This response indicates that the API accepted the request to retrieve a list of send definitions.
    
    Media type: `application/json`. Schema: `sendDefGetResponseBody`.
    
    _Example_
    
    ```
    {
      "requestId": "1a46adb0-4dfa-44c9-ba48-a7794fa29328",
      "definitions": [
        {
          "name": "Defn Key 1",
          "definitionKey": "DKey1",
          "status": "Active",
          "createdDate": "2024-02-22T17:38:00",
          "modifiedDate": "2024-02-22T17:38:00"
        },
        {
          "name": "Defn Key 10",
          "definitionKey": "DKey10",
          "status": "Active",
          "createdDate": "2024-02-22T21:24:00",
          "modifiedDate": "2024-02-22T21:24:00"
        }
      ],
      "count": 2,
      "page": 1,
      "pageSize": 50
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    

### POST Create a transactional push send definition.

`POST /messaging/v1/push/definitions`

Operation ID: `Create a Push Send Definition`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Write` permission.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `sendDefCreateRequestBody`.

#### Responses

*   **201** This response indicates that the API accepted the request to create a push send definition.
    
    Media type: `application/json`. Schema: `sendDefResponseDetailObject`.
    
    _Example_
    
    ```
    {
      "requestId": "1f1e8755-819b-424d-a914-e066b5ba20f8",
      "name": "account-reset",
      "definitionKey": "account-reset",
      "applicationId": "MyPushApp",
      "definitionId": "c13a2f02-2e02-e911-80e9-1402ec6b9711",
      "description": "Using new PUSH Transactional API",
      "status": "Active",
      "createdDate": "2024-02-17T13:00:00",
      "modifiedDate": "2024-02-17T13:00:00",
      "content": {
        "customerKey": "bebf8650-137a-494c-8727-cdeb32534961"
      },
      "options": {
        "sound": "temp.wmv",
        "badge": "1",
        "customKeys": [
          {
            "key": "key1",
            "value": "value1"
          },
          {
            "key": "key2",
            "value": "value2"
          }
        ]
      }
    }
    ```
    
*   **400** Indicates that the request contained information that the API couldn’t process. When you receive a 400 response, verify that the request uses the correct syntax, and that the properties in the request body refer to valid values.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "message": "JSON Deserialization Exception: Location Unknown",
      "errorcode": 10004,
      "documentation": ""
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    

### GET Retrieve details of a transactional push send definition.

`GET /messaging/v1/push/definitions/{definitionKey}`

Operation ID: `Get Push Send Definition Details`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Read` permission.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `definitionKey` (path, string, required) The user-defined key of a send definition for push messaging.

#### Responses

*   **200** This response indicates that the API accepted the request to retrieve details for a push send definition.
    
    Media type: `application/json`. Schema: `sendDefResponseDetailObject`.
    
    _Example_
    
    ```
    {
      "requestId": "1f1e8755-819b-424d-a914-e066b5ba20f8",
      "name": "account-reset",
      "definitionKey": "account-reset",
      "applicationId": "MyPushApp",
      "definitionId": "c13a2f02-2e02-e911-80e9-1402ec6b9711",
      "description": "Push send definition created using REST API",
      "status": "Active",
      "createdDate": "2024-02-17T13:00:00",
      "modifiedDate": "2024-02-17T13:00:00",
      "content": {
        "customerKey": "bebf8650-137a-494c-8727-cdeb32534961"
      },
      "options": {
        "sound": "temp.wmv",
        "badge": "1",
        "customKeys": [
          {
            "key": "key1",
            "value": "value1"
          },
          {
            "key": "key2",
            "value": "value2"
          }
        ]
      }
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that the request contains the correct endpoint URI.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 404,
      "message": "Not Found"
    }
    ```
    

### DELETE Delete a transactional push send definition.

`DELETE /messaging/v1/push/definitions/{definitionKey}`

Operation ID: `Delete a Push Send Definition`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Write` permission.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `definitionKey` (path, string, required) The user-defined key of a send definition for push messaging.

#### Responses

*   **200** This response indicates that the API accepted the request to delete a push send definition.
    
    Media type: `application/json`. Schema: `sendDefDeleteResponseBody`.
    
    _Example_
    
    ```
    {
      "message": "Success",
      "requestId": "UUID",
      "deletedDefinitionKey": "MySendDefinition"
    }
    ```
    
*   **400** Indicates that the request contained information that the API couldn’t process. When you receive a 400 response, verify that the request uses the correct syntax, and that the properties in the request body refer to valid values.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "message": "JSON Deserialization Exception: Location Unknown",
      "errorcode": 10004,
      "documentation": ""
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that the request contains the correct endpoint URI.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 404,
      "message": "Not Found"
    }
    ```
    

### PATCH Update a transactional push send definition.

`PATCH /messaging/v1/push/definitions/{definitionKey}`

Operation ID: `Update a Push Send Definition`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Write` permission.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `definitionKey` (path, string, required) The user-defined key of a send definition for push messaging.

#### Request body (required)

Media type: `application/json`. Schema: `sendDefUpdateRequestBody`.

#### Responses

*   **200** This response indicates that the API accepted the request to create a push send definition.
    
    Media type: `application/json`. Schema: `sendDefResponseDetailObject`.
    
    _Example: same as POST /messaging/v1/push/definitions 201 response._
    
*   **400** Indicates that the request contained information that the API couldn’t process. When you receive a 400 response, verify that the request uses the correct syntax, and that the properties in the request body refer to valid values.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "message": "JSON Deserialization Exception: Location Unknown",
      "errorcode": 10004,
      "documentation": ""
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that the request contains the correct endpoint URI.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 404,
      "message": "Not Found"
    }
    ```
    

### POST Send a transactional push notification to one or more subscribers or devices.

`POST /messaging/v1/push/messages/`

Operation ID: `Send a Transactional Push Notification`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Send` permission.

  

Usage Notes

  

You can send transactional push notifications to 2,000 devices or fewer in each request. If your request includes attributes, you can send to 500 devices or fewer.

A request can contain either the `recipients.contactKey` property or the `recipients.to` property, but not both. If you don’t provide a `messageKey` value for each recipient in the request, the response includes an automatically generated key for each message.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `msgSendRequestBody`.

#### Responses

*   **202** This response indicates that the API accepted the request to send transactional push notifications.
    
    Media type: `application/json`. Schema: `msgSendResponseBody`.
    
    _Example_
    
    ```
    {
      "requestId": "c6c1e029-e6d8-44ad-a387-6f2389c16ece",
      "errorcode": 0,
      "responses": [
        {
          "messageKey": "f0d8enf0d0snd"
        },
        {
          "messageKey": "g1d8enf0d0sne"
        }
      ]
    }
    ```
    
*   **400** Indicates that the request contained information that the API couldn’t process. When you receive a 400 response, verify that the request uses the correct syntax, and that the properties in the request body refer to valid values.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "message": "JSON Deserialization Exception: Location Unknown",
      "errorcode": 10004,
      "documentation": ""
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    

### GET Retrieve the status of a transactional push notification.

`GET /messaging/v1/push/messages/{messageKey}`

Operation ID: `Get Transactional Push Notification Status`.

  

Required Permission Scope

  

To execute this operation, you must have the `Channels | Push | Read` permission.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `messageKey` (path, string, required) The unique key of the message.

#### Responses

*   **200** This response indicates that the API accepted the request to retrieve information about the status of a transactional push message.
    
    Media type: `application/json`. Schema: `msgStatusGetResponseBody`.
    
    _Example_
    
    ```
    {
      "requestId": "77431635-1b6b-44db-a16d-420361a43dc1",
      "messageKey": "bcX0qaEp0USGciEnUJTW0w",
      "info": [
        {
          "contactKey": "Astro25",
          "to": "iphoneDeviceToken",
          "eventCategoryType": "TransactionalSendEvents.PushQueued",
          "timestamp": "2018-08-03T13:41:18.55"
        },
        {
          "contactKey": "Astro25",
          "to": "androidDeviceToken",
          "eventCategoryType": "TransactionalSendEvents.PushSent",
          "timestamp": "2018-08-03T13:41:18.55"
        },
        {
          "contactKey": "Astro25",
          "deviceToken": "ipadDeviceToken",
          "eventCategoryType": "TransactionalSendEvents.PushNotSent",
          "statusCode": 16,
          "statusMessage": "InvalidAttributeValue",
          "timestamp": "2018-08-03T13:41:18.55"
        }
      ]
    }
    ```
    
*   **400** Indicates that the request contained information that the API couldn’t process. When you receive a 400 response, verify that the request uses the correct syntax, and that the properties in the request body refer to valid values.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "message": "JSON Deserialization Exception: Location Unknown",
      "errorcode": 10004,
      "documentation": ""
    }
    ```
    
*   **401** Indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 0,
      "message": "Not Authorized"
    }
    ```
    
*   **403** This response indicates that the API accepted your request but couldn’t authorize it. When you receive a 403 response, make sure you have the necessary permission scope for the operation. You can modify permission scopes on the Installed Apps page in Marketing Cloud Engagement Setup.
    
    Media type: `application/json`. Schema: `mceErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "",
      "errorcode": 20002,
      "message": "Insufficient privileges to complete this action."
    }
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that the request contains the correct endpoint URI.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    {
      "documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
      "errorcode": 404,
      "message": "Not Found"
    }
    ```
    

## Schemas

### sendDefGetResponseBody

*   `requestId` (_string (uuid)_) A unique ID for the request to retrieve a list of send definitions.
*   `count` (_number (integer)_) The number of results returned.
*   `page` (_number (integer)_) The current page of results. Each page includes the number of records specified by the pagesize parameter. Retrieve additional pages by incrementing this number in subsequent calls.
*   `pageSize` (_number (integer)_) The maximum number of results returned in a page of results.
*   `definitions` (_array of sendDefObject_) An array of send definition objects. Each object contains the details of a send definition.

### httpErrorResponseBody

*   `documentation` (_string_) Contains a link to the [Marketing Cloud Engagement developer documentation page about handling REST API errors](https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm).
*   `errorcode` (_integer_) The error code. In some situations, this value can be 0.
*   `message` (_string_) The error message.

### mceErrorResponseBody

*   `documentation` (_string_) An empty string.
*   `errorcode` (_integer_) An internal error code. For a complete list of error codes, see [Handle Errors in REST API](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/error-handling.html).
*   `message` (_string_) The error message.

### sendDefCreateRequestBody

*   `definitionKey` (_string_) Required. A unique key that identifies the push send definition.
*   `name` (_string_) Required. The name of the push send definition.
*   `applicationId` (_string_) Required. The unique ID of the application to use to send the push notification.
*   `content` (_contentObject_, required)
*   `status` (_string_) The status of the push send definition.
*   `description` (_string_) A description of the send definition.
*   `options` (_optionsObject_)

_Example_

```
{
  "definitionKey": "account-reset",
  "name": "account-reset",
  "status": "Active",
  "applicationId": "MyAppId",
  "description": "Push send definition created using REST API",
  "content": {
    "customerKey": "bebf8650-137a-494c-8727-cdeb32534961"
  },
  "options": {
    "sound": "temp.wmv",
    "badge": "1",
    "customKeys": [
      {
        "key": "key1",
        "value": "value1"
      },
      {
        "key": "key2",
        "value": "value2"
      }
    ]
  }
}
```

### sendDefResponseDetailObject

*   `requestId` (_string (uuid)_) A unique ID for the request to create a push send definition.
*   `name` (_string_) The name of the push send definition.
*   `definitionKey` (_string_) A unique key that identifies the push send definition.
*   `definitionId` (_string_) A unique ID for the send definition.
*   `description` (_string_) A description of the send definition.
*   `status` (_string_) The status of the push send definition.
*   `createdDate` (_string (date-time)_) The date and time when the send definition was created.
*   `modifiedDate` (_string (date-time)_) The date and time when the send definition was last modified.
*   `content` (_contentObject_)
*   `options` (_optionsObject_)

### sendDefDeleteResponseBody

*   `message` (_string_) A message that indicates the status of the request to delete the push send definition.
*   `requestId` (_string (uuid)_) A unique identifier for the request to delete the push send definition.
*   `deletedDefinitionKey` (_string_) The key of the push send definition that was deleted.

### sendDefUpdateRequestBody

*   `name` (_string_) Required. The name of the push send definition.
*   `applicationId` (_string_) Required. The unique ID of the application to use to send the push notification.
*   `content` (_contentObject_, required)
*   `status` (_string_) The status of the push send definition.
*   `description` (_string_) A description of the send definition.
*   `options` (_optionsObject_)

_Example_

```
{
  "name": "account-reset",
  "status": "Active",
  "applicationId": "MyAppId",
  "description": "Push send definition created using REST API",
  "content": {
    "customerKey": "bebf8650-137a-494c-8727-cdeb32534961"
  },
  "options": {
    "sound": "temp.wmv",
    "badge": "1",
    "customKeys": [
      {
        "key": "key1",
        "value": "value1"
      },
      {
        "key": "key2",
        "value": "value2"
      }
    ]
  }
}
```

### msgSendRequestBody

*   `definitionKey` (_string_) The unique key of the send definition to use when sending the transactional push notification.
*   `recipients` (_array of object_) An array that contains information about the recipients for the transactional push notification.
    
    Each item: An object that contains information about the message recipients, including send tracking and personalization attributes.
    
    *   `contactKey` (_string_) The unique identifier for a subscriber in Marketing Cloud Engagement. This property is required if `recipients.to` isn’t included in the request.
    *   `to` (_array of any_) An array of device tokens. This property is required if `recipients.contactKey` isn’t included in the request.
    *   `messageKey` (_string_) A unique message identifier. Use this identifier to track the status of the message. If you don’t provide this value, the system generates one automatically. This property can contain up to 100 characters, and there are no restrictions on which characters you can include. If you provide this value, each recipient in a request must have a unique message key. If your request contains duplicate values for message keys, the message is rejected.
    *   `attributes` (_attributesObject_)
*   `attributes` (_attributesObject_)
*   `options` (_sendOptionsObject_)
*   `content` (_msgContentObject_)

_Example_

```
{
  "definitionKey": "Push Transactional API 1",
  "recipients": [
    {
      "contactKey": "recipient1",
      "messageKey": "f0d8enf0d0snd",
      "attributes": {
        "FirstName": "John",
        "NonRecipientDynamicDefinitionAttribute": "5"
      }
    },
    {
      "contactKey": "recipient3",
      "messageKey": "g1d8enf0d0sne",
      "attributes": {
        "FirstName": "Will",
        "NonRecipientDynamicDefinitionAttribute": "10"
      }
    }
  ],
  "options": {
    "badge": "1",
    "sound": "test.wmv"
  },
  "content": {
    "title": "New Title",
    "subtitle": "New Subtitle",
    "message": "The override message.",
    "media": {
      "alt": "Alternate text",
      "iosUrl": "https://example.com/ios",
      "androidUrl": "https://example.com/android"
    }
  },
  "attributes": {
    "Purpose": "Sample"
  }
}
```

### msgSendResponseBody

*   `requestId` (_string (uuid)_) The unique ID of the transactional send request.
*   `errorcode` (_number (integer)_) Indicates the type of error that occurred when processing the request. See [Transactional API Subscriber Error Codes](/docs/marketing/marketing-cloud/guide/transactional-send-subscriber.html) and [Transactional API Response Level Error Codes](/docs/marketing/marketing-cloud/guide/transactional-send-response.html).
*   `responses` (_array of object_) An array that contains information about the messages sent in the transactional push send request.
    *   `messageKey` (_string_) The unique key for each message in the request.

### msgStatusGetResponseBody

*   `requestId` (_string (uuid)_) The unique ID of the transactional send request that the message was sent from.
*   `messageKey` (_string_) The unique key of the message.
*   `info` (_array of object_) An array that contains the send status for each recipient in the specified message.
    *   `contactKey` (_string_) The contact key of the message recipient.
    *   `to` (_string_) The device token for the recipient’s device.
    *   `eventCategoryType` (_string_) A message that indicates the status of the message.
    *   `timestamp` (_string (date-time)_) The date and time of the most recent message status update.
    *   `statusCode` (_number (integer)_) A numeric code that indicates the status of the message.
    *   `statusMessage` (_string_) If the message wasn’t sent, this property indicates the reason.

### sendDefObject

*   `name` (_string_) The name of the push send definition.
*   `definitionKey` (_string_) The unique key that identifies the push send definition.
*   `status` (_string_) The status of the push send definition.
*   `createdDate` (_string (date-time)_) The date and time when the send definition was created.
*   `modifiedDate` (_string (date-time)_) The date and time when the send definition was last modified.

### contentObject

An object that contains information about content assets.

*   `customerKey` (_string_) The unique ID of a content asset in Content Builder.

### optionsObject

An object that contains optional settings for the send definition.

*   `sound` (_string_) The sound file to play when the message arrives on the recipient’s device.
*   `badge` (_string_) The number that is displayed on the app badge.
*   `customKeys` (_array of object_) An optional array of key-value pairs to apply to the send definition.
    *   `key` (_string_) A custom key name to apply to the send definition.
    *   `value` (_string_) The value of the custom key.

### attributesObject

An object that contains key-value pairs. Use these attributes to customize or personalize the message.

*   `{keyName}` (_string_) The attribute key name.
*   `{value}` (_string_) The attribute value.

### sendOptionsObject

An object that contains optional settings for the send definition.

*   `sound` (_string_) The sound file to play when the message arrives on the recipient’s device.
*   `badge` (_string_) The number that is displayed on the app badge.

### msgContentObject

An object that contains information about the content of the message. The values that you provide in this object override the values in the send definition.

*   `title` (_string_) The title to display in the message.
*   `subtitle` (_string_) The subtitle of the message.
*   `message` (_string_) The message body.
*   `url` (_string (url)_) The deep link URL. The recipient is taken to this URL when they tap the message on their device.
*   `media` (_object_) An object that contains information about alternate text and device-specific links.
    *   `alt` (_string_) The text to display if the message can’t include the specified rich media.
    *   `androidUrl` (_string (url)_) A deep link URL to use on Android devices.
    *   `iosUrl` (_string (url)_) A deep link URL to use on iOS devices.