Amazon Pinpoint
REST API Reference

Campaign Version

A campaign represents a messaging initiative that engages a specific segment of users for an Amazon Pinpoint application. The Campaign Version resource provides information about a specific version of a campaign, such as the schedule, messaging limits, and message settings for that version of the campaign.

You can use this resource to retrieve information about a specific version of a campaign.

URI

/v1/apps/application-id/campaigns/campaign-id/versions/version

HTTP Methods

GET

Operation ID: GetCampaignVersion

Retrieves information about the status, configuration, and other settings for a specific version of a campaign.

Path Parameters

Name Type Required Description
version String True

The unique version number (Version property) for the campaign version.

application-id String True

The unique identifier for the application. This identifier is displayed as the Project ID on the Amazon Pinpoint console.

campaign-id String True

The unique identifier for the campaign.

Header Parameters

Name Type Required Description
accept String False

Indicates which content types, expressed as MIME types, the client understands.

Responses

Status Code Response Model Description
200 CampaignResponse

The request succeeded.

400 MessageBody

The request contains a syntax error (BadRequestException).

403 MessageBody

The request was denied because access to the specified resource is forbidden (ForbiddenException).

404 MessageBody

The request failed because the specified resource was not found (NotFoundException).

405 MessageBody

The request failed because the method is not allowed for the specified resource (MethodNotAllowedException).

429 MessageBody

The request failed because too many requests were sent during a certain amount of time (TooManyRequestsException).

500 MessageBody

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

OPTIONS

Retrieves information about the communication requirements and options that are available for the Campaign Version resource.

Responses

Status Code Response Model Description
200 None

The request succeeded.

Schemas

Response Bodies

Example CampaignResponse

