---
title: "Create an Opportunity"
method: POST
path: "/v1/opportunities/"
tags: ["Opportunities"]
---

# Create an Opportunity

`POST /v1/opportunities/`

Creates a new opportunity associated with an existing account. Pass an `idempotency_key` to safely retry creation.

## Request body

- OpportunityCreateRequest — Request body for creating an opportunity via POST.
  - `name` string, required — Name of the opportunity
  - `account_id` string, uuid, required — ID of the account to associate the opportunity with
  - `owner_user_id` string, uuid, nullable — User ID to assign as opportunity owner
  - `stage` string, nullable — Pipeline stage key for the opportunity
  - `estimated_value` EstimatedValue
    - `currency_code` string, nullable — ISO 4217 currency code
    - `amount` integer, nullable — Value in minor currency units (e.g. cents)
  - `estimated_close_date` string, nullable — Expected close date (YYYY-MM-DD)
  - `notes` string, nullable — Notes about the opportunity
  - `tags` string[], nullable — List of tag IDs to associate with the opportunity
  - `idempotency_key` string, uuid, nullable — Client-provided idempotency key to prevent duplicate creation

## Response `200`

Successful Response

- PublicItemResponseOpportunityResponse
  - `data` OpportunityResponse, required — Opportunity resource. Custom fields appear as additional keys prefixed with ``custom_field_``.
    - `id` string, required — Unique identifier for the opportunity
    - `account_id` string, required — ID of the associated account
    - `name` string, nullable — Name of the opportunity
    - `owner` OwnerInfo
      - `id` string, required — Unique identifier of the user
      - `first_name` string, nullable — First name of the user
      - `last_name` string, nullable — Last name of the user
    - `stage` string, nullable — Current pipeline stage of the opportunity
    - `estimated_value` EstimatedValue
      - `currency_code` string, nullable — ISO 4217 currency code
      - `amount` integer, nullable — Value in minor currency units (e.g. cents)
    - `estimated_close_date` string, nullable — Expected close date for the opportunity
    - `actual_close_date` string, nullable — Actual date the opportunity was closed
    - `summary` string, nullable — AI-generated summary of the opportunity
    - `risks` string[] — Identified risks for the opportunity
    - `notes` string, nullable — Notes about the opportunity
    - `tags` string[] — List of tag names associated with the opportunity
    - `last_activity_at` string, date-time, nullable — Date and time of the last activity on the opportunity
    - `updated_at` string, date-time, nullable — Date and time the opportunity record was last updated
    - `created_at` string, date-time, required — Date and time the opportunity was created
  - `meta` ResponseMeta
    - `timestamp` string, date-time — Server timestamp of the response

## Other responses

- `4XX` — Client error

---

[API](https://skmtc.net/monaco/apis/monaco-public-api.md) · [All operations](https://skmtc.net/monaco/apis/monaco-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monaco/monaco-public-api/versions/ec4d9b2b035b/schema)
