---
title: "Fast bulk create opportunities"
method: POST
path: "/v1/opportunities/fast-bulk"
tags: ["CRM"]
---

# Fast bulk create opportunities

`POST /v1/opportunities/fast-bulk`

Creates up to 100 opportunities with nested account and contact payloads. This optimized endpoint batch-resolves accounts, contacts, owners, and stages before inserting opportunities.

## Request body

- FastBulkOpportunityInput[]
  - `pipeline_id` string, uuid, nullable
  - `pipeline_name` string, nullable
  - `opportunity` OpportunityFields, required
    - `name` string, nullable — Opportunity name. Derived if omitted.
    - `stage_id` string, uuid, nullable
    - `stage_name` string, nullable — Stage label fallback.
    - `deal_size` number, nullable
    - `close_date` integer, nullable — Unix timestamp in seconds.
    - `next_action_date` integer, nullable — Unix timestamp in seconds.
    - `next_steps` string, nullable
    - `custom_attributes` object
  - `related_objects` object, required
    - `account` AccountInput
      - `domain` string, required — Company domain.
      - `name` string, nullable
      - `industry` string, nullable
      - `logo` string, nullable
      - `linkedin` string, nullable
      - `twitter` string, nullable
      - `twitter_followers` number, nullable
      - `description` string, nullable
      - `primary_location` string, nullable
      - `founded` number, nullable
      - `estimated_revenue` number, nullable
      - `total_fund_raised` number, nullable
      - `employee_range` string, nullable
      - `type` string, nullable
      - `tags` union
        - string[]
        - string
      - `first_email_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_email_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `first_meeting_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_meeting_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `next_meeting` union
        - string, date-time
        - number — Unix seconds or milliseconds.
    - `primary_contact` ContactInput
      - `email` string, email, required
      - `first_name` string, nullable
      - `last_name` string, nullable
      - `full_name` string, nullable
      - `job_title` string, nullable
      - `phone` string, nullable
      - `seniority` string, nullable
      - `linkedin` string, nullable
      - `twitter` string, nullable
      - `twitter_followers` number, nullable
      - `current_company` string, nullable
      - `other_emails` union
        - string[]
        - string
      - `type` string, nullable
      - `avatar_url` string, nullable
      - `email_verified` boolean, nullable
      - `first_email_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_email_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `first_meeting_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_meeting_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `next_meeting` union
        - string, date-time
        - number — Unix seconds or milliseconds.
    - `additional_contacts` ContactInput[], nullable
      - `email` string, email, required
      - `first_name` string, nullable
      - `last_name` string, nullable
      - `full_name` string, nullable
      - `job_title` string, nullable
      - `phone` string, nullable
      - `seniority` string, nullable
      - `linkedin` string, nullable
      - `twitter` string, nullable
      - `twitter_followers` number, nullable
      - `current_company` string, nullable
      - `other_emails` union
        - string[]
        - string
      - `type` string, nullable
      - `avatar_url` string, nullable
      - `email_verified` boolean, nullable
      - `first_email_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_email_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `first_meeting_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_meeting_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `last_interaction` union
        - string, date-time
        - number — Unix seconds or milliseconds.
      - `next_meeting` union
        - string, date-time
        - number — Unix seconds or milliseconds.
    - `owner_email` string, email, nullable
    - `owner_id` string, uuid, nullable

## Response `200`

Opportunities were created or skipped as duplicates.

- ApiResponse
  - `success` boolean
  - `message` string
  - `data` unknown

## Other responses

- `201` — Opportunities were created or skipped as duplicates.
- `400` — The request failed validation.
- `401` — The API key is missing, invalid, or not allowed to access this route.
- `429` — The route rate limit was exceeded.

---

[API](https://skmtc.net/octolane-org/apis/octolane-public-api.md) · [All operations](https://skmtc.net/octolane-org/apis/octolane-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/octolane-org/octolane-public-api/revisions/d248d0a2be5d/schema)
