Health
Unauthenticated liveness (database reachability).
curl "https://api.bolrach.dev/v1/notify/health"Events
Scope notify:write. Create an event for a subject user. Supports dedupe_key and channel preferences.
curl -X POST "https://api.bolrach.dev/v1/notify/events" \
-H "Authorization: Bearer bt_your_key_here" \
-H "Content-Type: application/json"
-d '{"product_key":"myapp","type":"invoice.paid","subject_user_id":"USER_UUID","title":"Invoice paid","dedupe_key":"inv-123-paid"}'Inbox
Scope notify:read. List in-app notifications for a user (query params depend on product key and user id).
curl "https://api.bolrach.dev/v1/notify/inbox?user_id=USER_UUID" \
-H "Authorization: Bearer bt_your_key_here"Unread badge count for a user.
curl "https://api.bolrach.dev/v1/notify/unread-count?user_id=USER_UUID" \
-H "Authorization: Bearer bt_your_key_here"Mark one notification read.
curl -X POST "https://api.bolrach.dev/v1/notify/inbox/EVENT_ID/read" \
-H "Authorization: Bearer bt_your_key_here" \
-H "Content-Type: application/json"
-d '{"user_id":"USER_UUID"}'Mark all notifications read for a user.
curl -X POST "https://api.bolrach.dev/v1/notify/inbox/read-all" \
-H "Authorization: Bearer bt_your_key_here" \
-H "Content-Type: application/json"
-d '{"user_id":"USER_UUID"}'Preferences
Per-user channel preferences (in-app, email, etc.) honoured when events are created.
curl "https://api.bolrach.dev/v1/notify/preferences?user_id=USER_UUID&product_key=myapp" \
-H "Authorization: Bearer bt_your_key_here"Update channels for a product event type (e.g. drop in_app when the user opts out).
curl -X PUT "https://api.bolrach.dev/v1/notify/preferences" \
-H "Authorization: Bearer bt_your_key_here" \
-H "Content-Type: application/json"
-d '{"user_id":"USER_UUID","product_key":"myapp","type":"invoice.paid","channels":["email"]}'Private-build notes
Coordinated launch. Machine catalogue: api.bolrach.dev/v1 · openapi.json.