Skip to content

Create Deal

POST
/deals

Create a new deal. Defaults to the org’s default pipeline and first stage if not specified.

background_tasks carries the deal.created event only (#16242). Like the PATCH endpoint’s stage fan-out it is injected, not a body field, so it does not appear in the OpenAPI schema and the request contract is unchanged. Queuing it there rather than publishing inline keeps the Redis round trip off the caller’s latency budget and makes “strictly after the commit” structural: the task is queued only once the session context has exited, and FastAPI attaches background tasks to the SUCCESS response, so a raise anywhere above publishes nothing.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

object
allow_duplicate

Set true to create a deal even if one already exists for the company

boolean
amount
Any of:
number
close_date
Any of:
string
company_id
Any of:
integer
contact_ids
required

Mashup_contact_ids to associate with the deal (>=1 required; all must share one company)

Array<integer>
>= 1 items
currency
Any of:
string
description
Any of:
string
name
required

Deal name

string
owner_id
required

Deal owner (user id or email). Required.

string
pipeline_id
Any of:
string
stage_id
Any of:
string

Responses

201

Successful Response

object
data
required
object
amount
Any of:
number
close_date
Any of:
string
closed_lost_reason
Any of:
string
company_id
Any of:
contact_count
integer
contacts
Any of:
Array<object>

Lightweight contact summary embedded in deal responses.

id is the canonical mashup_contact_id (BigInt), matching how contacts are addressed everywhere else in the public API (g8_search_contacts, g8_lookup_person, etc.). role is the contact’s role within THIS deal (champion / decision_maker / influencer / blocker / coach / end_user) and is null when no role was set.

object
email
Any of:
string
id
required
integer
name
Any of:
string
role
Any of:
string
title
Any of:
string
created_at
Any of:
string
currency
Any of:
string
description
Any of:
string
id
Any of:
string
last_activity_at
Any of:
string
name
Any of:
string
owner_email
Any of:
string
owner_id
Any of:
string
owner_name
Any of:
string
pipeline_id
Any of:
string
primary_contact
Any of:

Lightweight contact summary embedded in deal responses.

id is the canonical mashup_contact_id (BigInt), matching how contacts are addressed everywhere else in the public API (g8_search_contacts, g8_lookup_person, etc.). role is the contact’s role within THIS deal (champion / decision_maker / influencer / blocker / coach / end_user) and is null when no role was set.

object
email
Any of:
string
id
required
integer
name
Any of:
string
role
Any of:
string
title
Any of:
string
revision
Any of:
integer
stage_id
Any of:
string
stage_name
Any of:
string
updated_at
Any of:
string
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string