> ## 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.

# Read internal-link snapshot

> Read capture progress, exact host scope, coverage, retention and limits for an internal-link snapshot.

`get_internal_link_snapshot`

Read capture progress, exact host scope, coverage, retention and limits for an internal-link snapshot.

<Note>This command name is absent from deployment evidence dated 2026-09-20. Hosted availability for this current definition is unverified; inspect your connected catalog before invoking it. Verify the command and its input schema in the selected environment.</Note>

| Access | Behavior |
| - | - |
| `watches: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": "get_internal_link_snapshot",
      "arguments": {
        "projectId": "prj_example",
        "snapshotId": "ils_example"
      }
    }
  }
  ```

  ```bash CLI theme={null}
  agentlinkops call get_internal_link_snapshot --args '{"projectId":"prj_example","snapshotId":"ils_example"}'
  ```

  ```bash HTTP theme={null}
  curl --fail-with-body https://app.agentlinkops.com/v1/commands/get_internal_link_snapshot \
    -H "Authorization: Bearer $AGENTLINKOPS_TOKEN" \
    -H 'Content-Type: application/json' \
    --data '{"projectId":"prj_example","snapshotId":"ils_example"}'
  ```
</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}
  {
    "snapshot": {
      "id": "ils_example",
      "projectId": "prj_example",
      "createdAt": "2026-10-14T12:00:00.000Z",
      "expiresAt": "2026-11-13T12:00:00.000Z",
      "completedAt": null,
      "state": "pending",
      "inventoryCount": 1,
      "processedCount": 0,
      "completeCount": 0,
      "unknownCount": 0,
      "pendingCount": 1,
      "edgeCount": 0,
      "revision": 0,
      "busy": false,
      "retryAfterSeconds": 0,
      "scope": {
        "domain": "example.com",
        "hostPolicy": "exact_hostname",
        "seeds": [
          "https://example.com/"
        ]
      },
      "coverage": {
        "inventory": "partial",
        "representation": "raw_html",
        "completeSiteCensus": false,
        "allInventoryPagesComplete": false,
        "renderedVisibility": false,
        "iframes": false,
        "shadowRoots": false,
        "canonicalAliasesMerged": false
      },
      "version": "internal-links-v1"
    },
    "limits": {
      "inventoryPages": 100,
      "pagesPerRequest": 3,
      "pageBytes": 2097152,
      "pageTimeoutMs": 20000,
      "requestTimeoutMs": 65000,
      "edgesPerPage": 200,
      "evidenceBytesPerPage": 131072,
      "workspacePagesPerDay": 300,
      "retainedSnapshotsPerProject": 20,
      "retentionDays": 30,
      "pageSize": 100,
      "leaseMs": 90000
    }
  }
  ```
</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 | project ID from create/list. minLength: `1`; maxLength: `200` |
| `snapshotId` | string | Required | snapshot ID from create/list. minLength: `1`; maxLength: `200` |

### Validation and omitted values

Requires watches:read. Supply the project and snapshot identifiers from create\_internal\_link\_snapshot or list\_internal\_link\_snapshots. This read does not fetch publisher pages.

Inspect pending, complete and unknown page counts, busy state, revision, exact-host scope, coverage and expiry before continuing. A complete operation can still contain unknown pages.

Concurrent processing can change the revision while evidence is read. On INVALID\_CURSOR, refresh the snapshot and restart any dependent paginated query. Expired or erased snapshots cannot provide retained evidence.

## 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.

* **`snapshot`** (object, required): additional fields rejected
* **`limits`** (object, required): additional fields rejected
* **`retryAt`** (string / null, optional).

<Accordion title="All fields and nested objects">
  | Field | Type | Presence | Meaning and constraints |
  | - | - | - | - |
  | `snapshot` | object | Required | additional fields rejected |
  | `snapshot.id` | string | Required | Resource identifier returned by the operation. minLength: `1`; maxLength: `200` |
  | `snapshot.projectId` | string | Required | Identifier returned by the related operation. minLength: `1`; maxLength: `200` |
  | `snapshot.createdAt` | string | Required | |
  | `snapshot.expiresAt` | string | Required | |
  | `snapshot.completedAt` | string / null | Required | |
  | `snapshot.state` | string | Required | Saved lifecycle or evidence state, as enumerated for this record. values: `"pending"`, `"running"`, `"complete"` |
  | `snapshot.inventoryCount` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.processedCount` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.completeCount` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.unknownCount` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.pendingCount` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.edgeCount` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.revision` | integer | Required | Optimistic concurrency revision; supply it as expectedRevision on the next write. minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.busy` | boolean | Required | |
  | `snapshot.retryAfterSeconds` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `snapshot.scope` | object | Required | additional fields rejected |
  | `snapshot.scope.domain` | string | Required | |
  | `snapshot.scope.hostPolicy` | string | Required | must equal `"exact_hostname"` |
  | `snapshot.scope.seeds` | array | Required | |
  | `snapshot.coverage` | object | Required | Dataset scope and completeness, including limits on what these results establish. additional fields rejected |
  | `snapshot.coverage.inventory` | string | Required | values: `"declared_complete"`, `"partial"` |
  | `snapshot.coverage.representation` | string | Required | must equal `"raw_html"` |
  | `snapshot.coverage.completeSiteCensus` | boolean | Required | must equal `false` |
  | `snapshot.coverage.allInventoryPagesComplete` | boolean | Required | |
  | `snapshot.coverage.renderedVisibility` | boolean | Required | must equal `false` |
  | `snapshot.coverage.iframes` | boolean | Required | must equal `false` |
  | `snapshot.coverage.shadowRoots` | boolean | Required | must equal `false` |
  | `snapshot.coverage.canonicalAliasesMerged` | boolean | Required | must equal `false` |
  | `snapshot.version` | string | Required | must equal `"internal-links-v1"` |
  | `limits` | object | Required | additional fields rejected |
  | `limits.inventoryPages` | number | Required | must equal `100` |
  | `limits.pagesPerRequest` | number | Required | must equal `3` |
  | `limits.pageBytes` | number | Required | must equal `2097152` |
  | `limits.pageTimeoutMs` | number | Required | must equal `20000` |
  | `limits.requestTimeoutMs` | number | Required | must equal `65000` |
  | `limits.edgesPerPage` | number | Required | must equal `200` |
  | `limits.evidenceBytesPerPage` | number | Required | must equal `131072` |
  | `limits.workspacePagesPerDay` | number | Required | must equal `300` |
  | `limits.retainedSnapshotsPerProject` | number | Required | must equal `20` |
  | `limits.retentionDays` | number | Required | must equal `30` |
  | `limits.pageSize` | number | Required | must equal `100` |
  | `limits.leaseMs` | number | Required | must equal `90000` |
  | `retryAt` | string / null | Optional | |
</Accordion>

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

## Errors and retries

Follow the error recovery before retrying this read. Preserve the selected workspace, project, filters and feed. Recovering a read does not require an idempotency key or another verification job. Operation-specific errors include `INVALID_INPUT`, `PROJECT_ACCESS_DENIED`, `INTERNAL_LINK_SNAPSHOT_NOT_FOUND`, `INTERNAL_LINK_SNAPSHOT_EXPIRED`, `INVALID_CURSOR`.

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

These existing resource routes share the operation’s domain behavior. Their parameter placement, status and response envelope can differ from generic invocation. See [HTTP route details](/reference/http/routes).

| Method and route | Success | Details |
| - | - | - |
| `GET /v1/internal-links/snapshots/{snapshotId}` | 200 | The path sets snapshotId; projectId goes in the query. Returns snapshot progress and limits without new capture. |

## Continue

[process\_internal\_link\_snapshot](/reference/commands/process_internal_link_snapshot) · [query\_internal\_link\_snapshot](/reference/commands/query_internal_link_snapshot) · [list\_internal\_link\_snapshots](/reference/commands/list_internal_link_snapshots)

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.