---
updatedAt: 2026-08-31T21:12:32.000Z
agentTools:
  projectIndex: https://developers.activecampaign.com/llms.txt
---

# Send a test of a campaign

Send a test email of a campaign message to a single address. This is the v3 equivalent of the `test` action of the v1 `campaign_send` action.

The test is subject to the account's test-send limits and to sender-domain verification. Prefix the address with `+` to send through the regular mail server instead of the test mail server.

Responses are plain text, not JSON: `200` carries `test email sent`, and every caller-fixable failure (over the test limit, unverified sending domain, disallowed recipient, invalid RSS feed) carries `400` with the reason. `500` means the send failed without an attributable reason. 

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "v3",
    "version": "3"
  },
  "x-canonical-resources": {
    "description": "The resource a permission rule for an operation is granted on. Every operation's x-canonical-resource names an entry here, and every entry is named by at least one operation. An entry with a definition is a curated resource: its key is a snake_case entity name, or the path root it replaced when consumers already used that root. An entry without a definition is a placeholder that keeps the API's own path-root spelling until it is curated. scripts/lint_canonical_resources.py enforces all of this.",
    "resources": {
      "accountContacts": {
        "label": "Account contacts"
      },
      "account_user": {
        "label": "Account user",
        "definition": "A login/user who can access the ActiveCampaign tenant"
      },
      "activecampaign_account": {
        "label": "ActiveCampaign account",
        "definition": "The customer's hosted ActiveCampaign tenant and tenant-level settings"
      },
      "activity": {
        "label": "Activity",
        "definition": "A recorded activity"
      },
      "addressGroups": {
        "label": "Address groups"
      },
      "addressLists": {
        "label": "Address lists"
      },
      "addresses": {
        "label": "Addresses"
      },
      "automation": {
        "label": "Automation",
        "definition": "An automated workflow of triggers and actions that contacts enter and move through"
      },
      "brand_kit": {
        "label": "Brand Kit",
        "definition": "A customer's Brand Kit: name, colors, fonts, tone, and other identity fields used to personalize generated content"
      },
      "brandings": {
        "label": "Brandings"
      },
      "business_goal": {
        "label": "Business goal",
        "definition": "An Initiative: a business goal a customer tracks progress against, with associated conversion targets."
      },
      "calendars": {
        "label": "Calendars"
      },
      "campaign": {
        "label": "Campaign",
        "definition": "A campaign record and its campaign-level fields"
      },
      "campaign_message": {
        "label": "Campaign message",
        "definition": "The relationship that identifies messages belonging to a campaign"
      },
      "connections": {
        "label": "Connections"
      },
      "contact": {
        "label": "Contact",
        "definition": "A subscriber/person record managed by the tenant"
      },
      "contactAutomations": {
        "label": "Contact automation",
        "definition": "One contact's entry into an automation and its path through it"
      },
      "contactDeals": {
        "label": "Contact deals"
      },
      "contactLists": {
        "label": "Contact lists"
      },
      "contactTags": {
        "label": "Contact tags"
      },
      "content": {
        "label": "Content"
      },
      "content_manager_file": {
        "label": "Content manager file",
        "definition": "A file, such as an image or a PDF, stored in the account's Content Manager and shared with every user on the account"
      },
      "content_manager_folder": {
        "label": "Content manager folder",
        "definition": "A custom folder that organizes files in the account's Content Manager"
      },
      "conversion": {
        "label": "Conversion",
        "definition": "A tracked event or action with an optional dollar value, used to measure campaign/automation effectiveness"
      },
      "conversion_label": {
        "label": "Conversion label",
        "definition": "The association between a conversion and a label/folder, optionally carrying a business-goal target"
      },
      "conversion_trigger": {
        "label": "Conversion trigger",
        "definition": "A rule that fires a conversion for a contact -- by segment membership, a URL visit, a named event, a manual call, an automation/goal step, or an ecommerce order"
      },
      "crm_account": {
        "label": "CRM account",
        "definition": "A company or organization record associated with contacts"
      },
      "custom_field_definition": {
        "label": "Custom field definition",
        "definition": "Metadata describing a field"
      },
      "custom_field_value": {
        "label": "Custom field value",
        "definition": "A value stored for a specific record and field definition"
      },
      "custom_object_record": {
        "label": "Custom object record",
        "definition": "A custom object record: one item stored under a custom object schema, with values for that schema's fields"
      },
      "custom_object_schema": {
        "label": "Custom object schema",
        "definition": "A custom object schema: the definition of a custom object type, its fields and its relationships to other records"
      },
      "deal": {
        "label": "Deal",
        "definition": "A sales opportunity record managed in a pipeline"
      },
      "dealActivities": {
        "label": "Deal activities"
      },
      "dealGroup": {
        "label": "Deal group"
      },
      "dealGroups": {
        "label": "Deal groups"
      },
      "dealRoles": {
        "label": "Deal roles"
      },
      "dealStages": {
        "label": "Deal stages"
      },
      "dealTasktypes": {
        "label": "Deal task types"
      },
      "deal_task": {
        "label": "Deal task",
        "definition": "A task associated with a deal"
      },
      "ecomCustomers": {
        "label": "Ecom customers"
      },
      "ecomOrderProducts": {
        "label": "Ecom order products"
      },
      "ecomOrders": {
        "label": "Ecom orders"
      },
      "emailActivities": {
        "label": "Email activities"
      },
      "eventTracking": {
        "label": "Event tracking"
      },
      "eventTrackingEvents": {
        "label": "Event tracking events"
      },
      "fieldOption": {
        "label": "Field option"
      },
      "fieldRels": {
        "label": "Field relationships"
      },
      "forms": {
        "label": "Forms"
      },
      "geoIps": {
        "label": "Geo ips"
      },
      "group": {
        "label": "Group"
      },
      "groupDefinitions": {
        "label": "Group definitions"
      },
      "groupLimits": {
        "label": "Group limits"
      },
      "groupMembers": {
        "label": "Group members"
      },
      "groups": {
        "label": "Groups"
      },
      "import": {
        "label": "Import"
      },
      "legacy_segment": {
        "label": "Legacy segment",
        "definition": "A segment represented by legacy /segments operations"
      },
      "listGroups": {
        "label": "List groups"
      },
      "lists": {
        "label": "Lists"
      },
      "localevent": {
        "label": "Local event"
      },
      "message": {
        "label": "Message",
        "definition": "The message record referenced by a campaign-message association"
      },
      "note": {
        "label": "Note",
        "definition": "A note attached to a contact, deal, deal task, activity, or CRM account"
      },
      "personalizations": {
        "label": "Personalization tags",
        "definition": "A personalization tag: a placeholder that inserts a contact's own data into campaign and message content when it is sent"
      },
      "savedResponses": {
        "label": "Saved responses"
      },
      "saved_segment_summaries": {
        "label": "Saved Segment Summaries",
        "definition": "Saved Segment Summaries contain a high level view of a Saved Segment. Saved Segment Summaries can be listed or searched for by Segment Name via /audiences. Segment definitions returned by /segmentsV2 that have a name attribute are saved segments."
      },
      "segments": {
        "label": "Segments",
        "definition": "A segment definition comprising conditions and condition groups. Segments can be created, retrieved, updated, or deleted via /segmentsV2. A segment with a name attribute is a saved segment and its summary can be retrieved via /audiences."
      },
      "scores": {
        "label": "Scores"
      },
      "segment_membership": {
        "label": "Segment membership",
        "definition": "A request that evaluates whether contacts match segment criteria"
      },
      "siteTracking": {
        "label": "Site tracking"
      },
      "siteTrackingDomains": {
        "label": "Site tracking domains"
      },
      "sms_broadcast": {
        "label": "SMS",
        "definition": "An SMS broadcast message, its recipients and its delivery metrics"
      },
      "sms_credits": {
        "label": "SMS credits",
        "definition": "The account's SMS sending allowance for the current period"
      },
      "tags": {
        "label": "Tags"
      },
      "taskNotifications": {
        "label": "Task notifications"
      },
      "taskOutcomes": {
        "label": "Task outcomes"
      },
      "tasktypeOutcomeRels": {
        "label": "Task type outcomes"
      },
      "templates": {
        "label": "Templates"
      },
      "tracked_event": {
        "label": "Tracked event",
        "definition": "An event occurrence recorded through event tracking"
      },
      "webhook_event_type": {
        "label": "Webhook event type",
        "definition": "A configured webhook event category, not an occurrence log"
      },
      "webhooks": {
        "label": "Webhooks"
      },
      "whatsapp_conversation": {
        "label": "WhatsApp conversation",
        "definition": "A conversation with a contact in the WhatsApp inbox, and the status tracking its progress"
      },
      "whatsapp_flow": {
        "label": "WhatsApp flow",
        "definition": "One run of a WhatsApp Messaging flow: the automated conversation it ran and the contacts it took through it"
      },
      "whatsapp_message": {
        "label": "WhatsApp message",
        "definition": "A single WhatsApp message sent to a contact from an approved template"
      },
      "whatsapp_template": {
        "label": "WhatsApp template",
        "definition": "A pre-made WhatsApp message that Meta must approve before it is sent, with its category, content and variables"
      }
    }
  },
  "servers": [
    {
      "url": "https://{youraccountname}.api-us1.com/api/3",
      "variables": {
        "youraccountname": {
          "default": "youraccountname"
        }
      }
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "name": "Api-Token",
        "in": "header",
        "x-default": ""
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/campaigns/test-send": {
      "post": {
        "summary": "Send a test of a campaign",
        "description": "Send a test email of a campaign message to a single address. This is the v3 equivalent of the `test` action of the v1 `campaign_send` action.\n\nThe test is subject to the account's test-send limits and to sender-domain verification. Prefix the address with `+` to send through the regular mail server instead of the test mail server.\n\nResponses are plain text, not JSON: `200` carries `test email sent`, and every caller-fixable failure (over the test limit, unverified sending domain, disallowed recipient, invalid RSS feed) carries `400` with the reason. `500` means the send failed without an attributable reason. ",
        "operationId": "send-a-campaign-test",
        "x-canonical-resource": "campaign",
        "x-destructive": false,
        "x-bulk-operation": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "campaignId": {
                    "type": "integer",
                    "format": "int32",
                    "description": "ID of the campaign to test. Must be a JSON integer."
                  },
                  "messageId": {
                    "type": "integer",
                    "format": "int32",
                    "description": "ID of the message to test. Must be a JSON integer. For a split campaign this selects the variant."
                  },
                  "subject": {
                    "type": "string",
                    "description": "Subject line to use for the test message."
                  },
                  "toEmail": {
                    "type": "string",
                    "description": "Address the test is sent to. Prefix with `+` to use the regular mail server instead of the test mail server."
                  }
                },
                "required": [
                  "campaignId",
                  "messageId",
                  "subject",
                  "toEmail"
                ]
              },
              "examples": {
                "Request Example": {
                  "value": {
                    "campaignId": 1,
                    "messageId": 1,
                    "subject": "Test: Welcome!",
                    "toEmail": "someone@example.com"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "test email sent"
                  }
                },
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "exceeded test send limit"
                  }
                },
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "405": {
            "description": "405",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "Method not supported. Only POST supported."
                  }
                },
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "500",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "No Test Email was sent"
                  }
                },
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": false,
    "proxy-enabled": false
  },
  "x-readme-fauxas": true
}
```