Introduction
Add native Live Activities to any product from the web. No mobile development required!
WebActivity puts live cards on users' phones, controlled from a website or backend with a few HTTP calls.
On iOS: Live Activities
A Live Activity is a live card on the Lock Screen, in the Dynamic Island, and on the Apple Watch Smart Stack. It shows something that changes (an order, a match, a countdown) and updates in place. The user does not need to open anything.
On Android: Live Updates
The same activity reaches Android phones as a notification that updates in place.
- Android users install the WebActivity app. Instant launch with no install is iOS only.
- Android 16 and later show it as a Live Update. Older versions show a normal notification.
- Android cannot draw a custom design, so each layout uses the closest shape Android allows.
How it works
- Start. A backend calls
POST /api/start. It gets anactivityIdand a launch button. - Launch. A user taps the launch button on a web page. The card appears on their phone.
- Update. The backend calls
POST /api/update. The card changes on the phone. - End. The backend calls
POST /api/end. The card is removed.
Key terms
| Term | Meaning |
|---|---|
| Activity | One live card for one phone. Its id is the activityId (act- and 12 characters). With reuse, each phone gets its own copy. |
| Layout | The card's design: progress, picture, versus, or countdown. See layouts. |
| State | What the card shows. See the state object. |
Container (widgetContainerId) | Any text that names one widget, for example "pizza-tracker". Send the same value on every call for that widget. A phone keeps one activity per container. |
Group (group) | An optional label. One call can update or end every activity with the same group. |
| Launch button | The iframe that start returns. A user taps it to add the activity to their phone. |
| Reuse | One launch button for many phones. See one button, many phones. |
| Restart | The phone creates the card again instead of changing it. A restart always alerts. |
| Compact Dynamic Island | The small Dynamic Island at the top of the iPhone screen while the user does something else. |
| Push | One delivery to one phone. Billing counts pushes. See delivery and billing. |
Users get the cards through the WebActivity app on iPhone and Android. On iPhone it can also open as an App Clip, a small version that needs no install. What the app collects, and who can see content, is in data and privacy.
Use cases
These surfaces used to be only for companies with big native apps: Uber's ride tracker, DoorDash's order status, ESPN's live scores. WebActivity gives the same surface to anything a QR code or a link can reach.
- A high school football game: a QR code at the gate puts the live score on every phone in the stands, with team history, fun facts, and paid shout-outs from students and parents during the game.
- A school fundraiser: parents watch the donation total climb toward the goal all week, right on the Lock Screen.
- Sports betting: the bet and the current odds on the Lock Screen until the game ends.
- AI agents: a long-running agent reports each step to the phone as it works.
- Internal team tooling: deploys, incidents, and queue depth on the team's phones, with no internal app to build or distribute.









