Send Campaign

Send or schedule a campaign for delivery

MethodPOST
/api/v1/campaigns/{campaignId}/send

POST https://lumail.io/api/v1/campaigns/{campaignId}/send

Send a campaign immediately or schedule it for later delivery. Only campaigns in DRAFT status can be sent.

Response

  • Success (200 OK) - Campaign has been scheduled for sending.
  • Error (400 Bad Request) - Campaign is not in DRAFT status, missing unsubscribe link, or scheduledAt is in the past.
  • Error (400 Bad Request) - Campaign content verification detected cold email or phishing, or the verification service was unavailable. The response includes code, blockReasons, badges, documentationUrl, and guidance.
  • Error (404 Not Found) - Campaign not found or doesn't belong to your organization.
  • Error (401 Unauthorized) - Invalid or missing API token.

Path Parameters

ParameterTypeDescription
campaignIdstringRequired. The unique campaign ID

Request Body

FieldTypeDefaultDescription
scheduledAtstringISO 8601 datetime for scheduled delivery. Omit to send immediately.
timezonestring"UTC"Timezone for scheduling (e.g., "Europe/Paris", "America/New_York").

Response Fields

FieldTypeDescription
successbooleanIndicates if the operation was successful
campaign.idstringThe campaign ID
campaign.statusstringUpdated status (always "SCHEDULED")
campaign.scheduledAtstringThe scheduled send time in ISO 8601 format
campaign.timezonestringThe timezone used for scheduling
campaignIdstringThe campaign ID (convenience field)

Important Notes

  • Only DRAFT campaigns can be sent. Scheduled, sending, sent, or archived campaigns cannot be sent again.
  • Unsubscribe link required. Your campaign content must include {{unsubscribeUrl}}. The API will return an error if it's missing.
  • Content verification required. API sends use the same JEV policy as the Lumail editor and AI tools. Cold email and phishing are unsupported. A blocked response identifies the failed checks and links to the campaign content verification rules.
  • Omit scheduledAt to send immediately. The campaign will begin sending right away.
  • scheduledAt must be in the future. Past dates will return a 400 error.
  • Once sent, the campaign status transitions: DRAFTSCHEDULEDSENDINGSENT.

Usage Example

Use this API endpoint to:

  • Trigger campaign sends from your own application or CRM
  • Schedule campaigns for optimal delivery times
  • Build automated campaign workflows with external tools
  • Integrate campaign sending into CI/CD or marketing automation pipelines