---
title: "Bulk Create Tasks"
method: POST
path: "/tasks/bulk_create"
tags: ["Tasks"]
---

# Bulk Create Tasks

`POST /tasks/bulk_create`

This endpoint doesn't consume Apollo credits. Learn more about [API pricing and credits](https://docs.apollo.io/docs/api-pricing).

<a href="https://knowledge.apollo.io/hc/en-us/articles/28705458602125-Tasks-Overview" target="_blank">Tasks</a> let you track, prioritize, and help you complete actions required for your outbound sales motion.<br><br>Use the Bulk Create Tasks endpoint to create multiple tasks in a single API request. A separate task will be created for each contact provided. <br><br>This endpoint returns a `success` boolean and a `tasks` array containing the created tasks. <br><br>Apollo doesn't apply deduplication processes when you create a new task via the API. If your entry has the same task owner, contact, and other details as an existing task, Apollo creates a new task instead of updating the existing task. <br><br>For creating a single task, use the <a href="https://docs.apollo.io/reference/create-a-task">Create a Task endpoint</a> instead. <br><br>This endpoint requires a master API key. If you call the endpoint without a master key, you receive a `403` response. Check out <a href="https://docs.apollo.io/docs/create-api-key">Create an API Key</a> to learn how to create a master key.

## Request body

- object
  - `user_id` string, required — The ID for the task owner within your team's Apollo account. This is the user that will take action on the contacts. <br><br>Use the <a href="https://docs.apollo.io/reference/get-a-list-of-users" target="_blank">Get a List of Users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`
  - `contact_ids` string[], required — The Apollo IDs for the contacts that you want to be on the receiving end of the action. <br><br>If you add multiple contact IDs, individual tasks will be created for each of the contacts using the same task type, due date, and other details. <br><br>To find contact IDs, call the <a href="https://docs.apollo.io/reference/search-for-contacts" target="_blank">Search for Contacts endpoint</a> and identify the `id` value for the contact. <br><br>Example: `66e34b81740c50074e3d1bd4`
  - `type` string, required — Set the task to be 1 of the following task types. This enables the task owner to know the type of action they need to take. <ul> <li> `call`: Call the contacts. </li> <li> `outreach_manual_email`: Email the contacts. </li> <li> `linkedin_step_connect`: Send a LinkedIn invitation to connect with the contacts. </li> <li> `linkedin_step_message`: Send a direct message to the contacts' LinkedIn profiles. </li> <li> `linkedin_step_view_profile`: View the contacts' LinkedIn profiles. </li> <li> `linkedin_step_interact_post`: Interact with the contacts' recent LinkedIn posts. </li> <li> `action_item`: Take generic action for the contacts. If you use this task type, Apollo recommends using the `note` parameter too. </li> </ul>
  - `priority` string — Assign a priority to the task you are creating: <ul> <li> `high` </li> <li> `medium` </li> <li> `low` </li> </ul>
  - `status` string, required — The status of the task being created. For future-facing tasks, you should use the `scheduled` status. <br><br>For tasks that are already completed, you can use `completed` or `skipped`. <br><br>Example: `scheduled`
  - `due_at` string, date-time, required — The full date and time when the task will be due. <br><br>Your entry should adhere to the <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6" target="_blank">ISO 8601 date-time format</a>. Apollo uses Greenwich Mean Time (GMT) by default. If you do not account for time zone differences, you could add a task due date that falls on a different day than you intended. <br><br>The value you enter can either adhere to GMT, or you can adjust the time manually by specifying in hours and minutes how much you want to offset GMT.<br><br>Example: `2025-02-15T08:10:30Z`; `2025-03-25T10:15:30+05:00`
  - `note` string — Add a description for the task. This should be a human-readable message. <br><br>This parameter is not required, but it is recommended as it provides the task owner with more context on the action they need to take. <br><br>Example: `This contact expressed interest in the Sequences feature specifically. Be prepared to discuss.`

## Response `200`

200

