Pull edits for one channel
Operation boundary
- Caller: Trusted backend only
- Scope: Synchronize the currently viewed channel on entry, reconnect or resume; this endpoint does not discover updates for all conversations.
- Success: Obtain a baseline before loading visible history; continue while more=true even when updates is empty. Merge messages and cursor transactionally; an older message edit must not replace a newer tail preview.
- Recovery: On reset_required=true, reload visible history from the new baseline; on 503, preserve the cursor and retry with backoff. Discard delayed responses from older content epochs.
/channel/messageupdatesBootstrap with an empty cursor before loading history. Drain more pages and merge versions with the cursor atomically; this feed returns latest states.
Request Body
application/json
Bootstrap with an empty cursor before loading history. Drain more pages and merge versions with the cursor atomically; this feed returns latest states.
TypeScript Definitions
Use the request body type in TypeScript.
Pull latest edits for one visible channel.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{ "updates": [ { "header": { "no_persist": 0, "red_dot": 0, "sync_once": 0 }, "setting": 0, "message_id": "string", "message_idstr": "string", "client_msg_no": "string", "end": 0, "end_reason": 0, "error": "string", "stream_data": "string", "event_meta": { "has_events": true, "completed": true, "event_version": 0, "last_msg_event_seq": 0, "event_count": 0, "open_event_count": 0, "events": [ { "event_key": "string", "status": "string", "last_msg_event_seq": 0, "snapshot": null, "end_reason": 0, "error": "string" } ] }, "event_sync_hint": { "client_msg_no": "string", "from_msg_event_seq": 0 }, "message_seq": "string", "from_uid": "string", "channel_id": "string", "channel_type": 0, "topic": "string", "expire": 0, "timestamp": 0, "payload": "string", "version": "string", "updated_at_ms": 0 } ], "next_update_cursor": "string", "more": true, "reset_required": true}