---
title: "get_competitor_gap_report"
method: POST
path: "/v1/competitor-sets/{setId}/gap-report"
---

# get_competitor_gap_report

`POST /v1/competitor-sets/{setId}/gap-report`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/competitor-sets/{setId}/gap-report`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Remaining arguments go in a JSON object body.

## Path parameters

- `setId` string, required: set ID from create/list.

## Headers

- `X-Workspace-ID` string

## Request body

- object
  - `revision` integer, required: Immutable set revision to read/compare.
  - `inventoryIds` string[], required: Frozen inventory IDs to compare within the approved set.
  - `grouping` 'page' | 'source_host', required: Aggregate selected inventories by this dimension.
  - `exclusions` object[]: Customer-approved exclusions to apply to this report.
    - `grouping` 'page' | 'source_host', required
    - `value` string, required
  - `maxRetrievalSkewMs` integer: Maximum inventory retrieval-time skew in milliseconds.
  - `exclusionRevision` integer: Saved exclusion revision; historical revisions stay immutable.
  - `groupKey` string: Exact group key returned by the report being inspected.
  - `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

## Response `200`

Remaining arguments go in a JSON object body.

- object
  - `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
  - `v` number, required
  - `report_hash` string, required
  - `set_id` string, required
  - `set_revision` number, required
  - `grouping` string, required
  - `comparison` object, required
    - `mode` string, required
    - `reasons` string[], required
    - `absence_claim` 'not_supported', required: not_supported: missing dataset rows cannot prove link absence.
  - `absence_claim` 'not_supported', required: not_supported: missing dataset rows cannot prove link absence.
  - `whole_web_coverage` false, required: False: these results do not measure the whole web.
  - `coverage_scope` string, required
  - `verification_view` string, required
  - `max_retrieval_skew_ms` number, required
  - `selected_inventory_ids` string[], required
  - `unselected_member_ids` string[], required
  - `exclusions` object, required
    - `scope` string, required
    - `policy` string, required
    - `rules` object[], required
      - `grouping` 'page' | 'source_host', required
      - `value` string, required
    - `saved_revision` number
    - `set_revision_at_save` number
  - `inventories` object[], required
    - `v` number, required
    - `id` string, required: Resource identifier returned by the operation.
    - `workspace_id` string, required: Workspace that owns this record.
    - `project_id` string, required: Project that owns this record.
    - `set_id` string, required
    - `set_revision` number, required
    - `set_hash` string, required
    - `member_id` string, required
    - `member_role` string, required
    - `target_scope_id` string, required
    - `captured_at` string, required
    - `provider_retrieved_from` string, nullable, required
    - `provider_retrieved_to` string, nullable, required
    - `run` object, required
      - `v` 1, required
      - `id` string, required: Resource identifier returned by the operation.
      - `workspace_id` string, required: Workspace that owns this record.
      - `project_id` string, required: Project that owns this record.
      - `provider` 'linktrail_corpus' | 'dataforseo' | 'imported', required
      - `data_mode` 'synthetic' | 'owned_corpus' | 'provider_index' | 'imported', required
      - `query` object, required
        - `target_kind` 'domain' | 'exact_url', required
        - `target` string, required
        - `include_subdomains` boolean, required
        - `backlinks_status_type` 'live' | 'lost' | 'all', required
        - `exclude_internal_backlinks` boolean, required
        - `mode` 'as_is', required
        - `filters` unknown, required
        - `rank_scale` 'one_thousand', nullable, required
        - `page_limit` integer, required
        - `row_limit` integer, required
      - `status` 'queued' | 'running' | 'succeeded' | 'partial' | 'failed' | 'reconciliation_required', required: Resource lifecycle status.
      - `created_at` string, date-time, required: UTC timestamp when the record was created.
      - `started_at` string, date-time, nullable, required
      - `finished_at` string, date-time, nullable, required
      - `coverage` 'pending' | 'complete_for_query' | 'capped' | 'partial' | 'unknown', required: Dataset scope and completeness, including limits on what these results establish.
      - `coverage_reason` string, nullable, required
      - `provider_total_count` integer, nullable, required
      - `usage` object, required
        - `unit` 'discovery', required
        - `currency` 'USD', required
        - `quote_id` string, required
        - `max_cost_microusd` integer, required
        - `reserved_cost_microusd` integer, required
        - `provider_reported_cost_microusd` integer, nullable, required
        - `request_count` integer, required
        - `returned_rows` integer, required
        - `accepted_candidates` integer, required
        - `rejected_rows` integer, required
        - `duplicate_rows` integer, required
      - `operation` 'backlinks', required
      - `coverage_scope` 'customer_import' | 'corpus_subset' | 'provider_query', required
      - `whole_web_coverage` false, required: False: these results do not measure the whole web.
      - `replayed` boolean: True when the response reuses an earlier request with the same idempotency value.
    - `content_hash` string, required
    - `absence_claim` 'not_supported', required: not_supported: missing dataset rows cannot prove link absence.
    - `verification_view` 'captured_at_snapshot', required
    - `replayed` boolean: True when the response reuses an earlier request with the same idempotency value.
  - `counts` object, nullable, required
    - `groups` number, required
    - `rows` number, required
    - `observed_overlap_groups` number, required
    - `dataset_gap_groups` number, nullable, required
    - `comparison_unknown_groups` number, required
    - `excluded_groups` number, required
    - `excluded_rows` number, required
  - `view` 'groups' | 'rows', required
  - `group` object
    - `key` string, required: Saved lookup identifier within this record.
    - `relation` string, required
    - `competitor_count` number, required
    - `row_count` number, required
    - `customer_row_count` number, required
    - `competitor_row_count` number, required
    - `contributors` object[], required
      - `member_id` string, required
      - `member_role` string, required
      - `inventory_id` string, required
      - `row_count` number, required
  - `items` union[], required: Records in this bounded page.
    - union: Records in this bounded page.
      - object: Records in this bounded page.
        - `key` string, required: Saved lookup identifier within this record.
        - `relation` string, required
        - `competitor_count` number, required
        - `row_count` number, required
        - `customer_row_count` number, required
        - `competitor_row_count` number, required
        - `contributors` object[], required
          - `member_id` string, required
          - `member_role` string, required
          - `inventory_id` string, required
          - `row_count` number, required
      - object: Records in this bounded page.
        - `v` 1, required
        - `id` string, required: Resource identifier returned by the operation.
        - `workspace_id` string, required: Workspace that owns this record.
        - `project_id` string, required: Project that owns this record.
        - `discovery_run_id` string, required
        - `source_url` string, required: Publisher page URL recorded in this evidence.
        - `target_url` string, required: Destination URL recorded in this evidence.
        - `provider` 'linktrail_corpus' | 'dataforseo' | 'imported', required
        - `data_mode` 'synthetic' | 'owned_corpus' | 'provider_index' | 'imported', required
        - `provider_retrieved_at` string, date-time, required: Timestamp when the upstream evidence was retrieved.
        - `provider_first_seen` string, date-time, nullable, required
        - `provider_prev_seen` string, date-time, nullable, required
        - `provider_last_seen` string, date-time, nullable, required
        - `provider_status` object, required
          - `is_lost` boolean, nullable, required
          - `is_broken` boolean, nullable, required
          - `is_new` boolean, nullable, required
        - `anchor` string, nullable, required
        - `rel` string[], nullable, required
        - `dofollow` boolean, nullable, required
        - `link_type` string, nullable, required
        - `source_http_status` integer, nullable, required
        - `target_http_status` integer, nullable, required
        - `links_count` integer, nullable, required
        - `provider_metrics` union, required
          - object
            - `dataforseo` object, required
              - …
          - object
            - `imported` object, required
              - …
          - object
            - `linktrail_corpus` object, required
              - …
        - `verification_status` 'not_checked' | 'present' | 'absent' | 'unknown' | 'source_unavailable', required: AgentLinkOps check state, independent of supplier flags. not_checked means no AgentLinkOps check is recorded.
        - `verified_at` string, date-time, nullable, required: Timestamp of the AgentLinkOps check; null until checked.
        - `observation_id` string, nullable, required
        - `inventory_id` string, required
        - `set_id` string, required
        - `set_revision` number, required
        - `member_id` string, required
        - `member_role` string, 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)
