> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentlinkops.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List index observations

> Read dated index observations for one monitored source.

`list_index_observations`

Read dated index observations for one monitored source. Unknown and sampled evidence remain distinct from confirmed index states.

<Note>Available in the deployed MCP and HTTP bundle. Confirm access and inputs with your connected catalog. Workspace scopes and enabled providers still apply.</Note>

| Access           | Behavior         |
| ---------------- | ---------------- |
| `discovery:read` | Reads saved data |

This read does not start a verification job.

## Example request

Connect through [MCP](/guides/connect-mcp), [CLI](/guides/connect-cli), or [HTTP](/guides/connect-http). Replace example identifiers with records from your workspace.

<CodeGroup>
  ```json MCP theme={null}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_index_observations",
      "arguments": {
        "projectId": "project_example",
        "watchId": "watch_example",
        "limit": 20
      }
    }
  }
  ```

  ```bash CLI theme={null}
  agentlinkops call list_index_observations --args '{"projectId":"project_example","watchId":"watch_example","limit":20}'
  ```

  ```bash HTTP theme={null}
  curl "$AGENTLINKOPS_API_URL/v1/commands/list_index_observations" \
    -H "Authorization: Bearer $AGENTLINKOPS_API_KEY" \
    -H 'Content-Type: application/json' \
    --data '{"projectId":"project_example","watchId":"watch_example","limit":20}'
  ```
</CodeGroup>

## Returned result

Illustrative data validated against the documented response schema. IDs and dates are examples, not a live account capture. MCP returns this data in `structuredContent` and in a text content block; generic HTTP and CLI return the JSON result directly.

<Accordion title="Full response example">
  ```json theme={null}
  {
    "observations": [
      {
        "id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "observationId": "inspection_example",
        "checkedAt": "2026-09-20T00:00:00.000Z",
        "recordedAt": "2026-09-20T00:00:00.000Z",
        "expiresAt": "2026-10-20T00:00:00.000Z",
        "evidenceSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
        "eventId": null,
        "ignored": null,
        "version": 1,
        "url": "https://example.com/source",
        "lane": "gsc",
        "backend": "google_url_inspection",
        "source_key": "gsc:sc-domain:example.com",
        "tier": "unknown",
        "confidence": "unknown",
        "reason": "inspection_request_failed",
        "live_page_test": false,
        "submission_requested": false
      }
    ],
    "nextCursor": null,
    "attemptSummary": {
      "observedAt": "2026-09-20T00:05:00.000Z",
      "latestAttempt": {
        "id": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
        "admittedAt": "2026-09-20T00:01:00.000Z",
        "status": "unsettled",
        "receiptId": null,
        "leaseExpiresAt": null
      },
      "unsettledCount": 1
    },
    "websiteQuota": {
      "windowStart": "2026-09-19T00:05:00.000Z",
      "observedAt": "2026-09-20T00:05:00.000Z",
      "admitted": 2,
      "limit": 4,
      "remaining": 2
    }
  }
  ```
</Accordion>

## Input fields

Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.

| Field       | Type    | Presence | Meaning and constraints                                                                                           |
| ----------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `projectId` | string  | Required | Identifier of the project returned by its create or list operation. minLength: 1; maxLength: 256                  |
| `watchId`   | string  | Required | Identifier of the watch returned by its create or list operation. minLength: 1; maxLength: 256                    |
| `limit`     | integer | Optional | Maximum rows in this page or bounded report; subject to the schema maximum. minimum: 1; maximum: 100; default: 50 |
| `beforeId`  | string  | Optional | Identifier of the before returned by its create or list operation. pattern: "^\[a-f0-9]\{64}\$"                   |

### Validation and omitted values

Requires operator activation and the caller’s current project grant. Source URL indexing remains independent from backlink presence.

The beforeId cursor is a scoped receipt identifier; preserve nextCursor for continuation. Reading history does not send an inspection or retry an earlier attempt.

When present, attemptSummary describes this placement as of observedAt, independently of the observation page. latestAttempt is null when no attempt is recorded. Older server responses can omit attemptSummary and websiteQuota.

An in\_progress attempt has a current inspection lease and awaits a recorded result. An unsettled attempt has no recorded result and no current lease, or an explicitly uncertain outcome. The provider request may have been interrupted or completed without a saved result. Neither status establishes a Google index verdict.

unsettledCount includes all retained unsettled attempts for this placement, including attempts outside the quota window. A completed attempt remains completed after its receipt is removed; receiptId is null when that receipt is unavailable. Existing evidenceAvailable describes raw receipt evidence separately.

websiteQuota counts admitted inspection attempts across every placement in this website project during the preceding 24 hours. windowStart and observedAt identify the interval; attempts exactly at windowStart fall outside it. Interrupted or unsettled attempts within that interval still count toward the quota.

remaining is the website limit minus admitted attempts, with a minimum of zero. It does not report Google property or API-project quota. An unsettled attempt does not restore website quota or imply a refund.

Keep the earlier observations and their dates when a newer attempt is unsettled. Read the retained receipt with get\_index\_observation; do not replace a recorded verdict with an attempt status.