{ "TreatmentName": "string", "TreatmentDescription": "string", "MessageConfiguration": { "DefaultMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "APNSMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "GCMMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "ADMMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "BaiduMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "EmailMessage": { "Title": "string", "Body": "string", "HtmlBody": "string", "FromAddress": "string" }, "SMSMessage": { "Body": "string", "MessageType": enum, "SenderId": "string" } }, "Schedule": { "StartTime": "string", "EndTime": "string", "Frequency": enum, "IsLocalTime": boolean, "Timezone": "string", "QuietTime": { "Start": "string", "End": "string" }, "EventFilter": { "Dimensions": { "EventType": { "DimensionType": enum, "Values": [ "string" ] }, "Attributes": { }, "Metrics": { } }, "FilterType": enum } }, "Id": "string", "ApplicationId": "string", "CreationDate": "string", "LastModifiedDate": "string", "SegmentId": "string", "SegmentVersion": integer, "AdditionalTreatments": [ { "TreatmentName": "string", "TreatmentDescription": "string", "MessageConfiguration": { "DefaultMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "APNSMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "GCMMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "ADMMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "BaiduMessage": { "Title": "string", "Body": "string", "ImageUrl": "string", "ImageIconUrl": "string", "ImageSmallIconUrl": "string", "MediaUrl": "string", "Action": enum, "Url": "string", "SilentPush": boolean, "JsonBody": "string", "RawContent": "string", "TimeToLive": integer }, "EmailMessage": { "Title": "string", "Body": "string", "HtmlBody": "string", "FromAddress": "string" }, "SMSMessage": { "Body": "string", "MessageType": enum, "SenderId": "string" } }, "Schedule": { "StartTime": "string", "EndTime": "string", "Frequency": enum, "IsLocalTime": boolean, "Timezone": "string", "QuietTime": { "Start": "string", "End": "string" }, "EventFilter": { "Dimensions": { "EventType": { "DimensionType": enum, "Values": [ "string" ] }, "Attributes": { }, "Metrics": { } }, "FilterType": enum } }, "SizePercent": integer, "Id": "string", "State": { "CampaignStatus": enum } } ], "HoldoutPercent": integer, "Name": "string", "Limits": { "Daily": integer, "Total": integer, "MessagesPerSecond": integer, "MaximumDuration": integer }, "Description": "string", "Hook": { "LambdaFunctionName": "string", "WebUrl": "string", "Mode": enum }, "State": { "CampaignStatus": enum }, "DefaultState": { "CampaignStatus": enum }, "Version": integer, "IsPaused": boolean, "Arn": "string", "tags": { } }

Example MessageBody

{ "RequestID": "string", "Message": "string" }

Properties

AttributeDimension

Specifies attribute-based criteria for including or excluding endpoints from a segment.

Property Type Required Description
AttributeType

string

Values: INCLUSIVE | EXCLUSIVE

False

The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints that match the criteria are included in the segment; and, EXCLUSIVE, endpoints that match the criteria are excluded from the segment.

Values

Array of type string

True

The criteria values to use for the segment dimension. Depending on the value of the AttributeType property, endpoints are included or excluded from the segment if their attribute values match the criteria values.

CampaignEmailMessage

Specifies the content and "From" address for an email message that's sent to recipients of a campaign.

Property Type Required Description
Title

string

True

The subject line, or title, of the email.

Body

string

False

The body of the email for recipients whose email clients don't support HTML content.

HtmlBody

string

True

The body of the email, in HTML format, for recipients whose email clients support HTML content.

FromAddress

string

False

The verified email address to send the email from. The default address is the FromAddress specified for the email channel for the application.

CampaignEventFilter

Specifies the settings for events that cause a campaign to be sent.

Property Type Required Description
Dimensions

EventDimensions

True

The dimension settings of the event filter for the campaign.

FilterType

string

Values: SYSTEM | ENDPOINT

True

The type of event that causes the campaign to be sent. Valid values are: SYSTEM, sends the campaign when a system event occurs; and, ENDPOINT, sends the campaign when an endpoint event (Events resource) occurs.

CampaignHook

Specifies the AWS Lambda function to use as a code hook for a campaign.

Property Type Required Description
LambdaFunctionName

string

False

The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to send messages for a campaign.

WebUrl

string

False

The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.

Mode

string

Values: DELIVERY | FILTER

False

Specifies which Lambda mode to use when invoking the AWS Lambda function.

CampaignLimits

Specifies limits on the messages that a campaign can send.

Property Type Required Description
Daily

integer

False

The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. The maximum value is 100.

Total

integer

False

The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. The maximum value is 100.

MessagesPerSecond

integer

False

The maximum number of messages that a campaign can send each second. The minimum value is 50. The maximum value is 20,000.

MaximumDuration

integer

False

The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.

CampaignResponse

Provides information about the status, configuration, and other settings for a campaign.

Property Type Required Description
TreatmentName

string

False

The custom name of a variation of the campaign that's used for A/B testing.

TreatmentDescription

string

False

The custom description of a variation of the campaign that's used for A/B testing.

MessageConfiguration

MessageConfiguration

False

The message configuration settings for the campaign.

Schedule

Schedule

False

The schedule settings for the campaign.

Id

string

True

The unique identifier for the campaign.

ApplicationId

string

True

The unique identifier for the application that the campaign applies to.

CreationDate

string

True

The date, ISO 8601 format, when the campaign was created.

LastModifiedDate

string

True

The date, in ISO 8601 format, when the campaign was last modified.

SegmentId

string

True

The unique identifier for the segment that's associated with the campaign.

SegmentVersion

integer

True

The version number of the segment that's associated with the campaign.

AdditionalTreatments

Array of type TreatmentResource

False

An array of responses, one for each treatment that you defined for the campaign, in addition to the default treatment.

HoldoutPercent

integer

False

The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.

Name

string

False

The name of the campaign.

Limits

CampaignLimits

False

The messaging limits for the campaign.

Description

string

False

The custom description of the campaign.

Hook

CampaignHook

False

The settings for the AWS Lambda function to use as a code hook for the campaign.

State

CampaignState

False

The current status of the campaign.

DefaultState

CampaignState

False

The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment, to support A/B testing.

Version

integer

False

The version number of the campaign.

IsPaused

boolean

False

Specifies whether the campaign is paused. A paused campaign doesn't run unless you resume it by changing this value to false.

Arn

string

True

The Amazon Resource Name (ARN) of the campaign.

tags

object

False

A string-to-string map of key-value pairs that identifies the tags that are associated with the campaign. Each tag consists of a required tag key and an associated tag value.

CampaignSmsMessage

Specifies the content and settings for an SMS message that's sent to recipients of a campaign.

Property Type Required Description
Body

string

False

The body of the SMS message.

MessageType

string

Values: TRANSACTIONAL | PROMOTIONAL

False

The type of SMS message. Valid values are: TRANSACTIONAL, the message is critical or time-sensitive, such as a one-time password that supports a customer transaction; and, PROMOTIONAL, the message isn't critical or time-sensitive, such as a marketing message.

SenderId

string

False

The sender ID to display on recipients' devices when they receive the SMS message.

CampaignState

Provides information about the status of a campaign.

Property Type Required Description
CampaignStatus

string

Values: SCHEDULED | EXECUTING | PENDING_NEXT_RUN | COMPLETED | PAUSED | DELETED

False

The status of the campaign, or the status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only when all campaign treatments have a status of COMPLETED.

EventDimensions

Specifies the dimensions for an event filter that determines when a campaign is sent.

Property Type Required Description
EventType

SetDimension

False

The name of the event that causes the campaign to be sent. This can be a standard type of event that Amazon Pinpoint generates, such as _session.start, or a custom event that's specific to your app.

Attributes

object

False

One or more custom attributes that your app reports to Amazon Pinpoint. You can use these attributes as selection criteria when you create an event filter.

Metrics

object

False

One or more custom metrics that your app reports to Amazon Pinpoint. You can use these metrics as selection criteria when you create an event filter.

Message

Specifies the content and settings for a push notification that's sent to recipients of a campaign.

Property Type Required Description
Title

string

False

The title to display above the notification message on a recipient's device.

Body

string

False

The body of the notification message. The maximum number of characters is 200.

ImageUrl

string

False

The URL of an image to display in the push notification.

ImageIconUrl

string

False

The URL of the image to display as the push-notification icon, such as the icon for the app.

ImageSmallIconUrl

string

False

The URL of the image to display as the small, push-notification icon, such as a small version of the icon for the app.

MediaUrl

string

False

The URL of the image or video to display in the push notification.

Action

string

Values: OPEN_APP | DEEP_LINK | URL

False

The action to occur if a recipient taps the push notification. Valid values are:

  • OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.

  • DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of iOS and Android.

  • URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.

Url

string

False

The URL to open in a recipient's default mobile browser, if a recipient taps the push notification and the value of the Action property is URL.

SilentPush

boolean

False

Specifies whether the notification is a silent push notification, which is a push notification that doesn't display on a recipient's device. Silent push notifications can be used for cases such as updating an app's configuration, displaying messages in an in-app message center, or supporting phone home functionality.

JsonBody

string

False

The JSON payload to use for a silent push notification.

RawContent

string

False

The raw, JSON-formatted string to use as the payload for the notification message. This value overrides other values for the message.

TimeToLive

integer

False

The number of seconds that the push-notification service should keep the message, if the service is unable to deliver the notification the first time. This value is converted to an expiration value when it's sent to a push-notification service. If this value is 0, the service treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again.

This value doesn't apply to messages that are sent through the Amazon Device Messaging (ADM) service.

MessageBody

Provides information about an API request or response.

Property Type Required Description
RequestID

string

False

The unique identifier for the request or response.

Message

string

False

The message that's returned from the API.

MessageConfiguration

Specifies the message configuration settings for a campaign.

Property Type Required Description
DefaultMessage

Message

False

The default message that the campaign sends through all the channels that are configured for the campaign.

APNSMessage

Message

False

The message that the campaign sends through the APNs (Apple Push Notification service) channel. This message overrides the default message.

GCMMessage

Message

False

The message that the campaign sends through the GCM channel, which enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message overrides the default message.

ADMMessage

Message

False

The message that the campaign sends through the ADM (Amazon Device Messaging) channel. This message overrides the default message.

BaiduMessage

Message

False

The message that the campaign sends through the Baidu (Baidu Cloud Push) channel. This message overrides the default message.

EmailMessage

CampaignEmailMessage

False

The message that the campaign sends through the email channel.

SMSMessage

CampaignSmsMessage

False

The message that the campaign sends through the SMS channel.

MetricDimension

Specifies metric-based criteria for including or excluding endpoints from a segment. These criteria derive from custom metrics that you define for endpoints.

Property Type Required Description
ComparisonOperator

string

True

The operator to use when comparing metric values. Valid values are: GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, and EQUAL.

Value

number

True

The value to compare.

QuietTime

Specifies the start and end times that define a time range when messages aren't sent to endpoints.

Property Type Required Description
Start

string

False

The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.

End

string

False

The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.

Schedule

Specifies the schedule settings for a campaign.

Property Type Required Description
StartTime

string

True

The scheduled time, in ISO 8601 format, for the campaign to begin.

EndTime

string

False

The scheduled time, in ISO 8601 format, for the campaign to end.

Frequency

string

Values: ONCE | HOURLY | DAILY | WEEKLY | MONTHLY | EVENT

False

Specifies how often the campaign is sent or whether the campaign is sent in response to a specific event.

IsLocalTime

boolean

False

Specifies whether the start and end times for the campaign schedule use each recipient's local time. To base the schedule on each recipient's local time, set this value to true.

Timezone

string

False

The starting UTC offset for the campaign schedule, if the value of the IsLocalTime property is true. Valid values are: UTC, UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+13, UTC-02, UTC-03, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-10, and UTC-11.

QuietTime

QuietTime

False

The default quiet time for the campaign. Quiet time is a specific time range when a campaign doesn't send messages to endpoints, if all the following conditions are met:

  • The EndpointDemographic.Timezone property of the endpoint is set to a valid value.

  • The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the campaign.

  • The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the campaign.

If any of the preceding conditions isn't met, the endpoint will receive messages from the campaign, even if quiet time is enabled.

EventFilter

CampaignEventFilter

False

The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.

SetDimension

Specifies the dimension type and values for a segment dimension.

Property Type Required Description
DimensionType

string

Values: INCLUSIVE | EXCLUSIVE

False

The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints that match the criteria are included in the segment; and, EXCLUSIVE, endpoints that match the criteria are excluded from the segment.

Values

Array of type string

True

The criteria values to use for the segment dimension. Depending on the value of the DimensionType property, endpoints are included or excluded from the segment if their values match the criteria values.

TreatmentResource

Specifies the settings for a campaign treatment. A treatment is a variation of a campaign that's used for A/B testing of a campaign.

Property Type Required Description
TreatmentName

string

False

The custom name of the treatment. A treatment is a variation of a campaign that's used for A/B testing of a campaign.

TreatmentDescription

string

False

The custom description of the treatment.

MessageConfiguration

MessageConfiguration

False

The message configuration settings for the treatment.

Schedule

Schedule

False

The schedule settings for the treatment.

SizePercent

integer

True

The allocated percentage of users (segment members) that the treatment is sent to.

Id

string

True

The unique identifier for the treatment.

State

CampaignState

False

The status of the treatment.

See Also

For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

GetCampaignVersion