

Welcome to ActivitySmith
ActivitySmith is API service that lets you trigger and update Live Activities and send push notifications directly from your own infrastructure. Pair your iOS device(s), authenticate with an API key, and send real-time alerts from any backend, cron, agent, or automation. Without building or maintaining your own iOS app or dealing directly with APNs. Check out the following resources to get started: Want an SDK or Integration? Let us know at adam@activitysmith.com.Prerequisites
- Create an API key
- Download our iOS app and pair your device(s)
Features
- Push Notifications: send push notifications to all paired devices or target specific channels.
- Live Activities: start, update and end a Live Activity on your lock screen or dynamic island, with optional channel targeting.
Powerful Capabilities
- Glanceable observability: monitor real-time system state and long-running operations directly on your lock screen or dynamic island.
- The hard stuff: APNs(Apple Push Notification service), certificates, orchestration
- Customizability: adapt the experience to fit your unique needs.
- Works with any backend: use with any backend, cron, agent, automation or AI tool.
- iOS app: ready to use native iOS app for your iPhone or iPad. No need to build your own.
Push Notifications
To send a push notification, use thepush-notification endpoint. It takes title and optional fields like message, payload, redirection, actions, and target.channels.target.channels accepts channel slugs (for example ["devs", "ops"]).
redirectionopens on normal tap.actions(up to 4) show on long-press in iOS expanded notification UI.
Live Activities
/start endpoint
To start a Live Activity, use thelive-activity/start endpoint. It takes a content_state payload and starts a Live Activity on your lock screen or dynamic island.You can optionally pass
target.channels with channel slugs to scope recipients.
For a segmented progress activity, include title, current_step, type, and number_of_steps.
Response
It returns aactivity_id that you can use to update or end the Live Activity.
/update endpoint
To update the Live Activity, calllive-activity/update with the activity_id and a content_state payload (minimum: title, current_step).
Response
/end endpoint
To end the Live Activity, calllive-activity/end with the activity_id and the content state.
Response
Channel Targeting
You can scope delivery with channel slugs:- If
targetis omitted and API key scope isall: send to all account recipients. - If
targetis omitted and API key scope ischannels: send to channels assigned to that key. - If
target.channelsis present: only those channel slugs are used.