---
title: "get_link_reports"
method: GET
path: "/v1/reports/links"
---

# get_link_reports

`GET /v1/reports/links`

## Request

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

Read arguments go in query parameters. This direct route also accepts links=all (default) or links=live, using the live status from get_link_summary. Generic command, profile and anchor routes reject links.

## Query parameters

- `links` 'all' | 'live'
- `projectId` string: project ID from create/list.
- `status` 'all' | 'active' | 'paused': Lifecycle status, separate from observed state.
- `limit` integer: Page/report row cap; see bounds.

## Headers

- `X-Workspace-ID` string

## Response `200`

Read arguments go in query parameters. This direct route also accepts links=all (default) or links=live, using the live status from get_link_summary. Generic command, profile and anchor routes reject links.

- object
  - `profile` object, required
    - `schema_version` number, required
    - `workspace_id` string, required: Workspace that owns this record.
    - `project_id` string, nullable, required: Project that owns this record.
    - `status_filter` string, required
    - `generated_at` string, required
    - `coverage` object, required: Dataset scope and completeness, including limits on what these results establish.
      - `denominator` string, required
      - `whole_web_coverage` false, required: False: these results do not measure the whole web.
      - `observation_basis` string, required
      - `includes_paused` boolean, required
      - `project_grant` string, required
      - `watch_count` number, required
      - `scanned_watch_count` number, required
      - `eligible_present_watches_in_scan` number, required
      - `excluded_evidence_watches_in_scan` number, required
      - `available_occurrences_in_scan` number, required
      - `scanned_occurrence_count` number, required
      - `included_occurrence_count` number, required
      - `invalid_occurrence_count` number, required
      - `occurrence_payload_bytes` number, required
      - `watch_payload_bytes` number, required
      - `watch_scan_limit` number, required
      - `occurrence_scan_limit` number, required
      - `watch_payload_byte_limit` number, required
      - `occurrence_payload_byte_limit` number, required
      - `included_observation_oldest_at` string, nullable, required
      - `included_observation_newest_at` string, nullable, required
      - `partial` boolean, required
      - `limitations` string[], required
    - `analysis_partial` boolean, required
    - `freshness` object, required
      - `oldest_last_success_at` string, nullable, required
      - `newest_last_success_at` string, nullable, required
      - `oldest_latest_attempt_at` string, nullable, required
      - `newest_latest_attempt_at` string, nullable, required
    - `counting_notes` string[], required
    - `counts` object, required
      - `watches` number, required
      - `status` object, required: Resource lifecycle status.
        - `active` number, required
        - `paused` number, required
      - `never_checked` number, required
      - `current_state` object, required
        - `present` number, required
        - `suspected_missing` number, required
        - `confirmed_missing` number, required
        - `source_unavailable` number, required
        - `unknown` number, required
      - `latest_attempt` object, required
        - `present` number, required
        - `absent` number, required
        - `source_unavailable` number, required
        - `unknown` number, required
        - `evidence_unavailable` number, required
      - `last_successful_observation` object, required
        - `present` number, required
        - `absent` number, required
        - `source_unavailable` number, required
        - `none` number, required
        - `evidence_unavailable` number, required
      - `complete_present_evidence_in_scan` number, required
      - `known_present_after_unknown` number, required
    - `monitored_source_hosts` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `monitored_targets` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `observed_referring_hosts` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `observed_targets` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `link_rel_sets` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `link_rel_tokens` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `rel_facts` object, required
      - `included_occurrences` number, required
      - `no_link_nofollow_token_occurrences` number, required
      - `page_nofollow_occurrences` number, required
      - `ranking_credit_inferred` false, required
  - `anchors` object, required
    - `schema_version` number, required
    - `workspace_id` string, required: Workspace that owns this record.
    - `project_id` string, nullable, required: Project that owns this record.
    - `status_filter` string, required
    - `generated_at` string, required
    - `coverage` object, required: Dataset scope and completeness, including limits on what these results establish.
      - `denominator` string, required
      - `whole_web_coverage` false, required: False: these results do not measure the whole web.
      - `observation_basis` string, required
      - `includes_paused` boolean, required
      - `project_grant` string, required
      - `watch_count` number, required
      - `scanned_watch_count` number, required
      - `eligible_present_watches_in_scan` number, required
      - `excluded_evidence_watches_in_scan` number, required
      - `available_occurrences_in_scan` number, required
      - `scanned_occurrence_count` number, required
      - `included_occurrence_count` number, required
      - `invalid_occurrence_count` number, required
      - `occurrence_payload_bytes` number, required
      - `watch_payload_bytes` number, required
      - `watch_scan_limit` number, required
      - `occurrence_scan_limit` number, required
      - `watch_payload_byte_limit` number, required
      - `occurrence_payload_byte_limit` number, required
      - `included_observation_oldest_at` string, nullable, required
      - `included_observation_newest_at` string, nullable, required
      - `partial` boolean, required
      - `limitations` string[], required
    - `analysis_partial` boolean, required
    - `freshness` object, required
      - `oldest_last_success_at` string, nullable, required
      - `newest_last_success_at` string, nullable, required
      - `oldest_latest_attempt_at` string, nullable, required
      - `newest_latest_attempt_at` string, nullable, required
    - `counting_notes` string[], required
    - `evidence_context` object, required
      - `latest_unknown_watches` number, required
      - `known_present_after_unknown` number, required
    - `anchors` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `terms` object, required
      - `items` object[], required: Records in this bounded page.
        - `distinct_watch_count` number, required
        - `example_watch_ids` string[], required
        - `occurrence_count` number
        - `watch_count` number
        - `token_occurrence_count` number
        - `link_occurrence_count` number
        - `hostname` string
        - `target_url` string: Destination URL recorded in this evidence.
        - `target_scope` string
        - `anchor` string
        - `empty_anchor` boolean
        - `token` string: Invitation token returned only at creation. The accepting account must have the matching verified email.
        - `term` string
        - `tokens` string[]
      - `total_groups` number, required
      - `returned_groups` number, required
      - `truncated` boolean, required
    - `tokenization` object, required
      - `version` number, required
      - `normalization` string, required
      - `segmentation` string, required
      - `address_spans_removed` boolean, required
      - `stopwords_removed` boolean, required
      - `stemming` boolean, required
      - `language_specific_segmentation` boolean, required
      - `maximum_token_codepoints` number, required
      - `tokens_seen` number, required
      - `unique_terms_included` number, required
      - `term_dictionary_limit` number, required
      - `omitted_long_token_occurrences` number, required
      - `omitted_dictionary_token_occurrences` number, required
      - `partial` boolean, required
  - `follow` object: Follow categories for watched links with eligible retained occurrences in this bounded report. These categories describe observed rel tokens and do not infer ranking credit.
    - `links` integer, required: Number of distinct watch IDs with included retained occurrences, after report row and byte limits. This count can be smaller than the selected watch count.
    - `buckets` object[], required: Four categories in display order: Followed, Nofollow, Sponsored, UGC. Each included watch contributes to one category. A watch with any Followed occurrence is Followed; otherwise Nofollow takes precedence over Sponsored, then UGC across its occurrences.
      - `label` 'Followed' | 'Nofollow' | 'Sponsored' | 'UGC', required: Category derived from retained rel tokens. Within one occurrence, sponsored takes precedence over ugc, then nofollow; an occurrence without those tokens is Followed.
      - `count` integer, required: Number of included watches in this category. The four counts sum to follow.links.

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