---
title: "Link Contacts to Opportunity"
method: POST
path: "/v1/opportunities/{opportunity_id}/contacts"
tags: ["Opportunities"]
---

# Link Contacts to Opportunity

`POST /v1/opportunities/{opportunity_id}/contacts`

## Request

- Base URL: `https://api.monaco.com`
- URL: `https://api.monaco.com/v1/opportunities/{opportunity_id}/contacts`
- Auth: none declared

Links one or more contacts to an opportunity. Idempotent for pairs that already exist. Previously unlinked pairs are restored only for this manual link path.

## Path parameters

- `opportunity_id` string, uuid, required

## Request body

- OpportunityContactsRequest: Request body for linking or unlinking contacts on an opportunity.
  - `contact_ids` string[], required: Contact IDs to link or unlink. At most 500 ids. MCP/LLM callers may pass a JSON-stringified array.

## Response `200`

Successful Response

- PublicItemResponseOpportunityContactsMutationResponse
  - `data` OpportunityContactsMutationResponse, required: Result of linking or unlinking contacts on an opportunity.
    - `opportunity_id` string, required: Opportunity the contacts were linked to or unlinked from
    - `contact_ids` string[], required: Contact IDs that were processed
  - `meta` ResponseMeta
    - `timestamp` string, date-time: Server timestamp of the response

## Other responses

- `4XX`: Client error

## Changes

- **2026-11-03** `fc720ada2a81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/monaco/apis/monaco-public-api/changes/v1/opportunities/:opportunity_id/contacts/post.md)

---

[API](https://skmtc.dev/monaco/apis/monaco-public-api.md) - [All operations](https://skmtc.dev/monaco/apis/monaco-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/monaco/apis/monaco-public-api/revisions/fc720ada2a81?raw)
