Skip to content

Sending Notifications

Notifications are sent via POST /v1/notifications using a source API key (sk_...).

Terminal window
curl -s https://api.tipoff.dev/v1/notifications \
-H "Authorization: Bearer sk_your_source_key" \
-H "Content-Type: application/json" \
-d '{
"to": "user_abc",
"title": "Overdue: Buy groceries",
"body": "Task was due 2 hours ago",
"category": "done_snooze_dismiss",
"priority": "high"
}'
FieldTypeRequiredDescription
tostringyesUser ID to send to
titlestringyesNotification title
bodystringnoNotification body text
prioritystringnolow, normal (default), high, urgent
categorystringnoAction category identifier (must match a registered category)
icon_urlstringnoURL for the notification icon
click_urlstringnoDeep link URL when notification is tapped
metadataobjectnoOpaque JSON, echoed back in action callbacks
collapse_keystringnoReplaces prior notification with the same key
ttlintegernoSeconds until the notification expires
  • low — Silent delivery, no sound or badge
  • normal — Standard delivery (default)
  • high — Time-sensitive, breaks through Focus modes
  • urgent — Critical alerts, requires special entitlement

Categories define which action buttons appear on the notification. They are registered by sources via POST /v1/categories/sync.

When a user taps an action button, TipOff delivers an action event containing the action identifier and the original metadata from the notification.

If you send two notifications with the same collapse_key, the second replaces the first on the user’s device. Useful for status updates where only the latest matters.