---
schema_version: "1"
id: e4656c395b708299b32969221c4813e2d43de60e8324af7e0e1053cdd4429cb5
title: Transactional API Sends Compared to Classic Triggered Sends
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-apis/transactional-messaging-comparison.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/transactional-messaging-comparison.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: f7124c5156501616bc4535c8d099d5070ad76e93d2179e0785260e6bd02d661b
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
# Transactional API Sends Compared to Classic Triggered Sends

Marketing Cloud Engagement offers two methods of sending messages that are triggered when a customer performs an action. The first method is to send triggered messages by using [triggered send operations in SOAP API](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/soap_tech_articles_triggered_sends.md) or the [messageDefinitionSends resource in REST API](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/messageDefinitionSends.md). The second method is to use the more modern transactional messaging API, which offers several performance and feature benefits. It’s important to understand the differences between these methods so that you can choose the best option for your use case.

## Messaging Channel Support

Classic triggered sends only support email messages. However, you can use the transactional messaging API to send [email](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_email?meta=Summary), [SMS](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_sms), and [push notifications](http://localhost:57809/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_push?meta=Summary).

## API Interactions

This table summarizes the API-related differences between transactional messaging API and classic triggered sends.

| Feature                                                  | Classic Triggered Sends                      | Transactional Messaging API  |
| -------------------------------------------------------- | -------------------------------------------- | ---------------------------- |
| True RESTful operation of API resources                  | No                                           | Yes                          |
| Consistent syntax across channels (email, SMS, and push) | No                                           | Yes                          |
| Consistent resource URL structure across channels        | No                                           | Yes                          |
| Unique `messageKey` required for all requests            | No                                           | Yes                          |
| Method of controlling object access                      | `Client.ID` property within the request body | Authentication token context |

## Monitoring and Reporting

With classic triggered sends, you can monitor message-related notifications on the Tracking tab in Email Studio. For each triggered send, you can see aggregate information about sends, deliveries, opens, clicks, and unsubscribes.

With the transactional messaging API, you can retrieve [transactional messaging data](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/transactional_email_events.md) in real-time using the [Event Notification Service](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ens.md) (ENS). You can also use ENS to retrieve notifications when failures occur at the [service layer](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/transactional-messaging-architecture.md#service-layer) or the [outbound message management layer](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/transactional-messaging-architecture.md#outbound-message-management-omm-layer). Finally, you can use ENS data to create dashboards that are updated in real-time.

## Performance, Throughput, and Prioritization

The Transactional Messaging API processes end-to-end message queues faster than classic triggered sends.

With classic triggered sends, you can specify the prioritization of messages. In the transactional messaging API, all messages are handled with equal priority, so specifying the message priority isn’t necessary.

Finally, you can configure throttling rules for classic triggered sends. With these rules, you can specify granular limits for sending triggered emails, such as a limit of 10,000 messages per hour. The transactional messaging API doesn’t support this feature. Instead, the transactional messaging API adds each message to a queue and delivers it as quickly as possible.

## User Interface

You can use Email Studio to manage classic triggered sends, and Journey Builder to manage messages sent using the transactional messaging API.

## Send Definitions

With classic triggered sends, you use the [EmailSendDefinition resource in SOAP API](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/emailsenddefinition.md) to manage send definitions. The transactional messaging API uses the [messaging/v1/email/definitions endpoint in REST API](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_email?meta=Create%2Bemail%2Bsend%2Bdefinition) to manage send definitions.

When you modify a send definition for a classic triggered send, you must publish the changes for them to go live. You can publish changes in Email Studio or via the API. The transactional messaging API automatically applies changes to a send definition.

Finally, send definitions for classic triggered sends can specify a data extension for logging send events. With the transactional messaging API, you use ENS to monitor events including message sends. Because ENS emits send event data in real-time, you can quickly and programmatically respond to message send failures.
