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

# Start domain baseline

> Start a baseline.

`start_domain_baseline`

Start a baseline. Requires a prepared offer, explicit consent and a retry key. Returns the same durable baseline on replay. Admission is disabled until supplier prerequisites are recorded; retries cannot activate it.

<Note>Development preview. This command is absent from the verified deployed bundle. Use a matching development environment.</Note>

| Access | Behavior |
| - | - |
| `discovery:read`, `watches:read`, `discovery:write`, `watches:write` | Writes or admits work |

Provider-backed admission requires enabled configuration and available allowance; registration alone does not make retrieval available. Inspect usage and the run’s coverage before interpreting results.

## 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": "start_domain_baseline",
      "arguments": {
        "offerId": "bo_fixture",
        "idempotencyKey": "baseline_example",
        "consent": true
      }
    }
  }
  ```

  ```bash CLI theme={null}
  agentlinkops call start_domain_baseline --args '{"offerId":"bo_fixture","idempotencyKey":"baseline_example","consent":true}'
  ```

  ```bash HTTP theme={null}
  curl "$AGENTLINKOPS_API_URL/v1/commands/start_domain_baseline" \
    -H "Authorization: Bearer $AGENTLINKOPS_API_KEY" \
    -H 'Content-Type: application/json' \
    --data '{"offerId":"bo_fixture","idempotencyKey":"baseline_example","consent":true}'
  ```
</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.

<Accordion title="Full response example">
  ```json theme={null}
  {
    "schema_version": 1,
    "id": "bl_fixture_queued",
    "workspace_id": "ws_fixture",
    "project_id": "pr_fixture",
    "scope": {
      "domain": "example.com",
      "include_subdomains": true,
      "website_revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "query_version": "dataforseo-as-is-v1"
    },
    "source": "dataforseo",
    "data_mode": "synthetic",
    "state": "queued",
    "created_at": "2026-10-04T12:00:00.000Z",
    "updated_at": "2026-10-04T12:00:00.000Z",
    "execution_deadline": "2026-10-04T12:15:00.000Z",
    "timing": {
      "first_result_at": null,
      "finished_at": null,
      "first_result_ms": null
    },
    "components": {
      "summary": {
        "state": "pending",
        "run_id": "ov_fixture",
        "retrieved_at": null,
        "error_code": null
      },
      "list": {
        "state": "pending",
        "run_id": "dr_fixture",
        "retrieved_at": null,
        "error_code": null
      },
      "checks": {
        "state": "pending",
        "run_id": null,
        "retrieved_at": null,
        "error_code": null
      }
    },
    "summary": null,
    "counts": {
      "indexed_total": null,
      "retrieved_candidates": 0,
      "selected_checks": 0,
      "checked": 0,
      "present": 0,
      "absent": 0,
      "source_unavailable": 0,
      "unknown": 0
    },
    "coverage": {
      "whole_web": false,
      "sample": true,
      "ordering": "rank,desc",
      "reason": null
    },
    "selection": {
      "policy": "distinct-host-target-order-v1",
      "manifest_hash": null,
      "candidate_ids": [],
      "render_limit": 0
    },
    "recurring_monitoring_created": false,
    "recovery": "read_saved_run",
    "replayed": false
  }
  ```
</Accordion>

## 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 |
| - | - | - | - |
| `offerId` | string | Required | Identifier of the offer returned by its create or list operation. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
| `idempotencyKey` | string | Required | Caller-generated key reused only for retries of the same operation and arguments in this workspace. pattern: "^\[\x21-\x7e]\{1,200}\$" |
| `consent` | boolean | Required | The consent value; allowed values and bounds are specified in this schema. must equal true |

### Validation and omitted values

Supplier admission remains disabled. Synthetic development results do not establish provider coverage.

Saved baseline identity and exact website scope survive retries. Indexed candidates, one-off observations and explicitly selected recurring monitors remain separate.

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

* **`schema_version`** (number / number, required).
* **`id`** (string, required): Resource identifier returned by the operation. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$"
* **`workspace_id`** (string, required): Workspace that owns this record. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$"
* **`project_id`** (string, required): Project that owns this record. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$"
* **`scope`** (object, required): additional fields rejected
* **`source`** (string, required): must equal "dataforseo"
* **`data_mode`** (string, required): values: "synthetic", "provider\_index"
* **`state`** (string, required): Saved lifecycle or evidence state, as enumerated for this record. values: "queued", "fetching", "checking", "ready", "partial", "empty", "failed", "cancelled", "reconciliation\_required"
* **`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))\$"
* **`updated_at`** (string, required): UTC timestamp of the last record update. 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))\$"
* **`execution_deadline`** (string, required): 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))\$"
* **`timing`** (object, required): additional fields rejected
* **`components`** (object, required): additional fields rejected
* **`summary`** (object / null, required): Grouped change counts included in this delivery, limited to accessible websites.
* **`counts`** (object, required): additional fields rejected
* **`coverage`** (object, required): Dataset scope and completeness, including limits on what these results establish. additional fields rejected
* **`selection`** (object, required): additional fields rejected
* **`recurring_monitoring_created`** (boolean, required): Whether this operation enrolled recurring monitoring. must equal false
* **`recovery`** (string, required): values: "read\_saved\_run", "reconcile\_receipt", "explicit\_new\_offer"
* **`replayed`** (boolean, optional): True when the response reuses an earlier request with the same idempotency value.

