Heartbeat — register the caller as viewing this conversation
Inbox
Heartbeat — register the caller as viewing this conversation
Clients send this every 20 s while the conversation is focused. Server TTL is 30 s; missing a heartbeat auto-expires presence. When called with ?leave=1 the handler unregisters the caller instead — this lets navigator.sendBeacon (POST-only) clean up presence on hard tab close where a real DELETE would be aborted before the request leaves the wire. Body may carry session_id so two tabs of the same user are tracked separately on the wire (audit #PRESENCE-1).
POST
Heartbeat — register the caller as viewing this conversation
Authorizations
Dashboard JWT token from Clerk
Path Parameters
Query Parameters
Maximum string length:
512Maximum string length:
2048Body
application/json
Response
200
Default Response
Delete the content-hash duplicate-message suppression policyUnregister the caller as a viewer (tab close / route away)