---
title: "Post Opportunity"
method: POST
path: "/crm/opportunities"
tags: ["CRM Service Calls"]
---

# Post Opportunity

`POST /crm/opportunities`

Create a new opportunity/deal.

At least one of `account_id` or `contact_id` is required to link the deal to an
existing account or contact.

**Request Body (OpportunityRequest):**

- **name** *(required)*: Opportunity name.
- **account_id** *(optional)*: FK to an account (company).
- **contact_id** *(optional)*: FK to a contact (decision maker).
- **stage** *(default: "discovery")*: Pipeline stage. Values: draft, prospecting, discovery,
  developing, negotiation_review, contract_pending, closed_won, closed_lost.
- **value_of_sale** *(optional)*: Deal amount (float).
- **probability_pcnt** *(optional)*: Win probability 0–1 (e.g., 0.75 = 75%).
- **expected_close_date** *(optional)*: Epoch timestamp (seconds).
- **marketing_source** *(optional)*: Marketing source name.
- **business_need_description** *(optional)*: Pain points / business need.
- **product_dict_list** *(optional)*: Array of products, e.g. `[{"product_id":"...","unit_amount":50000,"unit_count":1}]`.

**Response:** The created deal object.

## Request body

- OpportunityRequest — Request to create a new opportunity/deal.
  - `name` string, required — Opportunity name
  - `account_id` string, nullable — FK to Accounts (company). At least one of account_id or contact_id is required.
  - `contact_id` string, nullable — FK to AccountContacts (decision maker). At least one of account_id or contact_id is required.
  - `stage` string, nullable — Possible values: draft, prospecting, discovery, developing, negotiation_review, contract_pending, closed_won, closed_lost
  - `value_of_sale` number, nullable — Deal amount
  - `probability_pcnt` number, nullable — Win probability 0-1 (e.g. 0.75 = 75%)
  - `expected_close_date` integer, nullable — Expected close date (epoch timestamp)
  - `marketing_source` string, nullable — Marketing source name
  - `business_need_description` string, nullable — Business need / pain points
  - `product_dict_list` unknown[], nullable — Array of product objects, e.g. [{"product_id":"...","unit_amount":50000,"unit_count":1}]
    - unknown

## Response `200`

Successful Response

- DealResponse
  - `id` string, required
  - `name` string, required
  - `stage` string, required
  - `marketing_source` string, nullable
  - `agent_name` string, nullable
  - `agent_email` string, nullable
  - `agent_phone` string, nullable
  - `contact_name` string, nullable
  - `contact_email` string, nullable
  - `contact_phone` string, nullable
  - `account_name` string, nullable
  - `account_email` string, nullable
  - `product_dict_list` unknown[], nullable
    - unknown
  - `value_of_sale` string, nullable
  - `estimated_value_of_sale` string, nullable
  - `created_date` string, nullable
  - `updated_date` string, nullable
  - `expected_close_date` string, nullable
  - `close_date` string, nullable
  - `renewal_date` string, nullable

## Other responses

- `422` — Validation Error

---

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