Skip to main content
Read a finite, chronological initialization snapshot for an activation UUID obtained from conversation state or a verified received webhook. This endpoint supplies retained authorized history plus exactly one sponsor trigger. It is not a live-message feed. The sponsor is the actual author of the entry marked is_trigger: true. Their qualifying authenticated group message must meet the exact bidirectional-allow requirements. Other eligible senders do not replace that author or restart the active snapshot. Current authorization still depends on the original sponsor’s rules and membership. Admin-scoped API keys and human sessions may request an activation belonging to an identity in their organization. Claimed identity-scoped keys may request only their own identity. All callers still need a currently available activation. Unclaimed keys are not supported. Authorization is checked on every page; possession of an activation ID or cursor does not grant access.

Query parameters

Response

Source entry

See per-message sender access for semantics and legacy/system exceptions. Inline history and every paginated page use the same field. Preserve it through full snapshot loading; never default missing evidence to direct.

Reply context

Phone/iMessage reply contexts can omit or return null for email-specific fields. Keep the context associated with the current activation and turn; do not infer a private reply target from the last author.

Read a page

These SDK examples assume an authenticated client and an activation ID from a verified event or state response. They fetch one page, not a complete initialization.
For manual pagination, pass the returned next_cursor as Python cursor, TypeScript cursor, or Rust CompanionActivationOptions.cursor on the next request. Continue until history_complete is true and the cursor is null. Retain the entries from every page before constructing context. For an agent receiver, prefer the complete initialization helpers, which retain entries, validate consistent scope and cursor progress, deduplicate sources, enforce byte/page bounds, and revalidate before returning. CLI JSON uses historyComplete, nextCursor, and replyContext; raw API JSON uses snake_case.

Initialization rules

  • Finish every page before submitting one combined agent input. Never wake the host once per page, source message, or attachment.
  • Preserve authors, times, per-message sender access, historical markers, attachment references, notices, and the trigger exactly once. Historical commands are context, not new control messages.
  • Buffer live events during initialization and persist a durable activation/host-turn checkpoint before releasing them. Recover missing initialization even when the first event observed is live.
  • The snapshot contains only retained authorized messages delivered to this identity in this scope. Completion does not promise history from before the agent joined or messages that are no longer available.
  • New arrivals do not extend this snapshot. Read them through received events or ordinary channel history, deduplicating against initialized source IDs.
  • Recheck current authorization before a delayed submission. If access ends, discard pending Companion-only context rather than submitting a partial initialization.
An API page supports up to 32 MiB of message content. A 413 requires a smaller limit; an individually oversized message still fails. SDK initialization has a separate default 8 MiB total bound and does not automatically reduce the page size after 413. Use the page API for a custom bounded, lossless context-loading path.

Errors

See webhook recovery and response notices. Notices never replace error handling or grant permission.