---
title: "[DEPRECATED] Create a new email campaign"
method: POST
path: "/v3/user-api/create-campaign"
tags: ["Campaigns"]
deprecated: true
---

# \[DEPRECATED\] Create a new email campaign

`POST /v3/user-api/create-campaign`

## Request

- Base URL: `https://api.nureply.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nureply.com/v3/user-api/create-campaign`
- Auth: none declared. Required headers: `x-personal-api-key`

> **Deprecated.**

**⚠️ DEPRECATED:** Use `POST /user-api/mail-campaigns` instead. This endpoint will be removed on **March 1, 2026**.

Creates a new email marketing campaign with specified sequences, targeting, and configuration.

## Headers

- `x-personal-api-key` string, required

## Request body

- CreateCampaignRequestDto
  - `campaign` CreateMailcampaignDto, required
    - `name` string, required: Campaign name
    - `intervalMin` number, required: Minimum interval between emails in minutes
    - `intervalRandomUpTo` number, required: Random interval to add (0 to this value in minutes)
    - `sequences` SequenceDto[], required: Email sequences for the campaign
      - `name` string, required: Name of the email sequence step
      - `variations` union[], required: Array of sequence variation IDs or variation objects to create
        - union
          - string: MongoDB ObjectId of existing variation
          - object: New variation to create
      - `waitDaysBeforeNextStep` number, required: Days to wait before sending next sequence step
      - `selectionStrategy` 'random' | 'roundRobin' | 'weighted': Strategy for selecting variations
    - `userEmailAccounts` string[], required: Array of user email account IDs to send from. Can be empty if tags are provided.
    - `stopSendingAfterReply` boolean, required: Stop sending emails after receiving a reply
    - `stopSendingFollowUpAfterReply` boolean, required: Stop sending follow-up emails after receiving a reply
    - `stopSendingAfterClick` boolean, required: Stop sending emails after a link is clicked
    - `dailySendingLimit` number, required: Maximum emails to send per day
    - `isPaused` boolean, required: Whether the campaign is paused
    - `isCompleted` boolean, required: Whether the campaign is completed
    - `isDeleted` boolean, required: Whether the campaign is deleted
    - `isArchived` boolean, required: Whether the campaign is archived
    - `leadList` string, required: Lead list ID to send the campaign to
    - `openTrackingEnabled` boolean, required: Enable email open tracking
    - `clickTrackingEnabled` boolean, required: Enable link click tracking
    - `botFiltering` boolean, required: Enable bot filtering using global IP blocklist
    - `unsubscribeEnabled` boolean, required: Enable unsubscribe functionality
    - `timeZone` string, required: Campaign timezone (IANA timezone identifier)
    - `allowedDays` string[], required: Days when emails can be sent
    - `hourStart` string, required: Start hour for sending emails (HH:mm format)
    - `hourEnd` string, required: End hour for sending emails (HH:mm format)
    - `cc` string[]: CC email addresses
    - `bcc` string[]: BCC email addresses
    - `followUpPercentage` number, required: Percentage of leads to follow up with (0-100)
    - `winningMetric` 'replyRate' | 'clickRate' | 'openRate' | '': Metric to optimize for in A/B testing
    - `tags` string[]: Campaign tags for organization
    - `bounceThreshold` number, nullable: Bounce rate threshold to pause campaign (null for no threshold)
    - `subsequences` array[]: Draft subsequences to create alongside the campaign
      - unknown[]
        - unknown
    - `customESPRules` CustomESPRuleDto[]: Rules restricting which sender ESPs may mail which recipient ESPs
    - `emailDeliveryOptimization` EmailDeliveryOptimizationDto

## Response `201`

- CreateCampaignResponseDto
  - `message` string, required
  - `data` CampaignDto, required
    - `_id` string, required
    - `name` string, required
    - `intervalMin` number, required
    - `intervalRandomUpTo` number, required
    - `sequences` SequenceDto[], required
      - `name` string, required: Name of the email sequence step
      - `variations` union[], required: Array of sequence variation IDs or variation objects to create
        - union
          - string: MongoDB ObjectId of existing variation
          - object: New variation to create
      - `waitDaysBeforeNextStep` number, required: Days to wait before sending next sequence step
      - `selectionStrategy` 'random' | 'roundRobin' | 'weighted': Strategy for selecting variations
    - `userEmailAccounts` string[], required
    - `tags` string[], required
    - `customESPRules` string[], required
    - `stopSendingAfterReply` boolean, required
    - `stopSendingFollowUpAfterReply` boolean, required
    - `stopSendingAfterClick` boolean, required
    - `dailySendingLimit` number, required
    - `dailySendingLimitRemaining` number, required
    - `isPaused` boolean, required
    - `isCompleted` boolean, required
    - `isDeleted` boolean, required
    - `isArchived` boolean, required
    - `leadList` string, required
    - `openTrackingEnabled` boolean, required
    - `clickTrackingEnabled` boolean, required
    - `unsubscribeEnabled` boolean, required
    - `emailDeliveryOptimization` EmailDeliveryOptimizationDto, required
    - `user` string, required
    - `organization` string, required
    - `timeZone` string, required
    - `allowedDays` string[], required
    - `hourStart` string, required
    - `hourEnd` string, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `id` string, required

## Other responses

- `400`
- `401`

---

[API](https://skmtc.dev/nureply/apis/nureply-api.md) - [All operations](https://skmtc.dev/nureply/apis/nureply-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nureply/apis/nureply-api/revisions/a754b8b5eb0a?raw)
