Skip to main content
POST
Create an opportunity

Authorizations

Authorization
string
header
required

OAuth 2.0 Bearer Token from Clerk authentication

Headers

Idempotency-Key
string

Unique key to ensure idempotent request handling. If a request with the same key was already processed, the original response will be returned.

Body

application/json

Opportunity data. Provide pipeline_id or pipeline_type to choose a pipeline. Household-backed opportunities can omit both and Slant will infer the default client/prospect pipeline from the household type. Contact and business opportunities must provide a compatible pipeline_id, or a pipeline_type whose default pipeline supports that related record type.

book_id
string
required

The book ID

Example:

"abc123xyz"

name
string
required

Name of the opportunity

Example:

"New Investment Opportunity"

value
integer

The monetary value of the opportunity in whole dollars, not cents

Example:

500000

probability
integer

The probability of closing (0-100)

Example:

75

target_close_date
string<date-time>

Expected close date (must be in the future)

Example:

"2026-06-01T00:00:00Z"

pipeline_type
enum<string>

The pipeline type used to choose the default prospect or client pipeline when pipeline_id is not provided.

Available options:
prospect,
client
Example:

"prospect"

pipeline_id
string

The exact pipeline ID to create the opportunity in. Takes precedence over pipeline_type.

Example:

"pipeline123xyz"

pipeline_stage_id
string

The pipeline stage ID. Must belong to the selected pipeline. Defaults to the first stage.

Example:

"stage123xyz"

household_id
string

Legacy household ID for household-backed opportunities (optional)

Example:

"household123xyz"

opportunityable_type
enum<string>

Related record type for the opportunity. Household records can infer the default client/prospect pipeline; Contact and Business records need a compatible pipeline_id or pipeline_type.

Available options:
Household,
Contact,
Business
Example:

"Contact"

opportunityable_id
string

Related record ID for the opportunity

Example:

"contact123xyz"

owner_id
string

Alias for assigned_to_id

Example:

"user123xyz"

assigned_to_id
string

The assigned user ID from the relevant book users list (defaults to authenticated user)

Example:

"user123xyz"

Response

opportunity created

id
string
required

The opportunity ID

Example:

"abc123xyz"

name
string
required

The name of the opportunity

Example:

"New Investment Opportunity"

book_id
string
required

The book ID

Example:

"book123xyz"

pipeline
object
required
pipeline_stage
object
required
assigned_to
object
required

The user assigned to this opportunity. Set this with assigned_to_id on create or update.

value
integer | null

The monetary value of the opportunity in dollars

Example:

5000

probability
integer | null

The probability of closing (0-100)

Example:

75

target_close_date
string<date-time> | null

Expected close date

stage_updated_at
string<date-time> | null

When the opportunity last moved stages. Useful for stage aging and pipeline reporting.

household_id
string | null

The household ID (null for unassociated opportunities)

Example:

"household123xyz"

opportunityable_type
enum<string> | null

The related record type for this opportunity

Available options:
Household,
Contact,
Business
opportunityable_id
string | null

The related record ID for this opportunity

opportunityable
object | null

Compact related record payload for the opportunity

custom_fields
object

Custom field values as key-value pairs

Example:
created_at
string<date-time>

When the opportunity was created

updated_at
string<date-time>

When the opportunity was last updated