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

# List discovery candidates

> Read up to 100 candidates from an existing saved or imported run, including when new discovery admission is disabled.

`list_discovery_candidates`

Read up to 100 candidates from an existing saved or imported run, including when new discovery admission is disabled. Returns stored discovery candidates with dated provider provenance and separate verification status. Cursor pages freeze a stored result snapshot; restart without a cursor for newer results. Reads never purchase provider pages.

<Note>Hosted MCP registration verified. These schemas describe the development contract; confirm supported inputs with tools/list. Generic CLI/HTTP calls require a matching development server. Configure LINKTRAIL\_API\_URL; production does not expose these command routes.</Note>

| Access           | Behavior         |
| ---------------- | ---------------- |
| `discovery:read` | Reads saved data |

Reading saved data does not start a verification job. Mutations can change saved records or access; the effects below apply.

## 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": "list_discovery_candidates",
      "arguments": {
        "runId": "run_example"
      }
    }
  }
  ```

  ```bash CLI theme={null}
  linktrail call list_discovery_candidates --args '{"runId":"run_example"}'
  ```

  ```bash HTTP theme={null}
  curl "$LINKTRAIL_API_URL/v1/commands/list_discovery_candidates" \
    -H "Authorization: Bearer $LINKTRAIL_API_KEY" \
    -H 'Content-Type: application/json' \
    --data '{"runId":"run_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.

```json theme={null}
{
  "items": [
    {
      "v": 1,
      "id": "dc_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      "workspace_id": "ws_example",
      "project_id": "pr_example",
      "discovery_run_id": "run_example",
      "source_url": "https://publisher.example.org/article",
      "target_url": "https://example.com/",
      "provider": "linktrail_corpus",
      "data_mode": "owned_corpus",
      "provider_retrieved_at": "2026-09-13T12:00:00.000Z",
      "provider_first_seen": "2026-09-13T12:00:00.000Z",
      "provider_prev_seen": null,
      "provider_last_seen": "2026-09-13T12:00:00.000Z",
      "provider_status": {
        "is_lost": null,
        "is_broken": null,
        "is_new": null
      },
      "anchor": "Example",
      "rel": [],
      "dofollow": true,
      "link_type": "anchor",
      "source_http_status": 200,
      "target_http_status": null,
      "links_count": 1,
      "provider_metrics": {
        "linktrail_corpus": {
          "source_outlink_count": 1,
          "source_external_outlink_count": 1,
          "fetch_kind": "direct",
          "extraction_complete": true
        }
      },
      "verification_status": "not_checked",
      "verified_at": null,
      "observation_id": null
    }
  ],
  "next_cursor": null,
  "has_more": false,
  "run": {
    "v": 1,
    "id": "run_example",
    "workspace_id": "ws_example",
    "project_id": "pr_example",
    "provider": "linktrail_corpus",
    "data_mode": "owned_corpus",
    "query": {
      "target_kind": "domain",
      "target": "example.com",
      "include_subdomains": true,
      "backlinks_status_type": "live",
      "exclude_internal_backlinks": true,
      "mode": "as_is",
      "filters": null,
      "order_by": [
        "first_seen,desc"
      ],
      "rank_scale": null,
      "page_limit": 100,
      "row_limit": 100
    },
    "status": "succeeded",
    "created_at": "2026-09-13T12:00:00.000Z",
    "started_at": "2026-09-13T12:00:00.000Z",
    "finished_at": "2026-09-13T12:00:00.000Z",
    "coverage": "complete_for_query",
    "coverage_reason": null,
    "provider_total_count": 1,
    "usage": {
      "unit": "discovery",
      "currency": "USD",
      "quote_id": "owned_example",
      "max_cost_microusd": 0,
      "reserved_cost_microusd": 0,
      "provider_reported_cost_microusd": 0,
      "request_count": 1,
      "returned_rows": 1,
      "accepted_candidates": 1,
      "rejected_rows": 0,
      "duplicate_rows": 0
    },
    "operation": "backlinks",
    "coverage_scope": "corpus_subset",
    "whole_web_coverage": false
  },
  "snapshot": {
    "through_provider_page": 0,
    "refresh_from_start_for_new_results": true
  }
}
```

