---
title: "Create a Sequence"
method: POST
path: "/sequences"
tags: ["Sequences"]
---

# Create a Sequence

`POST /sequences`

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/4409237165837-Sequences-Overview" target="_blank">Sequences</a> are outreach campaigns that sales teams use to reach out to contacts over a planned period of time.<br><br>Use the Create a Sequence endpoint to create a new sequence in your team's Apollo account, including its steps and email templates.<br><br>To create a sequence with steps, add the `emailer_steps` array to the request body. Each email step (`auto_email`, `manual_email`) can include one or more `emailer_touches` (email variants); adding more than one touch to a step creates an A/B test, which requires a plan with A/B testing access.<br><br>To activate the sequence immediately after creation, set `active` to `true`. Email touches only send if their `status` is `approved`, and a touch can only be approved if its template has a non-empty body.<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
  - `name` string — A human-readable name for the sequence. <br><br>Example: `Q3 Outbound Outreach`
  - `permissions` string — Set who can use or view the sequence within your team. Choose 1 of the following options: <ul><li>`team_can_use`: All team members can use the sequence. (default)</li><li>`team_can_view`: Team members can view, but not use, the sequence.</li><li>`private`: Only the sequence owner can view and use the sequence.</li></ul>
  - `active` boolean — Set to `true` to activate the sequence immediately after creation so contacts added to it start receiving steps. If omitted or `false`, the sequence is created in an inactive state.
  - `emailer_schedule_id` string — The Apollo ID for the schedule that controls the days and times emails are sent. The schedule must belong to your team and must not be empty.
  - `user_id` string — The Apollo user ID for the owner of the sequence. Defaults to the user that owns the API key.
  - `label_names` string[] — Add the names of lists (labels) to apply to the sequence. Labels that do not exist yet are created. <br><br>Example: `["Outbound", "Q3"]`
  - `folder_id` string — The Apollo ID for the folder in which to place the sequence.
  - `sequence_by_exact_daytime` boolean — Set to `true` to schedule every step at an exact date and time (`exact_datetime` becomes required on each step) instead of using relative wait intervals (`wait_time`/`wait_mode`).
  - `max_emails_per_day` integer — The maximum number of emails the sequence sends per day. Must not be negative.
  - `mark_finished_if_reply` boolean — Set to `true` to mark contacts as finished in the sequence when they reply to an email.
  - `mark_finished_if_click` boolean — Set to `true` to mark contacts as finished in the sequence when they click a link in an email.
  - `mark_finished_if_interested` boolean — Set to `true` to mark contacts as finished in the sequence when they are marked as interested.
  - `mark_paused_if_ooo` boolean — Set to `true` to pause contacts in the sequence when an out-of-office auto-reply is detected.
  - `days_to_wait_before_mark_as_response` integer — The number of days to wait before an incoming email is no longer treated as a response to the sequence.
  - `create_task_if_email_open` boolean — Set to `true` to automatically create a task when a contact opens an email a certain number of times. Use `email_open_trigger_task_threshold` to set the number of opens.
  - `email_open_trigger_task_threshold` integer — The number of email opens that triggers task creation when `create_task_if_email_open` is `true`.
  - `same_account_reply_delay_days` integer — The number of days to pause other contacts at the same account after a reply is received. The maximum value is `1000`.
  - `excluded_account_stage_ids` string[] — The Apollo IDs for account stages to exclude from the sequence. All IDs must belong to your team.
  - `excluded_contact_stage_ids` string[] — The Apollo IDs for contact stages to exclude from the sequence. All IDs must belong to your team.
  - `ignore_apollo_global_email_bounce_list` boolean — Set to `true` to send emails to contacts even if their email address is on Apollo's global bounce list.
  - `sequence_ruleset_id` string — The Apollo ID for an existing sequence ruleset to apply shared sequence settings.
  - `emailer_steps` object[] — The steps to create in the sequence. Steps run in the order they appear in this array; the first item becomes the first step. There is no separate ordering field on input.
    - `type` string — The type of step. Choose 1 of the following options: <ul><li>`auto_email`: An email that Apollo sends automatically.</li><li>`manual_email`: An email task that a user sends manually.</li><li>`call`: A phone call task.</li><li>`action_item`: A general to-do task.</li><li>`linkedin_step_connect`: A LinkedIn connection request task.</li><li>`linkedin_step_message`: A LinkedIn message task.</li><li>`linkedin_step_view_profile`: A LinkedIn profile view task.</li><li>`linkedin_step_interact_post`: A LinkedIn post interaction task.</li></ul>Step types other than `auto_email` require a plan with access to basic task functions.
    - `wait_time` integer — How long to wait after the previous step before this step runs. Required (along with `wait_mode`) unless the sequence uses `sequence_by_exact_daytime`. <br><br>Example: `2`
    - `wait_mode` string — The unit for `wait_time`. Choose 1 of the following options: `minute`, `hour`, `day`.
    - `exact_datetime` string — The exact date and time at which the step runs, in ISO 8601 format. Required for each step when `sequence_by_exact_daytime` is `true`; must be in the future and later than the datetimes of all previous steps.
    - `priority` string — The priority of the task created for the step. Choose 1 of the following options: `high`, `medium`, `low`. Not applicable to `auto_email` steps.
    - `note` string — A note describing the step (for example, call talking points or action item instructions).
    - `max_emails_per_day` integer — The maximum number of emails to send per day for this step.
    - `auto_skip_in_x_days` integer — Automatically skip the task for this step if it is not completed within the given number of days.
    - `emailer_touches` object[] — The email variants for the step. Applies to `auto_email`, `manual_email`, `linkedin_step_message`, `linkedin_step_connect`, and `call` steps. Adding more than 1 touch to a step creates an A/B test, which requires a plan with A/B testing access.
      - `type` string — How the email threads with earlier steps. Choose 1 of the following options: <ul><li>`new_thread`: Start a new email thread.</li><li>`reply_to_thread`: Reply to the thread started by a previous step. A `reply_to_thread` touch must come after a step that starts a new thread.</li></ul>
      - `status` string — The review status of the touch. Choose 1 of the following options: <ul><li>`approved`: The touch is approved and will be sent. Requires a template with a non-empty body.</li><li>`to_be_reviewed`: The touch requires review before it sends. (default)</li></ul>
      - `include_signature` boolean — Set to `true` to append the sending user's email signature to the email.
      - `emailer_template` object — The email content for the touch. Provide `id` to update an existing template that your team owns, or omit `id` to create a new template.
        - `id` string — The Apollo ID for an existing email template to use and update.
        - `subject` string — The subject line for the email. Supports dynamic variables such as `{{first_name}}`. Leave empty on a `reply_to_thread` touch to reuse the thread's subject.
        - `body_html` string — The HTML body for the email. Supports dynamic variables such as `{{first_name}}`. The HTML is sanitized; unsafe tags and attributes are removed.
      - `attachment_ids` string[] — The Apollo IDs for attachments to include with the email.

## Response `200`

200

- object
  - `emailer_campaign` object — The newly created sequence, including its settings, aggregate email stats (`loading` until computed), contact status counts, and sharing permissions.
    - `id` string
    - `name` string
    - `active` boolean
    - `permissions` string
    - `user_id` string
    - `emailer_schedule_id` string
    - `num_steps` integer
    - `creation_type` string
    - `created_at` string
  - `emailer_steps` object[] — The steps created in the sequence.
    - `id` string
    - `emailer_campaign_id` string
    - `position` integer
    - `type` string
    - `wait_time` integer
    - `wait_mode` string
  - `emailer_touches` object[] — The email variants created for each step, with their review status and per-touch email stats.
    - `id` string
    - `emailer_step_id` string
    - `emailer_template_id` string
    - `status` string
    - `type` string
  - `emailer_templates` object[] — The email templates created or updated for the sequence's touches.
    - `id` string
    - `subject` string
    - `body_html` string
  - `attachments` object[]

## Other responses

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

---

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