openapi: 3.2.0
info:
title: Trigger campaigns using Execution API
description: 'Interactive Message Execution API helps you with messaging capabilities. Using this REST API, you can send marketing or transactional messages using a Campaign Id using Email, SMS and Push channels. You will need the Campaign ID to send message using API.
Related documentation:
To learn more about the API triggered Campaign creation flow and supported channels, refer to the [product documentation](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/campaigns/api-triggered-campaigns/api-triggered-campaigns).
Code examples:
Examples of how to trigger Campaigns using various channels are available on [this page](https://developer.adobe.com/journey-optimizer-apis/references/messaging-samples).
API path:
Base path for Interactive Message Execution APIs: https://platform.adobe.io/ajo/im/executions
Example of a complete path: https://platform.adobe.io/ajo/im/executions/unitary
Required headers:
All calls require the headers Authorization, x-gw-ims-org-id, and x-api-key. For more information on how to obtain these values, see the [authentication tutorial](https://developer.adobe.com/journey-optimizer-apis/references/authentication).
Call timeout
The call to the Interactive Message Execution REST API has a timeout of 60 sec. However internal retries are in place in case of unexpected timeouts to guarantee the delivery.'
version: 1.0.1
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://platform-stage.adobe.io/ajo
description: Stage Environment
- url: https://platform.adobe.io/ajo
description: Production Environment
security:
- imsUserToken: []
tags:
- name: execution
paths:
/im/executions/unitary:
parameters:
- $ref: '#/components/parameters/x-api-key'
- $ref: '#/components/parameters/x-request-id'
- $ref: '#/components/parameters/x-gw-ims-org-id'
- $ref: '#/components/parameters/x-sandbox-name'
post:
summary: Trigger an unitary message execution.
tags:
- execution
operationId: postIMUnitaryMessageExecution
security:
- imsUserToken: []
description: ''
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/imExecutionRequestUnitary'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/imExecutionResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'503':
description: Personalized attachment resolution is temporarily unavailable (error code 160028). Retry the request.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
/im/executions/audience:
parameters:
- $ref: '#/components/parameters/x-api-key'
- $ref: '#/components/parameters/x-request-id'
- $ref: '#/components/parameters/x-gw-ims-org-id'
- $ref: '#/components/parameters/x-sandbox-name'
post:
summary: Trigger or Schedule an Audience Based Message execution.
tags:
- execution
operationId: postIMAudienceMessageExecution
security:
- imsUserToken: []
description: ''
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/imExecutionRequestAudience'
responses:
'202':
description: Accepted
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/imExecutionResponse'
- $ref: '#/components/schemas/ScheduledExecutionResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
/im/executions/audience/{executionId}:
parameters:
- name: executionId
in: path
description: execution id
required: true
schema:
type: string
- $ref: '#/components/parameters/x-api-key'
- $ref: '#/components/parameters/x-request-id'
- $ref: '#/components/parameters/x-gw-ims-org-id'
- $ref: '#/components/parameters/x-sandbox-name'
get:
summary: Get Execution Status for Audience Based Message executions.
tags:
- execution
operationId: getBatchExecutionStatusByExecutionId
security:
- imsUserToken: []
description: ''
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/executionStatusResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
/im/executions/schedules/{scheduleId}:
parameters:
- name: scheduleId
in: path
description: schedule id
required: true
schema:
type: string
- $ref: '#/components/parameters/x-api-key'
- $ref: '#/components/parameters/x-request-id'
- $ref: '#/components/parameters/x-gw-ims-org-id'
- $ref: '#/components/parameters/x-sandbox-name'
get:
summary: Get Execution Status for Audience Based Message executions.
tags:
- execution
operationId: getBatchExecutionStatusByScheduleId
security:
- imsUserToken: []
description: ''
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduledExecutionResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
delete:
summary: Delete a scheduled campaign execution.
tags:
- execution
operationId: deleteScheduledExecution
security:
- imsUserToken: []
description: Deletes a scheduled campaign execution before it has been triggered.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
description: Empty response for successful deletion
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
/im/executions/highthroughput:
parameters:
- $ref: '#/components/parameters/x-api-key'
- $ref: '#/components/parameters/x-request-id'
- $ref: '#/components/parameters/x-gw-ims-org-id'
- $ref: '#/components/parameters/x-sandbox-name'
post:
summary: Trigger an unitary high throughput message execution.
tags:
- execution
operationId: postIMUnitaryHAMessageExecution
security:
- imsUserToken: []
description: ''
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/imExecutionRequestHighThroughput'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/imExecutionResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
'503':
description: Personalized attachment resolution is temporarily unavailable (error code 160028). Retry the request.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
components:
schemas:
imExecutionRequestHighThroughput:
description: the IM Execution Request Unitary High Throughput
type: object
required:
- requestId
- campaignId
- recipients
properties:
requestId:
type: string
description: the Unique Request Identifier
example: request-12345
campaignId:
type: string
description: the Campaign Identifier
example: campaign-12345
recipients:
type: array
description: the list of recipients
items:
oneOf:
- $ref: '#/components/schemas/ExternalRecipient'
discriminator:
propertyName: type
mapping:
external: '#/components/schemas/ExternalRecipient'
minItems: 1
maxItems: 20
schedule:
type: object
description: The time at which campaign execution should be triggered
properties:
executeAt:
type: string
format: date-time
description: the time of execution trigger
example: '2016-08-29T09:12:33.001Z'
errorResponse:
description: the error response
type: object
properties:
type:
type: string
description: the error type
example: https://ns.adobe.com/aep/errors/MSG-000052-400
title:
type: string
description: the error title
example: An error has occurred
status:
description: the error status
type: integer
example: 400
report:
description: the error report
type: object
properties:
additionalContext:
additionalProperties:
type: string
required:
- additionalContext
example:
additionalContext:
requestId: 04e7a2a5-f6db-4d15-a1ba-edda77bdb66f
campaignId: campaign-1234567
profile:
type: object
description: the profile data used for dynamic variable substitution in message content
additionalProperties:
oneOf:
- type: string
- type: object
example:
person:
name:
firstName: Jane
lastName: Doe
Audience:
type: object
description: 'Details of the AEP Audience '
required:
- id
properties:
id:
type: string
description: Represents either audience or segment id
example: AEP-ProfileID-12345
recipientChannelData:
type: object
description: the Channel Data for recipient , Its an Optional Field for type aep
properties:
emailAddress:
type: string
description: the email address for emailing which also doubles up as the external userId
example: customer123@example.com
mobilePhoneNumber:
type: string
description: the mobile phone number for sms
example: 111-111-1111
personalizedAttachments:
type: array
description: Personalized PDF attachments for this email recipient. A rendered email can contain at most five attachments. Combined attachment size is limited to 5 MB by default, or 10 MB if your organization has the applicable attachment size add-on. These limits include any static attachments authored in the campaign. Attachment validation occurs before the request is accepted; one invalid attachment rejects the entire request.
minItems: 1
maxItems: 5
items:
$ref: '#/components/schemas/personalizedAttachment'
ExternalRecipient:
type: object
description: External Recipient Information
required:
- type
- userId
- namespace
properties:
type:
type: string
description: 'recipient type: external'
example: external
userId:
type: string
description: External profile identifier, usually same as emailId or phoneNumber
example: customer123@example.com
namespace:
type: string
description: the AEP Profile namespace
example: email
channelData:
$ref: '#/components/schemas/recipientChannelData'
profile:
$ref: '#/components/schemas/profile'
context:
$ref: '#/components/schemas/context'
attachments:
$ref: '#/components/schemas/personalizedAttachments'
context:
type: object
description: the context data used for dynamic variable substitution in message content
additionalProperties:
oneOf:
- type: string
- type: object
example:
product: Gaming Laptop
imExecutionRequestUnitary:
description: the IM Execution Request Unitary
type: object
required:
- requestId
- campaignId
- recipients
properties:
requestId:
type: string
description: the Unique Request Identifier
example: request-12345
campaignId:
type: string
description: the Campaign Identifier
example: campaign-12345
recipients:
$ref: '#/components/schemas/recipients'
recipients:
type: array
description: the list of recipients
items:
oneOf:
- $ref: '#/components/schemas/AEPRecipient'
- $ref: '#/components/schemas/ExternalRecipient'
discriminator:
propertyName: type
mapping:
aep: '#/components/schemas/AEPRecipient'
external: '#/components/schemas/ExternalRecipient'
minItems: 1
maxItems: 20
personalizedAttachment:
type: object
description: A PDF attachment stored in the Adobe Experience Platform Data Landing Zone associated with the request sandbox.
required:
- name
- contentType
- source
properties:
name:
type: string
description: The filename displayed by the email client. It must end in .pdf and cannot contain path separators, parent-directory references, or control characters.
example: invoice.pdf
contentType:
type: string
description: The attachment MIME type. Only PDF attachments are supported.
enum:
- application/pdf
example: application/pdf
source:
$ref: '#/components/schemas/dlzAttachmentSource'
imExecutionResponse:
description: the execution response
type: object
properties:
executionId:
description: the execution ID
type: string
example: HUMA-00859153
requestId:
description: the request ID
type: string
example: REQ-80940549
createdAt:
type: string
format: date-time
description: the message execution creation time
example: '2016-08-29T09:12:33.001Z'
createdBy:
description: the message execution creation user
type: string
example: 5d1281e6d935456i4273@AdobeId
modifiedAt:
type: string
format: date-time
description: the message execution modification time
example: '2016-08-29T09:12:33.001Z'
modifiedBy:
description: the message execution modification user
type: string
example: 4c0190e5d702748f0931@AdobeId
dlzAttachmentSource:
type: object
description: Identifies an existing object in the Adobe Experience Platform Data Landing Zone.
required:
- type
- path
properties:
type:
type: string
description: The attachment source type.
enum:
- dlzPath
example: dlzPath
path:
type: string
description: The non-empty Data Landing Zone object path. Do not include credentials, backslashes, empty path segments, or current/parent-directory segments.
example: personalized-attachments/campaign-12345/customer-123/invoice.pdf
imExecutionRequestAudience:
description: the IM Execution Request Audience
type: object
required:
- campaignId
properties:
requestId:
type: string
description: the Unique Request Identifier
example: request-12345
campaignId:
type: string
description: the Campaign Identifier
example: campaign-12345
audience:
$ref: '#/components/schemas/Audience'
context:
$ref: '#/components/schemas/context'
schedule:
$ref: '#/components/schemas/schedule'
executionStatusResponse:
type: object
description: Execution Status Response
required:
- executionId
- status
- createdAt
properties:
executionId:
type: string
description: executionId
example: CMA-09378831
campaignId:
type: string
description: campaignId
example: campaignId-12345
audienceId:
type: string
description: audienceId
example: audienceId-12345
status:
type: string
description: execution status
enum:
- Succeeded
- InProgress
- Failed
example: Succeeded
targetedProfileCount:
type: integer
description: number of profiles exported
example: '2'
createdAt:
type: string
format: date-time
example: '2016-08-29T09:12:33.001Z'
ScheduledExecutionResponse:
type: object
description: Scheduled Execution Response for scheduling or status check of scheduled execution
required:
- scheduleId
- scheduleStatus
properties:
scheduleId:
type: string
description: scheduleId
example: schedule-id-123
audience:
$ref: '#/components/schemas/Audience'
campaignId:
type: string
description: campaignId
example: campaignId-12345
executeAt:
type: string
format: date-time
description: the time of execution trigger
example: '2016-08-29T09:12:33.001Z'
scheduleStatus:
type: string
description: schedule status
enum:
- Scheduled
- Triggered
example: Scheduled
executionDetails:
$ref: '#/components/schemas/executionStatusResponse'
AEPRecipient:
type: object
description: the AEP Recipient Information
required:
- type
- userId
- namespace
properties:
type:
type: string
description: 'recipient type: aep'
example: aep
userId:
type: string
description: the AEP Profile identifier
example: AEP-ProfileID-12345
namespace:
type: string
description: the AEP Profile namespace
example: email
mergePolicyName:
type: string
description: Merge Policy Name
example: Default Timebased
mergePolicySchema:
type: string
description: Merge Policy Schema
example: _xdm.context.profile
channelData:
$ref: '#/components/schemas/recipientChannelData'
profile:
$ref: '#/components/schemas/profile'
context:
$ref: '#/components/schemas/context'
attachments:
$ref: '#/components/schemas/personalizedAttachments'
parameters:
x-sandbox-name:
name: x-sandbox-name
description: Provides the platform Sandbox Name
required: true
in: header
schema:
type: string
x-request-id:
name: x-request-id
description: A unique id generated by Adobe.io. This parameter will be auto-generated, do not include it in your payload.
required: false
in: header
schema:
type: string
x-gw-ims-org-id:
name: x-gw-ims-org-id
description: The ims org id for which the action is being taken.
required: true
in: header
schema:
type: string
x-api-key:
name: x-api-key
description: The API key belonging to the calling client.
required: true
in: header
schema:
type: string
securitySchemes:
imsUserToken:
type: http
scheme: bearer
bearerFormat: JWT