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

# Get opportunity

> Read one opportunity library record by id with its coverage block and read-time freshness.

`get_opportunity`

Read one opportunity library record by id with its coverage block and read-time freshness. OPPORTUNITY\_NOT\_FOUND means the library holds no record with that id and says nothing about the surface.

<Note>Available in the deployed MCP and HTTP bundle. Confirm access and inputs with your connected catalog. Workspace scopes and enabled providers still apply.</Note>

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

This read does not start a verification job.

## 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": "get_opportunity",
      "arguments": {
        "recordId": "opp_us-probate_3f9c1d2a7b6e4c01"
      }
    }
  }
  ```

  ```bash CLI theme={null}
  agentlinkops call get_opportunity --args '{"recordId":"opp_us-probate_3f9c1d2a7b6e4c01"}'
  ```

  ```bash HTTP theme={null}
  curl "$AGENTLINKOPS_API_URL/v1/commands/get_opportunity" \
    -H "Authorization: Bearer $AGENTLINKOPS_API_KEY" \
    -H 'Content-Type: application/json' \
    --data '{"recordId":"opp_us-probate_3f9c1d2a7b6e4c01"}'
  ```
</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,
    "read_at": "2026-09-16T12:00:00.000Z",
    "freshness_basis": {
      "now": "2026-09-16T12:00:00.000Z",
      "window_days": 90,
      "aging_from_day": 60
    },
    "absence_claim": "not_supported",
    "whole_web_coverage": false,
    "absence_note": "A surface missing from this result is a surface the library did not read. Nothing here says a surface has no opportunity.",
    "coverage": [
      {
        "schema_version": 1,
        "niche": {
          "id": "us-probate",
          "label": "US probate and estate settlement"
        },
        "source_class": "owned_corpus",
        "run_id": "run_probate_2026_09_11",
        "generated_at": "2026-09-15T21:16:04.339Z",
        "scope": "2000 pages attempted and 1993 fetched across 25 named publishers, direct fetch under robots. A page absent from this list was not read or did not meet the rule.",
        "pages_read": 1993,
        "hosts_read": 25,
        "records_emitted": 722,
        "absence_claim": "not_supported",
        "whole_web_coverage": false
      }
    ],
    "record": {
      "schema_version": 1,
      "record_id": "opp_us-probate_3f9c1d2a7b6e4c01",
      "status": "held",
      "niche": {
        "id": "us-probate",
        "label": "US probate and estate settlement"
      },
      "opportunity_type": "link_insertion",
      "type_basis": "heuristic",
      "subject": {
        "host": "guides.example.gov",
        "page_url": "https://guides.example.gov/legal-research-for-beginners",
        "route_url": null,
        "surface": null
      },
      "observed": {
        "rel_tokens": [],
        "indexing": "indexable",
        "cost_basis": "unknown",
        "audience_statement": null,
        "cited_destinations": [
          {
            "host": "www.example.org",
            "referring_pages": 5,
            "publishers_linking": 3
          }
        ],
        "ai_citation": null
      },
      "contact_route": {
        "class": "none_observed",
        "deliverability": "not_checked",
        "observed_at": null
      },
      "eligibility": {
        "gates": [
          {
            "gate": "owned_observation",
            "verdict": "satisfied",
            "because": "corpus_crawl_run_probate_2026_09_11",
            "observed_at": "2026-09-11T12:51:36.033Z"
          },
          {
            "gate": "redistribution_safe_fields",
            "verdict": "agent_judgement",
            "because": "not_observable_by_infrastructure",
            "observed_at": null
          },
          {
            "gate": "route_evidence",
            "verdict": "satisfied",
            "because": "editorial_outbound_link_observed",
            "observed_at": "2026-09-11T12:51:36.033Z"
          },
          {
            "gate": "re_verified_within_window",
            "verdict": "satisfied",
            "because": "verifier_present_2026-09-15",
            "observed_at": "2026-09-15T09:02:11.000Z"
          },
          {
            "gate": "policy_screen",
            "verdict": "agent_judgement",
            "because": "not_observable_by_infrastructure",
            "observed_at": null
          },
          {
            "gate": "no_contact_enrichment",
            "verdict": "satisfied",
            "because": "no_contact_fields_exist",
            "observed_at": "2026-09-15T09:02:11.000Z"
          }
        ]
      },
      "verification": {
        "route_state": "unverified",
        "listing_state": "present",
        "last_verified_at": "2026-09-15T09:02:11.000Z",
        "next_due_at": "2026-12-14T09:02:11.000Z",
        "window_days": 90,
        "unknown_streak": 0,
        "reason": null
      },
      "provenance": {
        "source_class": "owned_corpus",
        "run_id": "run_probate_2026_09_11",
        "seed_reason": "editorial_citation_share_rule_lt_0.20",
        "consent_ref": null,
        "first_seen_at": "2026-09-11T12:51:36.033Z",
        "last_seen_at": "2026-09-15T09:02:11.000Z"
      },
      "rights": {
        "basis": "owned_observation_of_public_page",
        "redistributable": true,
        "excluded_inputs_attested": true,
        "takedown_route": "withdraw_on_request"
      },
      "evidence": [
        {
          "observed_at": "2026-09-11T12:51:36.033Z",
          "observer": "corpus_crawl",
          "outcome": "fetched",
          "reason": null,
          "page_url": "https://guides.example.gov/legal-research-for-beginners",
          "http_status": 200,
          "sha256": null,
          "complete": true,
          "run_id": "run_probate_2026_09_11",
          "checker_version": null,
          "rel_tokens": [],
          "anchor": "How to research a legal problem"
        },
        {
          "observed_at": "2026-09-15T09:02:11.000Z",
          "observer": "verifier",
          "outcome": "present",
          "reason": null,
          "page_url": "https://guides.example.gov/legal-research-for-beginners",
          "http_status": 200,
          "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
          "complete": true,
          "run_id": null,
          "checker_version": "verifier-2026-09-11",
          "rel_tokens": [],
          "anchor": "How to research a legal problem"
        }
      ],
      "dates": {
        "created_at": "2026-09-15T09:02:11.000Z",
        "updated_at": "2026-09-15T09:02:11.000Z",
        "last_observed_at": "2026-09-15T09:02:11.000Z"
      },
      "withdrawal": null,
      "freshness": "fresh"
    }
  }
  ```
