list_events
Read independent link, target or citation feeds. Save each feed cursor after applying the full page. Citation changes compare eligible epochs; unknown never proves loss.
Name recorded in the 2026-10-27 deployment. This page describes current source; verify inputs and access in your connected catalog. Provider configuration and workspace access still apply.
This read does not start a verification job.
Example request
Connect through MCP, CLI, or HTTP. Replace example identifiers with records from your workspace.Returned result
Schema-validated example; IDs and dates are illustrative. MCP returns this data instructuredContent and in a text content block; generic HTTP and CLI return the JSON result directly.
Response formats
format selects the row shape. detailed is the example above: every field. concise keeps, per row: id, type, watch_id, target_id, created_at, cursor, data (before and after snapshots without occurrences, expectations and signatures; observation_id; evidence_key); every top-level field (cursors, counts, coverage, metadata) is kept in both. The observation state an unknown-versus-absent decision depends on is never dropped. MCP and code mode default to concise; the CLI and HTTP default to detailed; the response names the default it applied in defaults_applied.
Input fields
Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.Validation and omitted values
feed selects one of three independent feeds with separate cursors: links for placement changes, targets for destination-health changes, or citations for eligible citation comparisons. Never reuse a cursor across feeds. The retired names list_link_events and list_target_events resolve here with the link or target feed implied. Omit cursor for the first page. Keep continuation cursors opaque and use them only with the same listing and filters. Omitting projectId reads the accessible workspace scope rather than selecting a different project. Ordinary feed polling orders events by sequence ascending. Apply the entire returned page before persisting the next cursor. Each event feed has its own cursor history. Without a cursor, reads start at the beginning of retained source-event history. An expired supplied cursor returns snapshot recovery instructions. Without a cursor, reads start at the beginning of retained destination-event history. An expired supplied cursor returns destination snapshot recovery instructions. The citations feed has its own cursor and contains server-recomputed eligible epoch comparisons. Imported single-answer flips and unknown-only epochs do not emit a change. Statistical interpretation remains conditional on prespecified comparisons and sampling assumptions. With browse=true and feed=links, table_filters and sort can use change (found, back, lost or missing) and importance (important or detail). Found, back and lost come from placement events; missing records a move into confirmed_missing and does not count as lost. These are browse expressions, not added fields in returned event objects. With browse=true, both links and targets support last_7_days and last_30_days filters. Use a filter such as{"column":"last_7_days","operator":"is","value":"yes"}. Each range starts at UTC midnight 6 or 29 days before the read and includes later events; it is a calendar-day lower bound. Ordinary sequence-cursor polling does not use these browse filters.
Defaults when omitted
Output fields
Fields inside optional or nullable parents apply only when that parent exists. Common schema conventions explain evidence states, empty lists and extensions.total(integer / null, optional).has_more(boolean, required): True when another page is available.next_cursor(string / null, required): Opaque checkpoint for this feed. Save it after processing the events, even when has_more is false. Continue paging only while has_more is true.page(object, optional).workspace_id(string, optional): Workspace that owns this record.events(array, required).
All fields and nested objects
All fields and nested objects
Types, allowed values, limits and nested fields: