Installation
Install the ActivitySmith Python SDK with pip:Python
Usage
- Create an API key
- Set
ACTIVITYSMITH_API_KEYor pass it directly toActivitySmith. - Reuse the client anywhere you send pushes or Live Activity updates.
Python
Send a Push Notification
Useactivitysmith.notifications.send when a deploy finishes, a customer upgrades, or a background job needs attention. title is required. message and subtitle are optional.
Python
Rich Push Notifications with Media
Python
What will work:
- direct image URL:
.jpg,.png,.gif, etc. - direct audio file URL:
.mp3,.m4a, etc. - direct video file URL:
.mp4,.mov, etc. - URL that responds with a proper media
Content-Type, even if the path has no extension
media can be combined with redirection, but not with actions. redirection can be an HTTPS URL or a shortcuts://run-shortcut?name=... URL.
Actionable Push Notifications
Push notification redirection can open an HTTPS URL or run a specific iPhone Shortcut with a shortcuts://run-shortcut?name=... URL when someone taps the notification. For expanded notification actions, open_url supports HTTPS URLs and shortcuts://run-shortcut?name=... URLs. Webhooks are executed by the ActivitySmith backend and must use HTTPS.
Python
Live Activities
There are six types of Live Activities:stats: best for showing business numbers side by side, such as revenue, sales, new users, conversion, refunds, or any other value you want visible at a glancemetrics: best for live percentage values that change often, like server CPU, memory usage, disk usage, or error ratesegmented_progress: best for anything that moves through clear stages, like deployments, onboarding flows, backups, ETL pipelines, migrations, and AI agent runsprogress: best for tracking real-time progress with percentage, like tasks, backups, migrations, syncs, or uploadsalert: best for status updates, such as feature adoption, reactivation, onboarding blockers, incidents, escalations, and other operational statestimer: use it when you need countdowns or timers
Start & Update Live Activity
Use a stablestream_key to identify the metric, job, deployment, or system you want to keep visible. The first stream(...) call starts the Live Activity. Later calls with the same stream_key update it.
Stats

Metrics

Segmented Progress

Progress

Alert

Timer

duration_seconds. You can update title, subtitle, color, or any other visible field as the work changes. Leave duration_seconds out unless you want to change the timer.
To start at 00:00 and count up, set counts_down=False and leave out duration_seconds.
End Live Activity
Callend_stream(...) with the same stream_key to dismiss the Live Activity. You can include final values before it is removed. By default, iOS removes the Live Activity after two minutes. Set auto_dismiss_minutes to choose a different dismissal time, including 0 for immediate dismissal.
Icons and Badges
Add more context to Live Activities with icons and badges.Icon
Supported Live Activity types:stats, metrics, progress, segmented_progress, alert, and timer.
![]()
icon.symbol value is an Apple SF Symbol name. Browse the catalog with one of these tools:
- ActivitySmith app - Open Settings -> SF Symbols to browse 45 hand-picked icons ready to use
- SF Symbols - Apple’s official macOS app
- Interactful - free third-party iOS app listing all SF Symbols under Foundations -> Iconography
Badge
Badges are supported byalert, progress, and segmented_progress Live Activities.

Live Activity Colors
Choose from these colors for the Live Activity accent, including progress bars and action buttons, or apply them to an individual icon or badge:lime, green, cyan, blue, purple, magenta, red, orange, yellow, gray
Live Activity Action

open_url: open an HTTPS URL.open_urlwith ashortcuts://run-shortcut?name=...URL: run a specific iPhone Shortcut, for example to open an app.webhook: trigger a backend GET/POST workflow.
Open URL action
Apple Shortcut action
Webhook action
Secondary action
Use secondary_action when you want a second button beside the primary action.
The secondary action button is supported for alert, progress, and segmented_progress Live Activities. Both buttons use the same open_url, webhook, and Apple Shortcut payload shapes.
Channels
Target specific channels when sending a push notification or streaming a Live Activity.Python
Widgets


Error Handling
Wrap API calls withtry/except. The SDK raises exceptions for non-2xx responses. Rate limit errors use the error and message fields, and Live Activity limit errors include limit and active. See Rate Limits for details.
Additional Resources
PyPI Package
Install the ActivitySmith Python SDK from PyPI
Source Code
View the Python SDK source on GitHub