---
title: "preview_internal_link_inventory"
method: POST
path: "/v1/internal-links/preview"
---

# preview_internal_link_inventory

`POST /v1/internal-links/preview`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/internal-links/preview`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Supply projectId and requestId in the JSON body. HTTP 200 returns a retained discovery preview and its limits, which may be pending, empty or partial. Requires watches:read and watches:write. Reuse requestId to retrieve the same unexpired preview after an uncertain response; confirm selected URLs through create_internal_link_snapshot separately.

## Headers

- `X-Workspace-ID` string

## Request body

- object
  - `projectId` string, required: project ID from create/list.
  - `requestId` string, required: Caller-generated retry key. Reuse the same key and inputs to retry this operation; use a new key for a new operation.

## Response `200`

Supply projectId and requestId in the JSON body. HTTP 200 returns a retained discovery preview and its limits, which may be pending, empty or partial. Requires watches:read and watches:write. Reuse requestId to retrieve the same unexpired preview after an uncertain response; confirm selected URLs through create_internal_link_snapshot separately.

- object
  - `preview` object, required
    - `id` string, required: Resource identifier returned by the operation.
    - `projectId` string, required
    - `domain` string, required
    - `createdAt` string, required
    - `expiresAt` string, required
    - `state` 'pending' | 'complete', required: Saved lifecycle or evidence state, as enumerated for this record.
    - `urls` string[], required
    - `documents` object[], required
      - `requestedUrl` string, required
      - `finalUrl` string, nullable, required
      - `checkedAt` string, required
      - `sha256` string, nullable, required
      - `status` integer, nullable, required: Resource lifecycle status.
      - `reason` string, nullable, required: Recorded explanation; null when no explanation applies.
      - `kind` 'robots' | 'index' | 'urlset' | 'unknown', required
    - `coverage` object, required: Dataset scope and completeness, including limits on what these results establish.
      - `completeSiteCensus` false, required
      - `truncated` boolean, required
      - `reasons` string[], required
  - `limits` object, required
    - `sitemapDocuments` 3, required
    - `indexDepth` 2, required
    - `timeoutMs` 20000, required
    - `documentBytes` 2097152, required
    - `offeredUrls` 100, required
    - `inventoryUrlBytes` 131072, required
    - `requests` 10, required
    - `retentionMs` 900000, required
    - `startsPerMinute` 3, required

## 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/2a712a1dcfa7?raw)