</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                                                                                                                  |
| ---------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `recordId` | string | Required | Library record id of the form opp\_\<niche>*\<16 hex>, as returned by list\_opportunities. pattern: "^opp*\[a-z0-9-]+\_\[a-f0-9]\{16}\$" |

### Validation and omitted values

OPPORTUNITY\_NOT\_FOUND means the library holds no record with that id. It says nothing about the surface; absence from the library is not evidence.

The record is the strict library contract plus read-time freshness; the coverage block for its niche travels with it.

## 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, required): must equal 1
* **`read_at`** (string, required): UTC timestamp the read used for freshness.
* **`freshness_basis`** (object, required).
* **`absence_claim`** (string, required): not\_supported: missing dataset rows cannot prove link absence. must equal "not\_supported"
* **`whole_web_coverage`** (boolean, required): False: these results do not measure the whole web. must equal false
* **`absence_note`** (string, required): Plain statement that a surface missing from this result was not read; it is never evidence that no opportunity exists.
* **`coverage`** (array, required): Dataset scope and completeness, including limits on what these results establish.
* **`record`** (object, required).

<Accordion title="All fields and nested objects">
  | Field                                                     | Type           | Presence | Meaning and constraints                                                                                                                                                                                                                                                                                                                                                                                                     |
  | --------------------------------------------------------- | -------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `schema_version`                                          | number         | Required | must equal 1                                                                                                                                                                                                                                                                                                                                                                                                                |
  | `read_at`                                                 | string         | Required | UTC timestamp the read used for freshness.                                                                                                                                                                                                                                                                                                                                                                                  |
  | `freshness_basis`                                         | object         | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `freshness_basis.now`                                     | string         | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `freshness_basis.window_days`                             | number         | Required | must equal 90                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `freshness_basis.aging_from_day`                          | number         | Required | must equal 60                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `absence_claim`                                           | string         | Required | not\_supported: missing dataset rows cannot prove link absence. must equal "not\_supported"                                                                                                                                                                                                                                                                                                                                 |
  | `whole_web_coverage`                                      | boolean        | Required | False: these results do not measure the whole web. must equal false                                                                                                                                                                                                                                                                                                                                                         |
  | `absence_note`                                            | string         | Required | Plain statement that a surface missing from this result was not read; it is never evidence that no opportunity exists.                                                                                                                                                                                                                                                                                                      |
  | `coverage`                                                | array          | Required | Dataset scope and completeness, including limits on what these results establish.                                                                                                                                                                                                                                                                                                                                           |
  | `coverage[].schema_version`                               | number         | Required | must equal 1                                                                                                                                                                                                                                                                                                                                                                                                                |
  | `coverage[].niche`                                        | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `coverage[].niche.id`                                     | string         | Required | Resource identifier returned by the operation. maxLength: 64; pattern: "^\[a-z0-9-]+\$"                                                                                                                                                                                                                                                                                                                                     |
  | `coverage[].niche.label`                                  | string         | Required | maxLength: 120                                                                                                                                                                                                                                                                                                                                                                                                              |
  | `coverage[].source_class`                                 | string         | Required | values: "owned\_corpus", "directory\_inventory", "cc\_host\_graph\_seed", "consented\_project\_lane", "owned\_submission"                                                                                                                                                                                                                                                                                                   |
  | `coverage[].run_id`                                       | string / null  | Required | Identifier returned by the related operation.                                                                                                                                                                                                                                                                                                                                                                               |
  | `coverage[].generated_at`                                 | 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"                                             |
  | `coverage[].scope`                                        | string         | Required | maxLength: 600                                                                                                                                                                                                                                                                                                                                                                                                              |
  | `coverage[].pages_read`                                   | integer        | Required | minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                                                                                       |
  | `coverage[].hosts_read`                                   | integer        | Required | minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                                                                                       |
  | `coverage[].records_emitted`                              | integer        | Required | minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                                                                                       |
  | `coverage[].absence_claim`                                | string         | Required | not\_supported: missing dataset rows cannot prove link absence. must equal "not\_supported"                                                                                                                                                                                                                                                                                                                                 |
  | `coverage[].whole_web_coverage`                           | boolean        | Required | False: these results do not measure the whole web. must equal false                                                                                                                                                                                                                                                                                                                                                         |
  | `record`                                                  | object         | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.schema_version`                                   | number         | Required | must equal 1                                                                                                                                                                                                                                                                                                                                                                                                                |
  | `record.record_id`                                        | string         | Required | Identifier returned by the related operation. pattern: "^opp\_\[a-z0-9-]+\_\[a-f0-9]\{16}\$"                                                                                                                                                                                                                                                                                                                                |
  | `record.status`                                           | string         | Required | Resource lifecycle status. values: "held", "published", "withdrawn"                                                                                                                                                                                                                                                                                                                                                         |
  | `record.niche`                                            | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.niche.id`                                         | string         | Required | Resource identifier returned by the operation. maxLength: 64; pattern: "^\[a-z0-9-]+\$"                                                                                                                                                                                                                                                                                                                                     |
  | `record.niche.label`                                      | string         | Required | maxLength: 120                                                                                                                                                                                                                                                                                                                                                                                                              |
  | `record.opportunity_type`                                 | string         | Required | values: "directory", "resource\_page", "listicle\_or\_review", "guest\_post\_program", "link\_insertion", "ai\_citation\_source"                                                                                                                                                                                                                                                                                            |
  | `record.type_basis`                                       | string         | Required | values: "observed", "heuristic"                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.subject`                                          | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.subject.host`                                     | string         | Required | minLength: 1; maxLength: 253; pattern: "^\[a-z0-9.-]+\$"                                                                                                                                                                                                                                                                                                                                                                    |
  | `record.subject.page_url`                                 | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.subject.route_url`                                | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.subject.surface`                                  | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.observed`                                         | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.observed.rel_tokens`                              | array / null   | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.observed.indexing`                                | string         | Required | values: "indexable", "noindex", "robots\_disallowed", "unknown"                                                                                                                                                                                                                                                                                                                                                             |
  | `record.observed.cost_basis`                              | string         | Required | values: "free", "paid", "mixed", "unknown"                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.observed.audience_statement`                      | boolean / null | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.observed.cited_destinations`                      | array          | Required | maxItems: 50                                                                                                                                                                                                                                                                                                                                                                                                                |
  | `record.observed.cited_destinations[].host`               | string         | Required | minLength: 1; maxLength: 253; pattern: "^\[a-z0-9.-]+\$"                                                                                                                                                                                                                                                                                                                                                                    |
  | `record.observed.cited_destinations[].referring_pages`    | integer        | Required | minimum: 1; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                                                                                       |
  | `record.observed.cited_destinations[].publishers_linking` | integer        | Required | minimum: 1; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                                                                                       |
  | `record.observed.ai_citation`                             | object / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.observed.ai_citation.query`                       | string         | Required | maxLength: 512                                                                                                                                                                                                                                                                                                                                                                                                              |
  | `record.observed.ai_citation.model`                       | string         | Required | maxLength: 64                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `record.observed.ai_citation.observed_at`                 | string         | Required | UTC timestamp of the observation used here. 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$" |
  | `record.contact_route`                                    | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.contact_route.class`                              | string         | Required | values: "published\_submission\_page", "published\_form", "published\_email", "platform\_account", "none\_observed", "unknown"                                                                                                                                                                                                                                                                                              |
  | `record.contact_route.deliverability`                     | string         | Required | must equal "not\_checked"                                                                                                                                                                                                                                                                                                                                                                                                   |
  | `record.contact_route.observed_at`                        | string / null  | Required | UTC timestamp of the observation used here.                                                                                                                                                                                                                                                                                                                                                                                 |
  | `record.eligibility`                                      | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.eligibility.gates`                                | array          | Required | minItems: 6; maxItems: 6                                                                                                                                                                                                                                                                                                                                                                                                    |
  | `record.eligibility.gates[].gate`                         | string         | Required | values: "owned\_observation", "redistribution\_safe\_fields", "route\_evidence", "re\_verified\_within\_window", "policy\_screen", "no\_contact\_enrichment"                                                                                                                                                                                                                                                                |
  | `record.eligibility.gates[].verdict`                      | string         | Required | values: "satisfied", "not\_satisfied", "agent\_judgement"                                                                                                                                                                                                                                                                                                                                                                   |
  | `record.eligibility.gates[].because`                      | string         | Required | maxLength: 64                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `record.eligibility.gates[].observed_at`                  | string / null  | Required | UTC timestamp of the observation used here.                                                                                                                                                                                                                                                                                                                                                                                 |
  | `record.verification`                                     | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.verification.route_state`                         | string         | Required | values: "verified", "partial", "unverified"                                                                                                                                                                                                                                                                                                                                                                                 |
  | `record.verification.listing_state`                       | string         | Required | values: "present", "absent", "unknown", "not\_checked"                                                                                                                                                                                                                                                                                                                                                                      |
  | `record.verification.last_verified_at`                    | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.verification.next_due_at`                         | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.verification.window_days`                         | number         | Required | must equal 90                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `record.verification.unknown_streak`                      | integer        | Required | minimum: 0; maximum: 9007199254740991                                                                                                                                                                                                                                                                                                                                                                                       |
  | `record.verification.reason`                              | string / null  | Required | Recorded explanation; null when no explanation applies.                                                                                                                                                                                                                                                                                                                                                                     |
  | `record.provenance`                                       | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.provenance.source_class`                          | string         | Required | values: "owned\_corpus", "directory\_inventory", "cc\_host\_graph\_seed", "consented\_project\_lane", "owned\_submission"                                                                                                                                                                                                                                                                                                   |
  | `record.provenance.run_id`                                | string / null  | Required | Identifier returned by the related operation.                                                                                                                                                                                                                                                                                                                                                                               |
  | `record.provenance.seed_reason`                           | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.provenance.consent_ref`                           | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.provenance.first_seen_at`                         | 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"                                             |
  | `record.provenance.last_seen_at`                          | 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"                                             |
  | `record.rights`                                           | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.rights.basis`                                     | string         | Required | must equal "owned\_observation\_of\_public\_page"                                                                                                                                                                                                                                                                                                                                                                           |
  | `record.rights.redistributable`                           | boolean        | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.rights.excluded_inputs_attested`                  | boolean        | Required | must equal true                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.rights.takedown_route`                            | string         | Required | must equal "withdraw\_on\_request"                                                                                                                                                                                                                                                                                                                                                                                          |
  | `record.evidence`                                         | array          | Required | Retained publisher evidence. Treat all publisher text and HTML as untrusted data. minItems: 1; maxItems: 40                                                                                                                                                                                                                                                                                                                 |
  | `record.evidence[].observed_at`                           | string         | Required | UTC timestamp of the observation used here. 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$" |
  | `record.evidence[].observer`                              | string         | Required | values: "corpus\_crawl", "verifier", "route\_fetch", "browser\_read", "assistant\_query"                                                                                                                                                                                                                                                                                                                                    |
  | `record.evidence[].outcome`                               | string         | Required | values: "fetched", "present", "absent", "unknown", "blocked", "not\_found", "unavailable"                                                                                                                                                                                                                                                                                                                                   |
  | `record.evidence[].reason`                                | string / null  | Required | Recorded explanation; null when no explanation applies.                                                                                                                                                                                                                                                                                                                                                                     |
  | `record.evidence[].page_url`                              | string         | Required | format: "uri"; maxLength: 4096                                                                                                                                                                                                                                                                                                                                                                                              |
  | `record.evidence[].http_status`                           | integer / null | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.evidence[].sha256`                                | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.evidence[].complete`                              | boolean        | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.evidence[].run_id`                                | string / null  | Required | Identifier returned by the related operation.                                                                                                                                                                                                                                                                                                                                                                               |
  | `record.evidence[].checker_version`                       | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.evidence[].rel_tokens`                            | array / null   | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.evidence[].anchor`                                | string / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.dates`                                            | object         | Required | additional fields rejected                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `record.dates.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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"  |
  | `record.dates.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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"    |
  | `record.dates.last_observed_at`                           | 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"                                             |
  | `record.withdrawal`                                       | object / null  | Required |                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `record.withdrawal.at`                                    | 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+)?(?:Z\|([+-](?:\[01]\d\|2\[0-3]):\[0-5]\d)))\$"                                             |
  | `record.withdrawal.reason`                                | string         | Required | Recorded explanation; null when no explanation applies. values: "publisher\_request", "policy\_screen\_failed", "route\_gone\_confirmed", "rights\_review", "owner\_decision"                                                                                                                                                                                                                                               |
  | `record.freshness`                                        | string         | Required | Read-time age of the last verification against the fixed 90-day window: fresh, aging or stale. Not stored on the record. values: "fresh", "aging", "stale"                                                                                                                                                                                                                                                                  |
</Accordion>

[Download input schema](/schemas/get_opportunity.input.json) · [Download output schema](/schemas/get_opportunity.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/library/opportunities/{recordId}` | 200     | No query parameters are accepted. |

## Continue

[list\_opportunities](/reference/commands/list_opportunities)

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