Overview
Remotely start an iOS Live Activity using OneSignal’s REST API. Live Activities provide real-time updates directly on the lock screen and Dynamic Island (on supported devices), enhancing user engagement with ongoing events like sports games, deliveries, or countdowns.How to use this API
- Define a Live Activity in your app. See Live Activities developer setup to get started.
- Use the
activity_type
parameter to specify the type of the Live Activity UI to use. - Select your target audience to receive the Live Activity. Target all or individual users.
- Generate a unique
activity_id
to track and manage your Live Activity. - Use the
event_attributes
parameter to initialize the Live Activity with static data. - Use the
event_updates
parameter to update the Live Activity with dynamic content.
Select your target audience
Before sending a message, you need to determine who should receive it. OneSignal offers three targeting options:- Aliases & Subscription IDs: Send messages to specific users using unique identifiers such as External ID (recommended), OneSignal ID, custom alias, or subscription ID.
- Segments: Target predefined user groups based on attributes and behavior.
- Filters: Create custom targeting rules using user properties, such as tags, location, or activity.
Set a unique activity_id
-
Set a unique
activity_id
to track and manage the Live Activity. This value is crucial for maintaining a consistent reference to the Live Activity across different devices and sessions. Consider using a UUID, CUID, or NanoID for this parameter. -
Ensure that the
activity_id
is unique and consistently used for each Live Activity to avoid conflicts and ensure accurate tracking.Example
Set event_attributes
to initialize the Live Activity
Set default/static data to display in the Live Activity upon start.
Set event_updates
for dynamic content
The content used to update a running Live Activity. The object must conform to the ContentState
interface defined within your app’s Live Activity. See Live Activities developer setup.
Ensure that the event_updates
object matches the ContentState
interface exactly as defined in your Live Activity implementation. Inconsistencies can cause Live Activities to fail to display.
Headers
Your App API key with prefix Key
. See Keys & IDs.
Path Parameters
Your OneSignal App ID in UUID v4 format. See Keys & IDs.
The name of the Live Activity defined in your app. This should match the your-nameAttributes
struct used in your app code. See Live Activities developer setup. Example: If your app defines a Live Activity as OneSignalWidgetAttributes
, then activity_type
should be OneSignalWidgetAttributes
.
Body
The action to perform on the Live Activity. This request only supports start
.
start
An identifier you set when starting the Live Activity to uniquely identify it and associated devices with the event. Save this value because it is required for the Update Live Activity API. Consider using a UUID, CUID, or NanoID for this parameter.
The static data to initialize the Live Activity. See Live Activities developer setup.
The content used to update a running Live Activity. The object must conform to the ContentState
interface defined within your app's Live Activity. See Live Activities developer setup.
An internal name you set to help organize and track messages. Not shown to recipients. Maximum 128 characters.
The push message body with language-specific values.
The push title with language-specific values.
Target up to 20,000 users by their external_id
, onesignal_id
, or your own custom alias. Use with target_channel
to control the delivery channel. Not compatible with any other targeting parameters like filters
, include_subscription_ids
, included_segments
, or excluded_segments
. See Sending messages with the OneSignal API.
Target users' specific subscriptions by ID. Include up to 20,000 subscription_id
per API call. Not compatible with any other targeting parameters like filters
, include_aliases
, included_segments
, or excluded_segments
. See Sending messages with the OneSignal API.
Target predefined Segments. Users that are in multiple segments will only be sent the message once. Can be combined with excluded_segments
. Not compatible with any other targeting parameters like filters
, include_aliases
, or include_subscription_ids
. See Sending messages with the OneSignal API.
Exclude users in predefined Segments. Overrides membership in any segment specified in the included_segments
. Not compatible with any other targeting parameters like filters
, include_aliases
, or include_subscription_ids
. See Sending messages with the OneSignal API.
Dynamically target users based on properties like tags, activity, or location using flexible AND/OR logic. Limited to 200 total entries, including fields and OR
operators. Not compatible with other targeting parameters like include_aliases
, include_subscription_ids
, included_segments
, or excluded_segments
. See Sending messages with the OneSignal API.
A Unix timestamp (in seconds) that indicates the date the Live Activity is considered outdated. Once this time is reached, the system updates the Live Activity to ActivityState.stale
at which point you can update the Live Activity to indicate that its content is out of date.
Set the priority based on the urgency of the message. 10
- High priority. 5
- Normal priority. Apple allows a certain budget of High priority updates per hour. Exceeding the budget may throttle your messages. Apple recommends choosing a mix of priority 5
and 10
to prevent throttling. If your app needs more frequent updates, use NSSupportsLiveActivitiesFrequentUpdates
entry as directed in Apple's Developer Docs.
5
, 10
A value between 0
and 1
. If you start more than one Live Activity for your app, the Live Activity with the highest relevance score appears in the Dynamic Island. If Live Activities have the same relevance score, the system displays the Live Activity that started first. Additionally, the Relevance Score determines the order of your Live Activities on the Lock Screen.
A unique identifier used to prevent duplicate messages from repeat API calls. See Idempotent notification requests. Must be a v3 or v4 UUID. Valid for 30 days. Previously called external_id
.
Response
201
The ID of the Live Activity that was created in UUID v4 format.