# create or update draft offer

`POST https://api.suger.cloud/org/{orgId}/draftOffer`

Create a new draft offer or update the existing draft offer. When updating draft offer, the offer.ID is required.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `contacts` | query | string | no | How to merge offer.ContactIds with the existing offer's contacts. REPLACE (default): the submitted list is the source of truth — contacts not in the body are dropped. UNION: merge the submitted contacts with what is already on the offer. Use UNION for partial updates that should not clobber contacts the user added separately. |

## Request Body

Required.

Content-Type: `application/json` · Schema: `WorkloadOffer`

## Responses

### 200 — OK

Content-Type: `application/json` · Schema: `WorkloadOffer`

### 400 — Bad request error

Content-Type: `application/json`

### 405 — Method not allowed

Content-Type: `application/json`

### 500 — Internal error

Content-Type: `application/json`

---

Interactive API reference: https://doc.suger.io/api/
