---
title: "list_discovery_runs"
method: GET
path: "/v1/discovery/runs"
---

# list_discovery_runs

`GET /v1/discovery/runs`

## Request

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

Remaining read arguments go in query parameters.

## Query parameters

- `projectId` string: project ID from create/list.
- `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` string: JSON-encoded array of up to 12 filters. Each filter has column (1 to 80 characters), operator (contains, is, is_not or empty), and value (at most 500 characters).

## Headers

- `X-Workspace-ID` string

## Response `200`

Remaining read arguments go in query parameters.

- object
  - `total` integer, nullable
  - `has_more` boolean: 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
  - `items` object[], required: 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.
    - `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.

## 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/1bf30c2912b2?raw)
