Skip to main content
POST
/
v1
/
opportunities
Create an opportunity
curl --request POST \
  --url https://api.slant.app/v1/opportunities \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "book_id": "abc123xyz",
  "name": "New Investment Opportunity",
  "value": 500000,
  "probability": 75,
  "target_close_date": "2026-06-01T00:00:00Z",
  "pipeline_type": "prospect",
  "pipeline_id": "pipeline123xyz",
  "pipeline_stage_id": "stage123xyz",
  "household_id": "household123xyz",
  "owner_id": "user123xyz",
  "assigned_to_id": "user123xyz"
}
'
{
  "id": "abc123xyz",
  "name": "New Investment Opportunity",
  "book_id": "book123xyz",
  "pipeline": {
    "id": "pipeline123xyz",
    "name": "Sales Pipeline",
    "pipeline_type": "prospect",
    "book_id": "book123xyz",
    "pipeline_stages": [
      {
        "id": "stage123xyz",
        "name": "Qualified",
        "stage_order": 1,
        "visible": true,
        "default_probability": 50
      }
    ]
  },
  "pipeline_stage": {
    "id": "stage123xyz",
    "name": "Qualified",
    "stage_order": 1,
    "visible": true,
    "default_probability": 50
  },
  "assigned_to": {
    "id": "abc123xyz",
    "email": "user@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "api_access": {
      "auth_type": "personal_access_token",
      "scope": "read_write"
    }
  },
  "value": 5000,
  "probability": 75,
  "target_close_date": "2023-11-07T05:31:56Z",
  "stage_updated_at": "2023-11-07T05:31:56Z",
  "household_id": "household123xyz",
  "custom_fields": {
    "lead_source": "Referral"
  },
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.slant.app/llms.txt

Use this file to discover all available pages before exploring further.

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, pipeline_type, or household_id so Slant can choose the pipeline.

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 and household_id are 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

The household ID (optional)

Example:

"household123xyz"

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"

custom_fields
object

Custom field values as key-value pairs

Example:
{ "lead_source": "Referral" }
created_at
string<date-time>

When the opportunity was created

updated_at
string<date-time>

When the opportunity was last updated