---
title: "Read change events"
method: POST
path: "/v1/commands/list_events"
tags: ["Link monitoring and evidence"]
---

# Read change events

`POST /v1/commands/list_events`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/commands/list_events`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Shared command transport. All logical arguments in JSON; no query or Idempotency-Key header. See canonical operation reference.

## Headers

- `X-Workspace-ID` string

## Request body

- ListEventsInput
  - `feed` 'links' | 'targets' | 'citations', required: Event feed: links (placements), targets (destination health) or citations; each has its own cursor.
  - `cursor` string: Opaque list cursor; omit initially.
  - `limit` integer: Page/report row cap; see bounds.
  - `browse` boolean: Server-sorted authorized saved rows; omit for legacy paging.
  - `sort` string: Allowlisted saved-field identifier.
  - `order` 'asc' | 'desc': Sort direction; stable ID ties, nulls last.
  - `q` string: Literal search of supported saved fields.
  - `table_filters` union: Up to 12 allowlisted column filters before paging.
    - string
    - object[]
      - `column` string, required
      - `operator` 'contains' | 'is' | 'is_not' | 'empty', required
      - `value` string, required
  - `projectId` string: project ID from create/list.
  - `format` 'concise' | 'detailed': Concise: decisions/next calls/evidence states; detailed: all. MCP/code default concise, REST/CLI detailed; defaults_applied records defaults.

## Response `200`

Command result, including queued admission.

- ListEventsOutput
  - `total` integer, nullable
  - `has_more` boolean, required: True when another page is available.
  - `next_cursor` string, nullable, required: Opaque continuation for the same listing; null means no further page.
  - `page` object
    - `limit` integer, required
    - `sort` string, required
    - `order` 'asc' | 'desc', required
    - `total` integer, nullable, required
    - `query_scope` 'server_dataset', required
    - `nulls` 'last', required
  - `workspace_id` string: Workspace that owns this record.
  - `events` object[], required
    - `id` string, required: Resource identifier returned by the operation.
    - `workspace_id` string: Workspace that owns this record.
    - `project_id` string, nullable: Project that owns this record.
    - `watch_id` string
    - `target_id` string
    - `type` string
    - `created_at` string: UTC timestamp when the record was created.
    - `cursor` string
    - `data` object, required
      - `before` unknown
      - `after` unknown
      - `state` string: Saved lifecycle or evidence state, as enumerated for this record.
      - `reason` string, nullable: Recorded explanation; null when no explanation applies.
      - `observation_id` string

## Other responses

- `429`: Request-rate or usage refusal. Inspect error.code and recovery details before retrying.
- `default`: Error envelope. Non-configuration 5xx messages are masked and details omitted; allowlisted configuration errors retain static operator recovery.

---

[API](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api.md) · [All operations](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/revisions/1bf30c2912b2?raw)
