> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clustr-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Opportunity

> Read one opportunity, including its status and notes

Read a single opportunity by the ID that search results return. This is where the
`notes` and status written by [Update Opportunity](/api-reference/update-opportunity)
come back: notes are stored on the opportunity and are returned here and in the
`tracking` block on search results, nowhere else.

<Note>
  **To append to a note, read it first.** `notes` on the update endpoint replaces
  whatever is there. Fetch the current value here, concatenate, and send the combined
  text back.
</Note>

<Note>
  **A status is a tag now.** The `tracking.status_*` fields are still returned when a
  status is set, but triage moved to tags in this release, so for most opportunities
  they will be empty. Read an intro's triage state with [Get An Opportunity's
  Tags](/api-reference/get-path-record-tags), the same vocabulary
  [Update Opportunity](/api-reference/update-opportunity) writes through.
</Note>

## Path Parameters

<ParamField path="id" type="string" required>
  Opportunity ID (from search results)
</ParamField>

## Query Parameters

<ParamField query="full_history" type="boolean">
  Include the full engagement history rather than the totals alone.
</ParamField>

<ParamField query="include_all_positions" type="boolean">
  Include every job each person holds or held, alongside the single role the
  opportunity is filed under.
</ParamField>

## Response

The opportunity in the same shape the searches return it, plus the connector it came
through. The `tracking` object is present only when a status, notes or an assignment
have been set — it is where an intro stands with your team, and has nothing to do with
Workflows, the automation builder in the app:

<ResponseField name="tracking.status_id" type="string">
  The status the opportunity was moved to — one of the IDs from
  [List Opportunity Statuses](/api-reference/list-opportunity-statuses).
</ResponseField>

<ResponseField name="tracking.status_name" type="string">
  Your workspace's label for that status.
</ResponseField>

<ResponseField name="tracking.status_color" type="string">
  Hex colour configured for the status.
</ResponseField>

<ResponseField name="tracking.status_is_terminal" type="boolean">
  Whether the status closes the opportunity (won or lost).
</ResponseField>

<ResponseField name="tracking.notes" type="string">
  Free text last written by [Update Opportunity](/api-reference/update-opportunity).
</ResponseField>

<ResponseField name="tracking.assigned_at" type="string">
  When the opportunity was first assigned.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.clustr-ai.com/api/public/opportunities/550e8400-e29b-41d4-a716-446655440000" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "connector": {
        "name": "Marie Dupont",
        "linkedin_url": "https://www.linkedin.com/in/marie-dupont",
        "job_title": "VP Engineering",
        "company_name": "Acme",
        "owner_email": "sam@yourcompany.com"
      },
      "opportunity": {
        "opportunity_id": "550e8400-e29b-41d4-a716-446655440000",
        "prospect": {
          "name": "Jean Martin",
          "linkedin_url": "https://www.linkedin.com/in/jean-martin",
          "job_title": "CTO"
        },
        "company": {
          "name": "Stripe",
          "domain": "stripe.com"
        },
        "relationship": {
          "confidence_score": 87,
          "total_overlap_months": 34
        },
        "is_target_company": true,
        "tracking": {
          "status_id": "6f1c2b7e-2a54-4f0a-9e3a-1b2c3d4e5f60",
          "status_name": "Meeting scheduled",
          "status_color": "#22C55E",
          "status_is_terminal": false,

          "notes": "Intro asked for on 2026-09-12, waiting on Marie.",
          "assigned_at": "2026-09-10T09:14:00Z"
        }
      }
    }
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "error": { "message": "Opportunity not found", "code": "NOT_FOUND" }
  }
  ```
</ResponseExample>
