Instantly Campaign Subsequence API

A subsequence entity representing a follow-up sequence

Operations 11

POST /api/v2/subsequences Create campaign subsequence #
GET /api/v2/subsequences List campaign subsequence #
POST /api/v2/subsequences/{id}/duplicate Duplicate a subsequence #
POST /api/v2/subsequences/{id}/pause Pause a subsequence #
POST /api/v2/subsequences/{id}/resume Resume a paused subsequence #
GET /api/v2/subsequences/analytics Get subsequence analytics summary #
GET /api/v2/subsequences/{id} Get campaign subsequence #
PATCH /api/v2/subsequences/{id} Patch campaign subsequence #
DELETE /api/v2/subsequences/{id} Delete campaign subsequence #
GET /api/v2/subsequences/{id}/analytics/steps Get subsequence step and variant analytics #
GET /api/v2/subsequences/{id}/sending-status Get subsequence sending status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/instantly-ai-campaignsubsequence-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

instantly-ai-campaignsubsequence-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Explorer Campaign Subsequence API
  description: The entire API V2 documentation is interactive and can be tested here. To the right side of every endpoint you will see a box with an example request. You can click on the "Try it" button to send a request to the server right from the docs. You will need to provide an API key by clicking the `ApiKeyAuth_token` blue text.
  version: 2.0.0
servers:
- url: https://api.instantly.ai
  description: Instantly API Server
security:
- ApiKeyAuth: []
tags:
- name: CampaignSubsequence
  description: A subsequence entity representing a follow-up sequence
  x-group: Campaign Subsequence