### Defaults when omitted

| Field   | Default |
| ------- | ------- |
| `limit` | `50`    |

## Output fields

Fields inside optional or nullable parents apply only when that parent exists. [Common schema conventions](/reference/schemas) explain evidence states, empty lists and extensions.

* **`observations`** (array, required).
* **`nextCursor`** (string / null, required).
* **`attemptSummary`** (object, optional): additional fields rejected
* **`websiteQuota`** (object, optional): additional fields rejected

<Accordion title="All fields and nested objects">
  | Field                                         | Type          | Presence | Meaning and constraints                                                                                                            |
  | --------------------------------------------- | ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
  | `observations`                                | array         | Required |                                                                                                                                    |
  | `observations[].id`                           | string        | Required | Resource identifier returned by the operation. pattern: "^\[a-f0-9]\{64}\$"                                                        |
  | `observations[].observationId`                | string        | Required | Identifier returned by the related operation. minLength: 1; maxLength: 256                                                         |
  | `observations[].checkedAt`                    | string        | Required |                                                                                                                                    |
  | `observations[].recordedAt`                   | string        | Required |                                                                                                                                    |
  | `observations[].expiresAt`                    | string        | Required |                                                                                                                                    |
  | `observations[].evidenceSha256`               | string        | Required | pattern: "^\[a-f0-9]\{64}\$"                                                                                                       |
  | `observations[].eventId`                      | string / null | Required | Identifier returned by the related operation.                                                                                      |
  | `observations[].ignored`                      | string / null | Required |                                                                                                                                    |
  | `observations[].version`                      | number        | Required | must equal 1                                                                                                                       |
  | `observations[].url`                          | string        | Required | format: "uri"                                                                                                                      |
  | `observations[].lane`                         | string        | Required | values: "gsc", "licensed\_site"                                                                                                    |
  | `observations[].backend`                      | string        | Required |                                                                                                                                    |
  | `observations[].source_key`                   | string        | Required |                                                                                                                                    |
  | `observations[].tier`                         | string        | Required | values: "indexed", "not\_indexed", "likely\_indexed", "not\_found\_in\_site\_query", "unknown"                                     |
  | `observations[].confidence`                   | string        | Required | values: "google\_index\_snapshot", "search\_result\_sample", "unknown"                                                             |
  | `observations[].reason`                       | string        | Required | Recorded explanation; null when no explanation applies.                                                                            |
  | `observations[].live_page_test`               | boolean       | Required | must equal false                                                                                                                   |
  | `observations[].submission_requested`         | boolean       | Required | must equal false                                                                                                                   |
  | `nextCursor`                                  | string / null | Required |                                                                                                                                    |
  | `attemptSummary`                              | object        | Optional | additional fields rejected                                                                                                         |
  | `attemptSummary.observedAt`                   | string        | Required |                                                                                                                                    |
  | `attemptSummary.latestAttempt`                | object / null | Required |                                                                                                                                    |
  | `attemptSummary.latestAttempt.id`             | string        | Required | Resource identifier returned by the operation. pattern: "^\[a-f0-9]\{64}\$"                                                        |
  | `attemptSummary.latestAttempt.admittedAt`     | string        | Required |                                                                                                                                    |
  | `attemptSummary.latestAttempt.status`         | string        | Required | Resource lifecycle status. values: "in\_progress", "unsettled", "completed"                                                        |
  | `attemptSummary.latestAttempt.receiptId`      | string / null | Required | Identifier returned by the related operation.                                                                                      |
  | `attemptSummary.latestAttempt.leaseExpiresAt` | string / null | Required |                                                                                                                                    |
  | `attemptSummary.unsettledCount`               | integer       | Required | minimum: 0; maximum: 9007199254740991                                                                                              |
  | `websiteQuota`                                | object        | Optional | additional fields rejected                                                                                                         |
  | `websiteQuota.windowStart`                    | string        | Required |                                                                                                                                    |
  | `websiteQuota.observedAt`                     | string        | Required |                                                                                                                                    |
  | `websiteQuota.admitted`                       | integer       | Required | minimum: 0; maximum: 9007199254740991                                                                                              |
  | `websiteQuota.limit`                          | integer       | Required | maximum: 9007199254740991; exclusiveMinimum: 0                                                                                     |
  | `websiteQuota.remaining`                      | integer       | Required | Check units still available after consumed and reserved units; null if the limit is unknown. minimum: 0; maximum: 9007199254740991 |
</Accordion>

[Download input schema](/schemas/list_index_observations.input.json) · [Download output schema](/schemas/list_index_observations.output.json)

## Errors and retries

The command is annotated idempotent. Reuse an accepted idempotency key when the input provides one; changing the payload under a reused key can conflict.

See [error recovery](/reference/errors) for status, scope, cooldown, cursor and retry handling. Unknown observations are result data and do not establish loss.

## HTTP resource routes

This operation has no separate resource alias. Use its generic command route in a matching environment.

## Continue

[get\_index\_observation](/reference/commands/get_index_observation)

Follow the [related workflow](/guides/monitor-changes), inspect [capability status](/capability-status), or return to the [command index](/reference/index).