## 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                                                                                           |
| -------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `runId`  | string  | Required | Identifier of the run returned by its create or list operation. minLength: 1; maxLength: 200                      |
| `cursor` | string  | Optional | Opaque continuation returned by this same listing; omit for the first page. minLength: 1; maxLength: 1024         |
| `limit`  | integer | Optional | Maximum rows in this page or bounded report; subject to the schema maximum. minimum: 1; maximum: 100; default: 50 |

### Validation and omitted values

Omit cursor for the first page. Keep continuation cursors opaque and use them only with the same listing and filters.

Candidates are ordered by saved page index, then candidate identifier. The first page freezes a stored page ceiling; later pages do not include newly appended provider pages. Restart without a cursor for a newer snapshot.

### Defaults when omitted

| Field   | Default |
| ------- | ------- |
| `limit` | `50`    |

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

| Field                                                                     | Type                     | Presence | Meaning and constraints                                                                                                                                                                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------- | ------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `items`                                                                   | array                    | Required | Records in this bounded page.                                                                                                                                                                                                                                                                                                                                                                |
| `items[].v`                                                               | number                   | Required | v recorded for this result. must equal 1                                                                                                                                                                                                                                                                                                                                                     |
| `items[].id`                                                              | string                   | Required | Resource identifier returned by the operation. pattern: "^dc\_\[a-f0-9]\{64}\$"                                                                                                                                                                                                                                                                                                              |
| `items[].workspace_id`                                                    | string                   | Required | Workspace that owns this record. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                                |
| `items[].project_id`                                                      | string                   | Required | Project that owns this record. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                                  |
| `items[].discovery_run_id`                                                | string                   | Required | discovery run id recorded for this result. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                      |
| `items[].source_url`                                                      | string                   | Required | Publisher page URL recorded in this evidence. maxLength: 4096                                                                                                                                                                                                                                                                                                                                |
| `items[].target_url`                                                      | string                   | Required | Destination URL recorded in this evidence. maxLength: 4096                                                                                                                                                                                                                                                                                                                                   |
| `items[].provider`                                                        | string                   | Required | provider recorded for this result. values: "linktrail\_corpus", "dataforseo", "imported"                                                                                                                                                                                                                                                                                                     |
| `items[].data_mode`                                                       | string                   | Required | data mode recorded for this result. values: "synthetic", "owned\_corpus", "provider\_index", "imported"                                                                                                                                                                                                                                                                                      |
| `items[].provider_retrieved_at`                                           | string                   | Required | Timestamp when the upstream evidence was retrieved. format: "date-time"; pattern: "^(?:(?:\d\d\[2468]\[048]\|\d\d\[13579]\[26]\|\d\d0\[48]\|\[02468]\[048]00\|\[13579]\[26]00)-02-29\|\d\{4}-(?:(?:0\[13578]\|1\[02])-(?:0\[1-9]\|\[12]\d\|3\[01])\|(?:0\[469]\|11)-(?:0\[1-9]\|\[12]\d\|30)\|(?:02)-(?:0\[1-9]\|1\d\|2\[0-8])))T(?:(?:\[01]\d\|2\[0-3]):\[0-5]\d:\[0-5]\d\\.\d\{3}(?:Z))\$" |
| `items[].provider_first_seen`                                             | string / null            | Required | provider first seen recorded for this result.                                                                                                                                                                                                                                                                                                                                                |
| `items[].provider_prev_seen`                                              | string / null            | Required | provider prev seen recorded for this result.                                                                                                                                                                                                                                                                                                                                                 |
| `items[].provider_last_seen`                                              | string / null            | Required | provider last seen recorded for this result.                                                                                                                                                                                                                                                                                                                                                 |
| `items[].provider_status`                                                 | object                   | Required | provider status recorded for this result. additional fields rejected                                                                                                                                                                                                                                                                                                                         |
| `items[].provider_status.is_lost`                                         | boolean / null           | Required | is lost recorded for this result.                                                                                                                                                                                                                                                                                                                                                            |
| `items[].provider_status.is_broken`                                       | boolean / null           | Required | is broken recorded for this result.                                                                                                                                                                                                                                                                                                                                                          |
| `items[].provider_status.is_new`                                          | boolean / null           | Required | is new recorded for this result.                                                                                                                                                                                                                                                                                                                                                             |
| `items[].anchor`                                                          | string / null            | Required | anchor recorded for this result.                                                                                                                                                                                                                                                                                                                                                             |
| `items[].rel`                                                             | array / null             | Required | rel recorded for this result.                                                                                                                                                                                                                                                                                                                                                                |
| `items[].dofollow`                                                        | boolean / null           | Required | dofollow recorded for this result.                                                                                                                                                                                                                                                                                                                                                           |
| `items[].link_type`                                                       | string / null            | Required | link type recorded for this result.                                                                                                                                                                                                                                                                                                                                                          |
| `items[].source_http_status`                                              | integer / null           | Required | source http status recorded for this result.                                                                                                                                                                                                                                                                                                                                                 |
| `items[].target_http_status`                                              | integer / null           | Required | target http status recorded for this result.                                                                                                                                                                                                                                                                                                                                                 |
| `items[].links_count`                                                     | integer / null           | Required | links count recorded for this result.                                                                                                                                                                                                                                                                                                                                                        |
| `items[].provider_metrics`                                                | object / object / object | Required | provider metrics recorded for this result.                                                                                                                                                                                                                                                                                                                                                   |
| `items[].provider_metrics.dataforseo`                                     | object                   | Required | dataforseo recorded for this result. additional fields rejected                                                                                                                                                                                                                                                                                                                              |
| `items[].provider_metrics.dataforseo.rank`                                | integer / null           | Required | rank recorded for this result.                                                                                                                                                                                                                                                                                                                                                               |
| `items[].provider_metrics.dataforseo.page_from_rank`                      | integer / null           | Required | page from rank recorded for this result.                                                                                                                                                                                                                                                                                                                                                     |
| `items[].provider_metrics.dataforseo.domain_from_rank`                    | integer / null           | Required | domain from rank recorded for this result.                                                                                                                                                                                                                                                                                                                                                   |
| `items[].provider_metrics.dataforseo.backlink_spam_score`                 | integer / null           | Required | backlink spam score recorded for this result.                                                                                                                                                                                                                                                                                                                                                |
| `items[].provider_metrics.dataforseo.rank_scale`                          | string                   | Required | rank scale recorded for this result. must equal "one\_thousand"                                                                                                                                                                                                                                                                                                                              |
| `items[].provider_metrics.imported`                                       | object                   | Required | imported recorded for this result. additional fields rejected                                                                                                                                                                                                                                                                                                                                |
| `items[].provider_metrics.imported.supplier`                              | string                   | Required | supplier recorded for this result. values: "ahrefs", "google\_search\_console", "semrush", "majestic", "moz", "dataforseo", "linkody", "csv"                                                                                                                                                                                                                                                 |
| `items[].provider_metrics.imported.supplier_row_id`                       | string / null            | Required | supplier row id recorded for this result.                                                                                                                                                                                                                                                                                                                                                    |
| `items[].provider_metrics.imported.supplier_generated_at`                 | string / null            | Required | supplier generated at recorded for this result.                                                                                                                                                                                                                                                                                                                                              |
| `items[].provider_metrics.imported.supplier_metrics`                      | object / null            | Required | supplier metrics recorded for this result.                                                                                                                                                                                                                                                                                                                                                   |
| `items[].provider_metrics.linktrail_corpus`                               | object                   | Required | linktrail corpus recorded for this result. additional fields rejected                                                                                                                                                                                                                                                                                                                        |
| `items[].provider_metrics.linktrail_corpus.source_outlink_count`          | integer / null           | Required | source outlink count recorded for this result.                                                                                                                                                                                                                                                                                                                                               |
| `items[].provider_metrics.linktrail_corpus.source_external_outlink_count` | integer / null           | Required | source external outlink count recorded for this result.                                                                                                                                                                                                                                                                                                                                      |
| `items[].provider_metrics.linktrail_corpus.fetch_kind`                    | string                   | Required | fetch kind recorded for this result. values: "direct", "rendered", "proxied"                                                                                                                                                                                                                                                                                                                 |
| `items[].provider_metrics.linktrail_corpus.extraction_complete`           | boolean                  | Required | extraction complete recorded for this result.                                                                                                                                                                                                                                                                                                                                                |
| `items[].verification_status`                                             | string                   | Required | Linktrail check state, independent of supplier flags. not\_checked means no Linktrail check is recorded. values: "not\_checked", "present", "absent", "unknown", "source\_unavailable"                                                                                                                                                                                                       |
| `items[].verified_at`                                                     | string / null            | Required | Timestamp of the Linktrail check; null until checked.                                                                                                                                                                                                                                                                                                                                        |
| `items[].observation_id`                                                  | string / null            | Required | observation id recorded for this result.                                                                                                                                                                                                                                                                                                                                                     |
| `next_cursor`                                                             | string / null            | Required | Opaque continuation for the same listing; null means no further page.                                                                                                                                                                                                                                                                                                                        |
| `has_more`                                                                | boolean                  | Optional | True when another page is available.                                                                                                                                                                                                                                                                                                                                                         |
| `run`                                                                     | object                   | Required | run recorded for this result.                                                                                                                                                                                                                                                                                                                                                                |
| `run.v`                                                                   | number                   | Required | v recorded for this result. must equal 1                                                                                                                                                                                                                                                                                                                                                     |
| `run.id`                                                                  | string                   | Required | Resource identifier returned by the operation. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                  |
| `run.workspace_id`                                                        | string                   | Required | Workspace that owns this record. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                                |
| `run.project_id`                                                          | string                   | Required | Project that owns this record. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                                  |
| `run.provider`                                                            | string                   | Required | provider recorded for this result. values: "linktrail\_corpus", "dataforseo", "imported"                                                                                                                                                                                                                                                                                                     |
| `run.data_mode`                                                           | string                   | Required | data mode recorded for this result. values: "synthetic", "owned\_corpus", "provider\_index", "imported"                                                                                                                                                                                                                                                                                      |
| `run.query`                                                               | object                   | Required | query recorded for this result. additional fields rejected                                                                                                                                                                                                                                                                                                                                   |
| `run.query.target_kind`                                                   | string                   | Required | target kind recorded for this result. values: "domain", "exact\_url"                                                                                                                                                                                                                                                                                                                         |
| `run.query.target`                                                        | string                   | Required | target recorded for this result. minLength: 1; maxLength: 4096                                                                                                                                                                                                                                                                                                                               |
| `run.query.include_subdomains`                                            | boolean                  | Required | include subdomains recorded for this result.                                                                                                                                                                                                                                                                                                                                                 |
| `run.query.backlinks_status_type`                                         | string                   | Required | backlinks status type recorded for this result. values: "live", "lost", "all"                                                                                                                                                                                                                                                                                                                |
| `run.query.exclude_internal_backlinks`                                    | boolean                  | Required | exclude internal backlinks recorded for this result.                                                                                                                                                                                                                                                                                                                                         |
| `run.query.mode`                                                          | string                   | Required | mode recorded for this result. must equal "as\_is"                                                                                                                                                                                                                                                                                                                                           |
| `run.query.filters`                                                       | null                     | Required | filters recorded for this result.                                                                                                                                                                                                                                                                                                                                                            |
| `run.query.order_by`                                                      | array                    | Required | order by recorded for this result. minItems: 1; maxItems: 1                                                                                                                                                                                                                                                                                                                                  |
| `run.query.rank_scale`                                                    | string / null            | Required | rank scale recorded for this result.                                                                                                                                                                                                                                                                                                                                                         |
| `run.query.page_limit`                                                    | integer                  | Required | page limit recorded for this result. minimum: 1; maximum: 1000                                                                                                                                                                                                                                                                                                                               |
| `run.query.row_limit`                                                     | integer                  | Required | row limit recorded for this result. minimum: 1; maximum: 1000                                                                                                                                                                                                                                                                                                                                |
| `run.status`                                                              | string                   | Required | Resource lifecycle status. values: "queued", "running", "succeeded", "partial", "failed", "reconciliation\_required"                                                                                                                                                                                                                                                                         |
| `run.created_at`                                                          | string                   | Required | UTC timestamp when the record was created. format: "date-time"; pattern: "^(?:(?:\d\d\[2468]\[048]\|\d\d\[13579]\[26]\|\d\d0\[48]\|\[02468]\[048]00\|\[13579]\[26]00)-02-29\|\d\{4}-(?:(?:0\[13578]\|1\[02])-(?:0\[1-9]\|\[12]\d\|3\[01])\|(?:0\[469]\|11)-(?:0\[1-9]\|\[12]\d\|30)\|(?:02)-(?:0\[1-9]\|1\d\|2\[0-8])))T(?:(?:\[01]\d\|2\[0-3]):\[0-5]\d:\[0-5]\d\\.\d\{3}(?:Z))\$"          |
| `run.started_at`                                                          | string / null            | Required | started at recorded for this result.                                                                                                                                                                                                                                                                                                                                                         |
| `run.finished_at`                                                         | string / null            | Required | finished at recorded for this result.                                                                                                                                                                                                                                                                                                                                                        |
| `run.coverage`                                                            | string                   | Required | Dataset scope and completeness, including limits on what these results establish. values: "pending", "complete\_for\_query", "capped", "partial", "unknown"                                                                                                                                                                                                                                  |
| `run.coverage_reason`                                                     | string / null            | Required | coverage reason recorded for this result.                                                                                                                                                                                                                                                                                                                                                    |
| `run.provider_total_count`                                                | integer / null           | Required | provider total count recorded for this result.                                                                                                                                                                                                                                                                                                                                               |
| `run.usage`                                                               | object                   | Required | usage recorded for this result. additional fields rejected                                                                                                                                                                                                                                                                                                                                   |
| `run.usage.unit`                                                          | string                   | Required | unit recorded for this result. must equal "discovery"                                                                                                                                                                                                                                                                                                                                        |
| `run.usage.currency`                                                      | string                   | Required | currency recorded for this result. must equal "USD"                                                                                                                                                                                                                                                                                                                                          |
| `run.usage.quote_id`                                                      | string                   | Required | quote id recorded for this result. minLength: 1; maxLength: 128; pattern: "^\[a-zA-Z0-9\_-]+\$"                                                                                                                                                                                                                                                                                              |
| `run.usage.max_cost_microusd`                                             | integer                  | Required | max cost microusd recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                            |
| `run.usage.reserved_cost_microusd`                                        | integer                  | Required | reserved cost microusd recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                       |
| `run.usage.provider_reported_cost_microusd`                               | integer / null           | Required | provider reported cost microusd recorded for this result.                                                                                                                                                                                                                                                                                                                                    |
| `run.usage.request_count`                                                 | integer                  | Required | request count recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                |
| `run.usage.returned_rows`                                                 | integer                  | Required | returned rows recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                |
| `run.usage.accepted_candidates`                                           | integer                  | Required | accepted candidates recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                          |
| `run.usage.rejected_rows`                                                 | integer                  | Required | rejected rows recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                |
| `run.usage.duplicate_rows`                                                | integer                  | Required | duplicate rows recorded for this result. minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                               |
| `run.operation`                                                           | string                   | Required | operation recorded for this result. must equal "backlinks"                                                                                                                                                                                                                                                                                                                                   |
| `run.coverage_scope`                                                      | string                   | Required | coverage scope recorded for this result. values: "customer\_import", "corpus\_subset", "provider\_query"                                                                                                                                                                                                                                                                                     |
| `run.whole_web_coverage`                                                  | boolean                  | Required | False: these results do not measure the whole web. must equal false                                                                                                                                                                                                                                                                                                                          |
| `run.replayed`                                                            | boolean                  | Optional | True when the response reuses an earlier request with the same idempotency value.                                                                                                                                                                                                                                                                                                            |
| `snapshot`                                                                | object                   | Required | snapshot recorded for this result.                                                                                                                                                                                                                                                                                                                                                           |
| `snapshot.through_provider_page`                                          | number / null            | Required | through provider page recorded for this result.                                                                                                                                                                                                                                                                                                                                              |
| `snapshot.refresh_from_start_for_new_results`                             | boolean                  | Required | refresh from start for new results recorded for this result. must equal true                                                                                                                                                                                                                                                                                                                 |

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

## Errors and retries

The command is annotated idempotent. Reuse an accepted idempotency key when the input provides one; changing the payload under a reused key can conflict.

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/discovery/runs/{runId}/candidates` | 200     | Remaining read arguments go in query parameters. |

## Continue

[verify\_discovery\_candidate](/reference/commands/verify_discovery_candidate) · [verify\_discovery\_candidates](/reference/commands/verify_discovery_candidates)

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