---
title: "Create Opportunity"
method: POST
path: "/Opportunity"
tags: ["Opportunity"]
---

# Create Opportunity

`POST /Opportunity`

Create a new 'Opportunity' record.

## Headers

- `X-Skip-Duplicate-Check` 'true' | 'false'
- `X-Duplicate-Source-Id` string

## Request body

- OpportunityCreate
  - `id` string — An ID.
  - `name` string — A one-line string.
  - `amount` number — A currency amount.
  - `amountCurrency` 'USD' | 'EUR' — A code.
  - `amountConverted` number, nullable — A currency amount converted to the default currency.
  - `amountWeightedConverted` number, nullable
  - `accountId` string, nullable — An ID of the record of the Account type.
  - `accountName` string, nullable — A foreign record name.
  - `contactsIds` string[], nullable — IDs of records of the Contact type.
  - `contactsNames` object, nullable — An {ID => record name} map.
  - `contactsColumns` object, nullable — An {ID => object} map. Relationship column values.
  - `contactId` string, nullable — An ID of the record of the Contact type.
  - `contactName` string, nullable — A foreign record name.
  - `stage` 'Prospecting' | 'Qualification' | 'Proposal' | 'Negotiation' | 'Closed Won' | 'Closed Lost'
  - `lastStage` string
  - `probability` integer, nullable
  - `leadSource` 'Call' | 'Email' | 'Existing Customer' | 'Partner' | 'Public Relations' | 'Web Site' | 'Campaign' | 'Other', nullable
  - `closeDate` string, date — A date.
  - `description` string, nullable — A multi-line text.
  - `campaignId` string, nullable — An ID of the record of the Campaign type.
  - `campaignName` string, nullable — A foreign record name.
  - `originalLeadId` string, nullable — An ID of the record of the Lead type.
  - `originalLeadName` string, nullable — A foreign record name.
  - `contactRole` 'Decision Maker' | 'Evaluator' | 'Influencer', nullable
  - `createdAt` string, nullable — A timestamp in UTC.
  - `modifiedAt` string, nullable — A timestamp in UTC.
  - `createdById` string, nullable — An ID of the record of the User type.
  - `createdByName` string, nullable — A foreign record name.
  - `modifiedById` string, nullable — An ID of the record of the User type.
  - `modifiedByName` string, nullable — A foreign record name.
  - `assignedUserId` string, nullable — An ID of the record of the User type.
  - `assignedUserName` string, nullable — A foreign record name.
  - `teamsIds` string[], nullable — IDs of records of the Team type.
  - `teamsNames` object, nullable — An {ID => record name} map.
  - `streamUpdatedAt` string, nullable — A timestamp in UTC.

## Response `200`

Success.

- Opportunity
  - `id` string — An ID.
  - `name` string — A one-line string.
  - `amount` number — A currency amount.
  - `amountCurrency` 'USD' | 'EUR' — A code.
  - `amountConverted` number, nullable — A currency amount converted to the default currency.
  - `amountWeightedConverted` number, nullable
  - `accountId` string, nullable — An ID of the record of the Account type.
  - `accountName` string, nullable — A foreign record name.
  - `contactsIds` string[], nullable — IDs of records of the Contact type.
  - `contactsNames` object, nullable — An {ID => record name} map.
  - `contactsColumns` object, nullable — An {ID => object} map. Relationship column values.
  - `contactId` string, nullable — An ID of the record of the Contact type.
  - `contactName` string, nullable — A foreign record name.
  - `stage` 'Prospecting' | 'Qualification' | 'Proposal' | 'Negotiation' | 'Closed Won' | 'Closed Lost'
  - `lastStage` string
  - `probability` integer, nullable
  - `leadSource` 'Call' | 'Email' | 'Existing Customer' | 'Partner' | 'Public Relations' | 'Web Site' | 'Campaign' | 'Other', nullable
  - `closeDate` string, date — A date.
  - `description` string, nullable — A multi-line text.
  - `campaignId` string, nullable — An ID of the record of the Campaign type.
  - `campaignName` string, nullable — A foreign record name.
  - `originalLeadId` string, nullable — An ID of the record of the Lead type.
  - `originalLeadName` string, nullable — A foreign record name.
  - `contactRole` 'Decision Maker' | 'Evaluator' | 'Influencer', nullable
  - `createdAt` string, nullable — A timestamp in UTC.
  - `modifiedAt` string, nullable — A timestamp in UTC.
  - `createdById` string, nullable — An ID of the record of the User type.
  - `createdByName` string, nullable — A foreign record name.
  - `modifiedById` string, nullable — An ID of the record of the User type.
  - `modifiedByName` string, nullable — A foreign record name.
  - `assignedUserId` string, nullable — An ID of the record of the User type.
  - `assignedUserName` string, nullable — A foreign record name.
  - `teamsIds` string[], nullable — IDs of records of the Team type.
  - `teamsNames` object, nullable — An {ID => record name} map.
  - `streamUpdatedAt` string, nullable — A timestamp in UTC.

## Other responses

- `400` — Bad request. Might be a validation error. Check logs for details.
- `403` — Forbidden. Might be an access control error. Check logs for details.
- `409` — Conflict. May be a possible duplicate. Use X-Skip-Duplicate-Check to skip check.

## Changes

- **2025-12-02** `ab706687dae0` — 1 warning
  - added the new `EUR` enum value to the `amountCurrency` response property for the response status `200`
- **2025-12-02** `e28ba9216fac` — 1 info
  - removed the `EUR` enum value from the `amountCurrency` response property for the response status `200`

[Change history](https://skmtc.dev/espocrm/apis/espocrm-api/changes/Opportunity/post.md)

---

[API](https://skmtc.dev/espocrm/apis/espocrm-api.md) · [All operations](https://skmtc.dev/espocrm/apis/espocrm-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/espocrm/espocrm-api/revisions/6622dabfccd3/schema)