- object
  - `success` boolean
  - `tasks` object[]
    - `emailer_campaign_id` unknown
    - `id` string
    - `user_id` string
    - `created_at` string
    - `completed_at` unknown
    - `note` unknown
    - `skipped_at` unknown
    - `due_at` string
    - `type` string
    - `priority` string
    - `status` string
    - `answered` unknown
    - `contact_id` unknown
    - `person_id` unknown
    - `account_id` unknown
    - `organization_id` unknown
    - `persona_ids` unknown[]
      - unknown
    - `subject` unknown
    - `created_from` unknown
    - `salesforce_type` unknown
    - `playbook_step_ids` unknown[]
      - unknown
    - `playbook_id` unknown
    - `needs_playbook_autoprospecting` unknown
    - `starred_by_user_ids` unknown[]
      - unknown
    - `salesforce_id` unknown
    - `hubspot_id` unknown
    - `opportunity_id` string
    - `title` string
    - `rule_config_id` unknown
    - `creator_id` string
    - `opportunity` object
      - `id` string
      - `team_id` string
      - `owner_id` string
      - `salesforce_owner_id` unknown
      - `amount` integer
      - `closed_date` string
      - `account_id` string
      - `description` unknown
      - `is_closed` boolean
      - `is_won` unknown
      - `name` string
      - `stage_name` unknown
      - `opportunity_stage_id` string
      - `source` string
      - `salesforce_id` unknown
      - `created_at` string
      - `actual_close_date` unknown
      - `next_step` string
      - `next_step_date` unknown
      - `closed_lost_reason` unknown
      - `closed_won_reason` unknown
      - `forecast_category` string
      - `deal_probability` integer
      - `created_by_id` string
      - `current_solutions` unknown
      - `deal_source` unknown
      - `manually_updated_probability` unknown
      - `manually_updated_forecast` unknown
      - `crm_id` unknown
      - `crm_record_url` unknown
      - `crm_owner_id` unknown
      - `probability` unknown
      - `opportunity_pipeline_id` string
      - `stage_updated_at` string
      - `next_step_last_updated_at` string
      - `exchange_rate_code` string
      - `exchange_rate_value` integer
      - `amount_in_team_currency` integer
      - `forecasted_revenue` integer
      - `last_activity_date` string
      - `existence_level` string
      - `typed_custom_fields` object
        - `6095a711bd01d100a506d4da` string[]
        - `6095a711bd01d100a506d4dc` string[]
        - `66e4ba346fe95a073461e00e` string[]
      - `opportunity_rule_config_statuses` unknown[]
        - unknown
      - `opportunity_contact_roles` object[]
        - `id` string
        - `contact_id` string
        - `is_primary` boolean
        - `created_at` string
        - `updated_at` string
        - `role` object[]
          - `opportunity_contact_role_type_id` string
          - `crm_role_id` unknown
          - `is_primary` boolean
          - `crm_id` unknown
      - `currency` object
        - `name` string
        - `iso_code` string
        - `symbol` string
      - `account` object
        - `id` string
        - `domain` string
        - `name` string
        - `team_id` string
        - `organization_id` string
        - `account_stage_id` string
        - `source` string
        - `original_source` string
        - `creator_id` unknown
        - `owner_id` unknown
        - `created_at` string
        - `phone` unknown
        - `phone_status` string
        - `hubspot_id` unknown
        - `salesforce_id` unknown
        - `crm_owner_id` unknown
        - `parent_account_id` unknown
        - `linkedin_url` unknown
        - `account_playbook_statuses` unknown[]
          - unknown
        - `account_rule_config_statuses` object[]
          - `_id` string
          - `created_at` unknown
          - `rule_action_config_id` string
          - `rule_config_id` string
          - `status_cd` string
          - `updated_at` unknown
          - `id` string
          - `key` string
        - `existence_level` string
        - `label_ids` string[]
        - `typed_custom_fields` object
        - `custom_field_errors` unknown
        - `modality` string
        - `source_display_name` string
        - `crm_record_url` unknown
        - `contact_emailer_campaign_ids` unknown[]
          - unknown
        - `contact_campaign_status_tally` object
        - `num_contacts` integer
        - `last_activity_date` unknown

## Other responses

- `401` — 401
- `403` — 403
- `422` — 422
- `429` — 429

---

[API](https://skmtc.net/apollo/apis/apollo-rest-api.md) · [All operations](https://skmtc.net/apollo/apis/apollo-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apollo/apollo-rest-api/versions/c715a05fa6e2/schema)