paths:
  /api/v2/subsequences:
    post:
      operationId: createCampaignSubsequence
      summary: Create campaign subsequence
      tags:
      - CampaignSubsequence
      description: 'Requires one of the following scopes: `subsequences:create`, `subsequences:all`, `all:create`, `all:all`'
      requestBody:
        content:
          application/json:
            schema:
              title: CreateCampaign Subsequence
              description: The Campaign Subsequence to create
              type: object
              properties:
                parent_campaign:
                  type: string
                  description: ID of the parent campaign
                  format: uuid
                  example: 019ffad2-5cc7-76f5-9fd3-25f990e43646
                name:
                  type: string
                  description: Name of the subsequence
                  example: Follow-up sequence
                conditions:
                  type: object
                  description: Conditions that trigger the subsequence
                  properties:
                    crm_status:
                      type: array
                      description: Lead CRM statuses that trigger the subsequence. Accepts the built-in statuses listed below, or the interest status of a custom lead label.
                      items:
                        type: number
                        minimum: -30000
                        maximum: 30000
                        x-enumDescriptions:
                          '0': Out of Office
                          '1': Interested
                          '2': Meeting Booked
                          '3': Meeting Completed
                          '4': Won
                          '-1': Not Interested
                          '-2': Wrong Person
                          '-3': Lost
                          '-4': No Show
                        example: 1
                    lead_activity:
                      type: array
                      description: Lead activities that trigger the subsequence.
                      items:
                        type: number
                        enum:
                        - 4
                        - 91
                        - 2
                        x-enumDescriptions:
                          '2': Email Opened - Triggered when a lead opens an email
                          '4': Email Link Clicked - Triggered when a lead clicks a link in an email
                          '91': Campaign Completed Without Reply - Triggered when a campaign completes for a lead without receiving a reply
                        example: 4
                    reply_contains:
                      type: string
                      example: 'yes'
                subsequence_schedule:
                  type: object
                  description: Schedule configuration for the subsequence. When omitted on create, inherits the parent campaign's schedule.
                  properties:
                    start_date:
                      type:
                      - string
                      - 'null'
                      format: date
                      description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
                      example: '2025-09-25'
                    end_date:
                      type:
                      - string
                      - 'null'
                      format: date
                      description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
                      example: '2025-09-25'
                    schedules:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            example: My Schedule
                          timing:
                            type: object
                            properties:
                              from:
                                type: string
                                pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
                                example: 09:00
                              to:
                                type: string
                                pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
                                example: '17:00'
                            required:
                            - from
                            - to
                          days:
                            type: object
                            minProperties: 1
                            properties:
                              '0':
                                type: boolean
                                example: true
                              '1':
                                type: boolean
                                example: true
                              '2':
                                type: boolean
                                example: true
                              '3':
                                type: boolean
                                example: true
                              '4':
                                type: boolean
                                example: true
                              '5':
                                type: boolean
                                example: false
                              '6':
                                type: boolean
                                example: false
                          timezone:
                            type: string
                            enum:
                            - Etc/GMT+12
                            - Etc/GMT+11
                            - Etc/GMT+10
                            - America/Anchorage
                            - America/Dawson
                            - America/Creston
                            - America/Chihuahua
                            - America/Boise
                            - America/Belize
                            - America/Chicago
                            - America/Bahia_Banderas
                            - America/Regina
                            - America/Bogota
                            - America/Detroit
                            - America/Indiana/Marengo
                            - America/Caracas
                            - America/Asuncion
                            - America/Glace_Bay
                            - America/Campo_Grande
                            - America/Anguilla
                            - America/Santiago
                            - America/St_Johns
                            - America/Sao_Paulo
                            - America/Argentina/La_Rioja
                            - America/Araguaina
                            - America/Godthab
                            - America/Montevideo
                            - America/Bahia
                            - America/Noronha
                            - America/Scoresbysund
                            - Atlantic/Cape_Verde
                            - Africa/Casablanca
                            - America/Danmarkshavn
                            - Europe/Isle_of_Man
                            - Atlantic/Canary
                            - Africa/Abidjan
                            - Arctic/Longyearbyen
                            - Europe/Belgrade
                            - Africa/Ceuta
                            - Europe/Sarajevo
                            - Africa/Algiers
                            - Africa/Windhoek
                            - Asia/Nicosia
                            - Asia/Beirut
                            - Africa/Cairo
                            - Asia/Damascus
                            - Europe/Bucharest
                            - Africa/Blantyre
                            - Europe/Helsinki
                            - Europe/Istanbul
                            - Asia/Jerusalem
                            - Africa/Tripoli
                            - Asia/Amman
                            - Asia/Baghdad
                            - Europe/Kaliningrad
                            - Asia/Aden
                            - Africa/Addis_Ababa
                            - Europe/Kirov
                            - Europe/Astrakhan
                            - Asia/Tehran
                            - Asia/Dubai
                            - Asia/Baku
                            - Indian/Mahe
                            - Asia/Tbilisi
                            - Asia/Yerevan
                            - Asia/Kabul
                            - Antarctica/Mawson
                            - Asia/Yekaterinburg
                            - Asia/Karachi
                            - Asia/Kolkata
                            - Asia/Colombo
                            - Asia/Kathmandu
                            - Antarctica/Vostok
                            - Asia/Dhaka
                            - Asia/Rangoon
                            - Antarctica/Davis
                            - Asia/Novokuznetsk
                            - Asia/Hong_Kong
                            - Asia/Krasnoyarsk
                            - Asia/Brunei
                            - Australia/Perth
                            - Asia/Taipei
                            - Asia/Choibalsan
                            - Asia/Irkutsk
                            - Asia/Dili
                            - Asia/Pyongyang
                            - Australia/Adelaide
                            - Australia/Darwin
                            - Australia/Brisbane
                            - Australia/Melbourne
                            - Antarctica/DumontDUrville
                            - Australia/Currie
                            - Asia/Chita
                            - Antarctica/Macquarie
                            - Asia/Sakhalin
                            - Pacific/Auckland
                            - Etc/GMT-12
                            - Pacific/Fiji
                            - Asia/Anadyr
                            - Asia/Kamchatka
                            - Etc/GMT-13
                            - Pacific/Apia
                            example: Etc/GMT+12
                        required:
                        - name
                        - timing
                        - days
                        - timezone
                      minItems: 1
                  required:
                  - schedules
                sequences:
                  type: array
                  description: List of sequences (the actual email copy). Even though this field is an array, only the first element is used, so please provide only one array item, and add the steps to that array
                  items:
                    type: object
                    properties:
                      steps:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                              - email
                              x-enumDescriptions:
                                email: This steps represents an email
                              description: Type of step. This has to be 'email' always - it's the only supported type for now
                              example: email
                            delay:
                              type: number
                              description: The delay value before sending the NEXT email. The unit is determined by the delay_unit field (defaults to days).
                              example: 2
                            delay_unit:
                              type: string
                              enum:
                              - minutes
                              - hours
                              - days
                              default: days
                              description: The unit of time for the delay value (minutes, hours, or days). Defaults to days for backward compatibility.
                              example: days
                            pre_delay:
                              type: number
                              description: The delay value before sending the FIRST email in a subsequence. **Only applicable to subsequences** - this field is ignored for regular campaigns. The unit is determined by the pre_delay_unit field (defaults to days).
                              example: 2
                            pre_delay_unit:
                              type: string
                              enum:
                              - minutes
                              - hours
                              - days
                              default: days
                              description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable to subsequences** - this field is ignored for regular campaigns. Defaults to days for backward compatibility.
                              example: days
                            variants:
                              type: array
                              items:
                                type: object
                                properties:
                                  subject:
                                    type: string
                                    example: Hello {{firstName}}
                                  body:
                                    type: string
                                    description: Email body HTML. Use `<br/>` tags for delivered email line breaks.
                                    example: Hey {{firstName}},<br/><br/>I hope you are doing well.
                                  v_disabled:
                                    type: boolean
                                    description: Whether this variant is disabled. By default, all the variants are enabled. Please set this to true if you want to disable this variant
                                    example: true
                                required:
                                - subject
                                - body
                              minItems: 1
                              maxItems: 26
                              contains:
                                type: object
                                not:
                                  properties:
                                    v_disabled:
                                      enum:
                                      - true
                                  required:
                                  - v_disabled
                          required:
                          - type
                          - delay
                          - variants
                    required:
                    - steps
                auto_variant_select:
                  type:
                  - object
                  - 'null'
                  description: Automatically select the winning variant for each step using open, click, or reply rate. Set to `null` to disable automatic selection.
                  properties:
                    trigger:
                      type: string
                      enum:
                      - reply_rate
                      - click_rate
                      - open_rate
                      examples:
                      - click_rate
                      example: click_rate
                  required:
                  - trigger
                daily_limit_mode:
                  type: string
                  description: Daily limit mode for the subsequence. "inherit" uses the parent campaign limit, "custom" uses a subsequence-specific limit, "unlimited" bypasses the campaign-level daily limit.
                  enum:
                  - inherit
                  - custom
                  - unlimited
                  example: inherit
                daily_limit:
                  type:
                  - number
                  - 'null'
                  description: Custom daily limit for the subsequence. Only used when `daily_limit_mode` is "custom".
                  example: 50
                ignore_account_daily_limit:
                  type: boolean
                  description: When enabled, the subsequence will send even when sending accounts have reached their daily limit.
                  example: false
              required:
              - parent_campaign
              - name
              - conditions
              additionalProperties: false
        required: true
        description: The Campaign Subsequence to create
      responses:
        '200':
          description: The Campaign Subsequence
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignSubsequence'
        '400':
          description: Invalid request body (e.g. missing required fields, or invalid field values)
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 400
                    examples:
                    - 400
                    example: 400
                  error:
                    type: string
                    enum:
                    - Bad Request
                    examples:
                    - Bad Request
                    example: Bad Request
                  message:
                    type: string
                    examples:
                    - body must have required property 'name'
                    example: body must have required property 'name'
                required:
                - statusCode
                - error
                - message
        '401':
          description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key has been revoked)
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 401
                    examples:
                    - 401
                    example: 401
                  error:
                    type: string
                    enum:
                    - Unauthorized
                    examples:
                    - Unauthorized
                    example: Unauthorized
                  message:
                    type: string
                    examples:
                    - Missing Authorization header
                    example: Missing Authorization header
                required:
                - statusCode
                - error
                - message
        '402':
          description: This request cannot be fulfilled because the workspace does not have an active paid plan
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 402
                    examples:
                    - 402
                    example: 402
                  error:
                    type: string
                    enum:
                    - Payment Required
                    examples:
                    - Payment Required
                    example: Payment Required
                  message:
                    type: string
                    examples:
                    - Workspace does not have an active paid plan
                    example: Workspace does not have an active paid plan
                required:
                - statusCode
                - error
                - message
        '404':
          description: The requested resource was not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 404
                    examples:
                    - 404
                    example: 404
                  error:
                    type: string
                    enum:
                    - Not Found
                    examples:
                    - Not Found
                    example: Not Found
                  message:
                    type: string
                    examples:
                    - Resource not found
                    example: Resource not found
                required:
                - statusCode
                - error
                - message
        '429':
          description: You have exceeded the rate limit. Please check the rate limit docs for more information.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 429
                    examples:
                    - 429
                    example: 429
                  error:
                    type: string
                    enum:
                    - Too Many Requests
                    examples:
                    - Too Many Requests
                    example: Too Many Requests
                  message:
                    type: string
                    examples:
                    - Rate limit exceeded
                    example: Rate limit exceeded
                required:
                - statusCode
                - error
                - message
    get:
      operationId: listCampaignSubsequence
      summary: List campaign subsequence
      tags:
      - CampaignSubsequence
      description: 'Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`'
      parameters:
      - schema:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
        example: 10
        in: query
        name: limit
        required: false
        description: The number of items to return
      - schema:
          type: string
          example: 01956fbd-0eb1-72db-a565-82977a586084
        example: 01956fbd-0eb1-72db-a565-82977a586084
        in: query
        name: starting_after
        required: false
        description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after` field from the previous response.
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        example: 123e4567-e89b-12d3-a456-426614174000
        in: query
        name: parent_campaign
        required: false
        description: The ID of the campaign to list the subsequences of.
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        example: 123e4567-e89b-12d3-a456-426614174000
        in: query
        name: parent_campaign_not
        required: false
        description: The ID of a campaign to exclude subsequences of, returning reusable subsequences from the workspace's other campaigns instead.
      - schema:
          type: string
          example: test
        example: test
        in: query
        name: search
        required: false
        description: The search query to filter the subsequences by.
      responses:
        '200':
          description: The list of Campaign Subsequence
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    description: The list of Campaign Subsequence
                    items:
                      $ref: '#/components/schemas/CampaignSubsequence'
                  next_starting_after:
                    type: string
                    examples:
                    - 019ffad2-9c89-793f-9322-7fbe7cac60bb
                    - '2026-08-13T11:12:14.473Z'
                    description: The filter for getting the next items after this one, this could either be a UUID, a timestamp, on an email depending on the specific API
                    example: 019ffad2-9c89-793f-9322-7fbe7cac60bb
                additionalProperties: false
                required:
                - items
        '401':
          description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key has been revoked)
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 401
                    examples:
                    - 401
                    example: 401
                  error:
                    type: string
                    enum:
                    - Unauthorized
                    examples:
                    - Unauthorized
                    example: Unauthorized
                  message:
                    type: string
                    examples:
                    - Missing Authorization header
                    example: Missing Authorization header
                required:
                - statusCode
                - error
                - message
        '402':
          description: This request cannot be fulfilled because the workspace does not have an active paid plan
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 402
                    examples:
                    - 402
                    example: 402
                  error:
                    type: string
                    enum:
                    - Payment Required
                    examples:
                    - Payment Required
                    example: Payment Required
                  message:
                    type: string
                    examples:
                    - Workspace does not have an active paid plan
                    example: Workspace does not have an active paid plan
                required:
                - statusCode
                - error
                - message
        '404':
          description: The requested resource was not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 404
                    examples:
                    - 404
                    example: 404
                  error:
                    type: string
                    enum:
                    - Not Found
                    examples:
                    - Not Found
                    example: Not Found
                  message:
                    type: string
                    examples:
                    - Resource not found
                    example: Resource not found
                required:
                - statusCode
                - error
                - message
        '429':
          description: You have exceeded the rate limit. Please check the rate limit docs for more information.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 429
                    examples:
                    - 429
                    example: 429
                  error:
                    type: string
                    enum:
                    - Too Many Requests
                    examples:
                    - Too Many Requests
                    example: Too Many Requests
                  message:
                    type: string
                    examples:
                    - Rate limit exceeded
                    example: Rate limit exceeded
                required:
                - statusCode
                - error
                - message
  /api/v2/subsequences/{id}/duplicate:
    post:
      operationId: duplicateSubsequence
      summary: Duplicate a subsequence
      tags:
      - CampaignSubsequence
      description: 'Duplicate a subsequence with the same trigger conditions



        Requires one of the following scopes: `subsequences:create`, `subsequences:all`, `all:create`, `all:all`'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parent_campaign:
                  type: string
                  format: uuid
                  description: The ID of the campaign to duplicate the subsequence to.
                  example: 123e4567-e89b-12d3-a456-426614174000
                name:
                  type: string
                  description: The name of the duplicate subsequence. Defaults to the source subsequence name when omitted.
                  example: My Duplicate Subsequence
              required:
              - parent_campaign
        required: true
      parameters:
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        example: 123e4567-e89b-12d3-a456-426614174000
        in: path
        name: id
        required: true
        description: The ID of the subsequence to duplicate.
      responses:
        '200':
          description: The requested Campaign Subsequence
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignSubsequence'
        '401':
          description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key has been revoked)
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 401
                    examples:
                    - 401
                    example: 401
                  error:
                    type: string
                    enum:
                    - Unauthorized
                    examples:
                    - Unauthorized
                    example: Unauthorized
                  message:
                    type: string
                    examples:
                    - Missing Authorization header
                    example: Missing Authorization header
                required:
                - statusCode
                - error
                - message
        '402':
          description: This request cannot be fulfilled because the workspace does not have an active paid plan
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                    - 402
                    examples:
                    - 402
                    example: 402
                  error:
                    type: string
                    enum:
                    - Payment Required
                    examples:
                    - Payment Required
                    examp

# --- truncated at 32 KB (125 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/instantly-ai/refs/heads/main/openapi/instantly-ai-campaignsubsequence-api-openapi.yml