Skip to main content
ActivitySmith Live ActivitiesActivitySmith Push Notifications

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.

How to use it?

We provide an easy to use API. You can download the iOS app from the App Store. Check out the following resources to get started: Want an SDK or Integration? Let us know at adam@activitysmith.com.

API Key

To use the API, you need to sign up on ActivitySmith and get an API key.

Features

  • Push Notifications: send a push notifications to all of your paired devices.
  • Live Activities: start, update and end a Live Activity on your lock screen or dynamic island.

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 the push-notification endpoint. It takes the title and message as parameters and sends a push notification to all of your paired devices. Push Notification
curl -X POST https://activitysmith.com/api/push-notification \
  -H "Authorization: Bearer $ACTIVITYSMITH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Build Failed 🚨",
    "message": "CI pipeline failed on main branch"
  }'
Response
{
  "success": true,
  "devices_notified": 3,
  "users_notified": 1,
  "timestamp": "2025-08-12T12:00:00.000Z"
}

Live Activities

/start endpoint

To start a Live Activity, use the live-activity/start endpoint. It takes a content_state payload and starts a Live Activity on your lock screen or dynamic island. For a segmented progress activity, include title, current_step, type, and number_of_steps. Live Activity Start
curl -X POST https://activitysmith.com/api/live-activity/start \
  -H "Authorization: Bearer $ACTIVITYSMITH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content_state": {
      "title": "ActivitySmith API Deployment",
      "subtitle": "start",
      "number_of_steps": 4,
      "current_step": 1,
      "type": "segmented_progress",
      "color": "yellow"
    }
  }'

Response

It returns a activity_id that you can use to update or end the Live Activity.
{
  "success": true,
  "activity_id": "pLAr-Hnq9ZFW4sxlk43Lhbuok4GLh7UW",
  "devices_notified": 2,
  "users_notified": 1,
  "timestamp": "2026-01-28T09:57:22.929Z"
}

/update endpoint

To update the Live Activity, call live-activity/update with the activity_id and a content_state payload (minimum: title, current_step). Live Activity Update
curl -X POST https://activitysmith.com/api/live-activity/update \
  -H "Authorization: Bearer $ACTIVITYSMITH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "activity_id": "pLAr-Hnq9ZFW4sxlk43Lhbuok4GLh7UW",
    "content_state": {
      "title": "ActivitySmith API Deployment",
      "subtitle": "npm i & pm2",
      "current_step": 3
    }
  }'

Response

{
  "success": true,
  "activity_id": "pLAr-Hnq9ZFW4sxlk43Lhbuok4GLh7UW",
  "devices_notified": 2,
  "timestamp": "2026-01-28T09:57:26.056Z"
}

/end endpoint

To end the Live Activity, call live-activity/end with the activity_id and the content state. Live Activity End
curl -X POST https://activitysmith.com/api/live-activity/end \
  -H "Authorization: Bearer $ACTIVITYSMITH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "activity_id": "pLAr-Hnq9ZFW4sxlk43Lhbuok4GLh7UW",
    "content_state": {
      "title": "ActivitySmith API Deployment",
      "subtitle": "done",
      "current_step": 4
    }
  }'

Response

{
  "success": true,
  "activity_id": "pLAr-Hnq9ZFW4sxlk43Lhbuok4GLh7UW",
  "devices_notified": 2,
  "timestamp": "2026-01-28T09:57:29.258Z"
}