Lumail
Product
Agents
PricingDocsChangelog
Log inSign up
IntroductionTutorialsAI IntegrationSDKAPI ReferenceIntegrationsFeaturesDeliverabilityWorkflows

Privacy & GDPR

GDPR in LumailData Processing Agreement (DPA) Status

Ship with Email

Choose an Email MCP for Claude Code, Then Ship the LaunchSend a Newsletter from Cursor, Then Ship the LaunchMove a Launch List from Kit Without Paying for Dormant Subscribers

Tutorials

Create an API TokenSend Transactional Email with SMTPSend React Email Templates with LumailBuild a V0 Capture PageDynamic Promo Codes with Webhooks

AI Integration

Claude Code (Plugin)Codex (Plugin)ChatGPT PluginHermesSkills (CLI)OpenClawCursor (MCP)TypeScript SDK IntegrationsTools API (v2)Examples & Recipes

SDK

SDK IntroductionSDK ConfigurationSDK ResourcesSDK ToolsErrors and Retries

API Reference

API TokensTypeScript SDKCLIMCP ServerTools API (v2)Admin Tools APIRate LimitsSMTP EndpointPOSTSend Transactional EmailPOSTSend Email in HTMLPOSTSend Email in MarkdownPOSTSend Email in TiptapPOSTEmail Verification APIPOSTCreate SubscriberGETGet SubscriberPATCHUpdate SubscriberPOSTUnsubscribe SubscriberPOSTAdd Tags to SubscriberDELETERemove Tags from SubscriberPOSTTrack EventGETGet Subscriber EventsGETGet All TagsPOSTCreate a TagGETList All CampaignsPOSTCreate CampaignGETGet CampaignPATCHUpdate CampaignDELETEDelete CampaignPOSTSend CampaignGETList SubscribersGETGet Tag by ID or Name

Integrations

ClickFunnels IntegrationSystemIO Integration

Features

Affiliate ProgramAccount VerificationLanguageVariablesTag Action LinksSurveysContent Deliverability CheckerSender HealthCampaign Delivery ScoreEmail Engagement ScoreSubscriber EventsRevenue TrackingEmail Sending Queue

Deliverability

How to strengthen DMARCHow to add DMARCHow to fix DKIMHow to verify a sending domainHow to fix MAIL FROMHow to fix BIMIHow to lower bounce rateHow to lower complaint rateHow to fix delivery delaysHow to fix blocklist bouncesHow to fix sending infrastructureHow to fix a dedicated IPHow to fix a failed sendHow to fix a fallback-domain sendHow to fix an invalid email parameterHow to fix sending rate or daily quotaHow to fix a monthly email limitHow to fix a past-due payment pauseHow to fix an admin sending pauseHow to complete additional verificationHow to fix a failed campaignHow to fix a campaign render error

Workflows

WorkflowWorkflow Getting StartedWorkflow TriggersWorkflow Manual EnrollmentWorkflow BranchingWorkflow A/B TestingWorkflow GoalsWorkflow Exit RulesWorkflow Publishing and VersionsWorkflow Test Runs and ResultsWait StepEmail StepAction StepWebhook StepWorkflow Groups

domains

Email DomainsWeb Domains

List All Campaigns

Retrieve a paginated list of campaigns in your Lumail account

https://lumail.io/api/v1/campaigns

Retrieve a paginated list of all campaigns in your organization. Filter by status and search by name or subject.

Response

  • Success (200 OK) - Returns a paginated array of campaign objects.
  • Error (401 Unauthorized) - Invalid or missing API token.

Query Parameters

ParameterTypeDefaultDescription
statusstringallFilter by status: all, DRAFT, ARCHIVED, SCHEDULED, SENT
pagenumber1Page number for pagination
limitnumber20Number of campaigns per page (max 100)
querystring-Search campaigns by name or subject
sortBystring-Sort order: name, name_desc (default: by date)

Response Fields

FieldTypeDescription
successbooleanIndicates if the operation was successful
campaignsarrayArray of campaign objects
campaigns[].idstringUnique identifier for the campaign
campaigns[].campaignIdstringSame as id (for consistency)
campaigns[].namestringName of the campaign
campaigns[].subjectstringEmail subject line
campaigns[].previewstring or nullPreview text for the email
campaigns[].statusstringCampaign status: DRAFT, SCHEDULED, SENDING, SENT
campaigns[].contentTypestringContent type: MAILY, PLATE, or MARKDOWN
PreviousCreate a TagNextCreate Campaign
MethodGET
Endpoint/api/v1/campaigns
Request Examples
import { Lumail } from "lumail";
const lumail = new Lumail({ apiKey: "YOUR_API_TOKEN" });

const { campaigns, total, pageCount } = await lumail.campaigns.list({
  status: "DRAFT",
  page: 1,
  limit: 20,
});
console.log(campaigns);
Response Examples
{
  "success": true,
  "campaigns": [
    {
      "id": "cmp_abc123xyz",
      "campaignId": "cmp_abc123xyz",
      "name": "Welcome Newsletter",
      "subject": "Welcome to our community!",
      "preview": "We're excited to have you...",
      "status": "DRAFT",
      "contentType": "MAILY",
      "sendAt": null,
      "scheduledAt": null,
      "recipientCount": 0,
      "emailsSentCount": 0,
      "emailsOpenedCount": 0,
      "emailsClickedCount": 0,
      "createdAt": "2025-01-15T10:30:00.000Z",
      "updatedAt": "2025-01-15T14:20:00.000Z"
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 20,
  "pageCount": 1
}
campaigns[].sendAtstring or nullISO timestamp when the campaign was sent
campaigns[].scheduledAtstring or nullISO timestamp when the campaign is scheduled
campaigns[].recipientCountnumberNumber of recipients
campaigns[].emailsSentCountnumberNumber of emails sent
campaigns[].emailsOpenedCountnumberNumber of emails opened
campaigns[].emailsClickedCountnumberNumber of emails clicked
campaigns[].createdAtstringISO timestamp when the campaign was created
campaigns[].updatedAtstringISO timestamp when the campaign was last updated
totalnumberTotal number of campaigns matching the filter
pagenumberCurrent page number
limitnumberNumber of items per page
pageCountnumberTotal number of pages

Usage Example

Use this API endpoint to:

  • Display all campaigns in your application dashboard
  • Build campaign management interfaces
  • Monitor campaign statuses and performance
  • Search for specific campaigns by name or subject
  • Implement pagination for large campaign lists

Related Documentation

  • Create Campaign - Create a new campaign
  • Get Campaign - Get details for a specific campaign
  • Update Campaign - Update a campaign
  • Delete Campaign - Delete a campaign

On This Page

ResponseQuery ParametersResponse FieldsUsage ExampleRelated Documentation