/liveActivity/start

Starts a Live Activity and delivers it to the specified audience via push notification.

Audience targeting (exactly one required):

  • contactKeys — specific contacts by their contact key
  • deviceIds — specific devices by their device ID
  • segmentGuid — a segment GUID

Note on segment targeting: When using segmentGuid, the audience is resolved asynchronously in the push layer. Processing may be slower than deviceIds or contactKeys targeting, especially for large segments.

App filtering (appGuids):
Required. Only devices from the listed apps are targeted. Devices from unlisted apps are excluded at query time and do not appear in the Live Activity Report. Maximum 10 items.

Delivery behavior:
Some conditions cannot be validated at the REST layer because they depend on per-device state resolved during push processing (e.g. whether a contact has registered a device, whether the device has a valid push-to-start token). For these cases the request returns 200 OK and the per-device result is reported as Delivered or Error in the Live Activity Report.

activityId rules:

  • Optional. If omitted, the system generates one and returns it in the response.
  • Max 100 characters.
  • Once used, an activityId is blocked for 13 hours. No further start requests with the same activityId are accepted during this period.

REST-layer validations — HTTP 400, internal code 11:

FieldRuleError message
activityTypeRequiredActivityType is required
activityTypeMax 100 charactersActivityType cannot exceed 100 characters
activityIdMax 100 charactersActivityId cannot exceed 100 characters
activityIdAlready used — blocked for 13 hoursActivityId '{activityId}' has already been used. It cannot be reused until the activity is completed.
activityIdEnded and scheduled to expireActivityId '{activityId}' has been ended and is scheduled to close on {endDateUtc} (UTC). No further operations are allowed until it expires.
activityIdConcurrent lock held — retryableAnother operation is currently in progress for ActivityId '{id}'. Please try again shortly.
appGuidsRequiredAppGuids is required
appGuidsAll provided GUIDs must exist and be activeSome apps not found or inactive: {guids}
appGuidsAll apps must be iOS or Android typeLive activities are only supported for iOS and Android apps
appGuidsMax 10 itemsThe length of the AppGuid list must be less than or equal to 10.
TargetingAt least one of segmentGuid, deviceIds, contactKeys must be providedOne of SegmentId, DeviceIds, or ContactKeys must be provided
TargetingOnly one of segmentGuid, deviceIds, contactKeys can be providedOnly one of SegmentId, DeviceIds, or ContactKeys can be provided
deviceIdsMax 5000 itemsThe length of the DeviceId list must be less than or equal to 5000.
contactKeysMax 5000 itemsThe length of the ContactKey list must be less than or equal to 5000.
onlyLastUsedDeviceCannot be true when deviceIds is providedOnlyLastUsedDevice cannot be true when DeviceIds is provided
iosPayload / androidPayloadAt least one must be providedAt least one of IOSPayload or AndroidPayload must be provided

Push-layer validations — logged as ERROR in Send Logs (not HTTP errors):

ConditionError message in Send Logs
Contact key not found in device registryNo device found for ContactKey: {contactKey}
Device ID not foundDevice not found
Device's platform is not iOS or AndroidUnsupported AppType: {appType}
iOS device has no push-to-start tokenNo valid push-to-start token found for this device.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required
length ≤ 100

Identifies the widget/template type registered in your mobile app (e.g. order_tracking, flight_status).

string
length ≤ 100

Unique identifier for this Live Activity instance. Optional — if omitted, the system generates one and returns it in the response. Once used, the same activityId is blocked for 13 hours and cannot be restarted.

appGuids
array of uuids
required
length ≤ 10

Required. Filter delivery to specific app integrations (must be iOS or Android type). Only devices from the listed apps are targeted. Maximum 10 items.

appGuids*
uuid

Target audience by segment. Mutually exclusive with deviceIds and contactKeys.

deviceIds
array of strings
length ≤ 5000

Target specific devices by device ID. Mutually exclusive with segmentGuid and contactKeys. Maximum 5000 items.

deviceIds
contactKeys
array of strings
length ≤ 5000

Target specific contacts by contact key. Mutually exclusive with segmentGuid and deviceIds. Maximum 5000 items.

contactKeys
boolean

Optional. If true, only the most recently active device per contact receives the notification. If false or omitted, all registered devices for each contact are targeted. Cannot be true when deviceIds is provided.

iosPayload
object

iOS-specific Live Activity payload. At least one of iosPayload or androidPayload must be provided.

Contains three dynamic objects — the fields inside each object depend entirely on your app's widget template:

  • contentState — dynamic state data that drives the live widget view (maps to your ActivityAttributes.ContentState struct).
  • alert — optional APNs alert shown when the activity starts.
  • attributes — static attributes set at start time and never updated (maps to your ActivityAttributes struct).

Send whatever fields your template expects inside each object.

androidPayload
object

Android-specific Live Activity payload. At least one of iosPayload or androidPayload must be provided.

This is a fully dynamic object — send whatever fields your Android widget template expects directly at the top level.

uuid

Optional idempotency key. If provided, duplicate requests with the same traceId within 5 minutes return HTTP 409. See Rest API Idempotency tag for details.

Headers
string
required
Defaults to {$$.env.access_token}
Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json