<Accordion title="All fields and nested objects">
  | Field | Type | Presence | Meaning and constraints |
  | - | - | - | - |
  | `schema_version` | number / number | Required | |
  | `id` | string | Required | Resource identifier returned by the operation. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
  | `workspace_id` | string | Required | Workspace that owns this record. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
  | `project_id` | string | Required | Project that owns this record. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
  | `scope` | object | Required | additional fields rejected |
  | `scope.domain` | string | Required | minLength: 1; maxLength: 253 |
  | `scope.include_subdomains` | boolean | Required | |
  | `scope.website_revision` | string | Required | pattern: "^\[a-f0-9]\{64}\$" |
  | `scope.query_version` | string | Required | must equal "dataforseo-as-is-v1" |
  | `source` | string | Required | must equal "dataforseo" |
  | `data_mode` | string | Required | values: "synthetic", "provider\_index" |
  | `state` | string | Required | Saved lifecycle or evidence state, as enumerated for this record. values: "queued", "fetching", "checking", "ready", "partial", "empty", "failed", "cancelled", "reconciliation\_required" |
  | `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))\$" |
  | `updated_at` | string | Required | UTC timestamp of the last record update. 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))\$" |
  | `execution_deadline` | string | Required | 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))\$" |
  | `timing` | object | Required | additional fields rejected |
  | `timing.first_result_at` | string / null | Required | |
  | `timing.finished_at` | string / null | Required | |
  | `timing.first_result_ms` | integer / null | Required | |
  | `components` | object | Required | additional fields rejected |
  | `components.summary` | object | Required | Grouped change counts included in this delivery, limited to accessible websites. additional fields rejected |
  | `components.summary.state` | string | Required | Saved lifecycle or evidence state, as enumerated for this record. values: "pending", "running", "succeeded", "partial", "empty", "failed", "cancelled", "reconciliation\_required" |
  | `components.summary.run_id` | string / null | Required | Identifier returned by the related operation. |
  | `components.summary.retrieved_at` | string / null | Required | |
  | `components.summary.error_code` | string / null | Required | Latest delivery detail code; null when no failure or retry has been recorded. |
  | `components.list` | object | Required | additional fields rejected |
  | `components.list.state` | string | Required | Saved lifecycle or evidence state, as enumerated for this record. values: "pending", "running", "succeeded", "partial", "empty", "failed", "cancelled", "reconciliation\_required" |
  | `components.list.run_id` | string / null | Required | Identifier returned by the related operation. |
  | `components.list.retrieved_at` | string / null | Required | |
  | `components.list.error_code` | string / null | Required | Latest delivery detail code; null when no failure or retry has been recorded. |
  | `components.checks` | object | Required | additional fields rejected |
  | `components.checks.state` | string | Required | Saved lifecycle or evidence state, as enumerated for this record. values: "pending", "running", "succeeded", "partial", "empty", "failed", "cancelled", "reconciliation\_required" |
  | `components.checks.run_id` | string / null | Required | Identifier returned by the related operation. |
  | `components.checks.retrieved_at` | string / null | Required | |
  | `components.checks.error_code` | string / null | Required | Latest delivery detail code; null when no failure or retry has been recorded. |
  | `summary` | object / null | Required | Grouped change counts included in this delivery, limited to accessible websites. |
  | `summary.v` | number | Required | must equal 1 |
  | `summary.overview_run_id` | string | Required | Identifier returned by the related operation. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
  | `summary.workspace_id` | string | Required | Workspace that owns this record. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
  | `summary.project_id` | string | Required | Project that owns this record. pattern: "^\[a-zA-Z0-9\_-]\{1,128}\$" |
  | `summary.provider` | string | Required | values: "linktrail\_corpus", "dataforseo", "imported" |
  | `summary.data_mode` | string | Required | values: "synthetic", "owned\_corpus", "provider\_index", "imported" |
  | `summary.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))\$" |
  | `summary.provider_first_seen` | string / null | Required | |
  | `summary.provider_lost_date` | string / null | Required | |
  | `summary.verified_at` | null | Required | Timestamp of the AgentLinkOps check; null until checked. |
  | `summary.coverage` | string | Required | Dataset scope and completeness, including limits on what these results establish. values: "provider\_summary", "corpus\_subset", "partial" |
  | `summary.counts` | object | Required | additional fields rejected |
  | `summary.counts.backlinks` | integer / null | Required | |
  | `summary.counts.referring_domains` | integer / null | Required | |
  | `summary.counts.referring_main_domains` | integer / null | Required | |
  | `summary.counts.referring_pages` | integer / null | Required | |
  | `summary.counts.referring_ips` | integer / null | Required | |
  | `summary.counts.referring_subnets` | integer / null | Required | |
  | `summary.counts.crawled_pages` | integer / null | Required | |
  | `summary.counts.broken_backlinks` | integer / null | Required | |
  | `summary.counts.broken_pages` | integer / null | Required | |
  | `summary.provider_metrics` | object / object | Required | |
  | `summary.provider_metrics.dataforseo` | object | Required | additional fields rejected |
  | `summary.provider_metrics.dataforseo.rank` | integer / null | Required | |
  | `summary.provider_metrics.dataforseo.backlinks_spam_score` | integer / null | Required | |
  | `summary.provider_metrics.dataforseo.rank_scale` | string | Required | must equal "one\_thousand" |
  | `summary.provider_metrics.linktrail_corpus` | object | Required | additional fields rejected |
  | `summary.provider_metrics.linktrail_corpus.corpus_source_pages` | integer / null | Required | |
  | `summary.provider_metrics.linktrail_corpus.corpus_last_expanded_at` | string / null | Required | |
  | `counts` | object | Required | additional fields rejected |
  | `counts.indexed_total` | integer / null | Required | |
  | `counts.retrieved_candidates` | integer | Required | minimum: 0; maximum: 9007199254740991 |
  | `counts.selected_checks` | integer | Required | minimum: 0; maximum: 10 |
  | `counts.checked` | integer | Required | minimum: 0; maximum: 10 |
  | `counts.present` | integer | Required | minimum: 0; maximum: 10 |
  | `counts.absent` | integer | Required | minimum: 0; maximum: 10 |
  | `counts.source_unavailable` | integer | Required | minimum: 0; maximum: 10 |
  | `counts.unknown` | integer | Required | minimum: 0; maximum: 10 |
  | `coverage` | object | Required | Dataset scope and completeness, including limits on what these results establish. additional fields rejected |
  | `coverage.whole_web` | boolean | Required | must equal false |
  | `coverage.sample` | boolean | Required | True: the rendered preview uses example content, never customer events. must equal true |
  | `coverage.ordering` | string | Required | must equal "rank,desc" |
  | `coverage.reason` | string / null | Required | Recorded explanation; null when no explanation applies. |
  | `selection` | object | Required | additional fields rejected |
  | `selection.policy` | string | Required | must equal "distinct-host-target-order-v1" |
  | `selection.manifest_hash` | string / null | Required | |
  | `selection.candidate_ids` | array | Required | maxItems: 10 |
  | `selection.render_limit` | number | Required | must equal 0 |
  | `recurring_monitoring_created` | boolean | Required | Whether this operation enrolled recurring monitoring. must equal false |
  | `recovery` | string | Required | values: "read\_saved\_run", "reconcile\_receipt", "explicit\_new\_offer" |
  | `replayed` | boolean | Optional | True when the response reuses an earlier request with the same idempotency value. |
</Accordion>

[Download input schema](/schemas/start_domain_baseline.input.json) · [Download output schema](/schemas/start_domain_baseline.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

This operation has no separate resource alias. Use its generic command route in a matching environment.

## Continue

[get\_domain\_baseline](/reference/commands/get_domain_baseline) · [list\_domain\_baseline\_candidates](/reference/commands/list_domain_baseline_candidates)

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.