Skip to main content
Use a secret key client for campaign methods.
import Mailrify from 'mailrify';

const client = new Mailrify(process.env.MAILRIFY_SECRET_KEY as string);

List campaigns (campaigns.list)

const page = await client.campaigns.list({
  page: 1,
  pageSize: 20,
  status: 'DRAFT'
});

console.log(page.total, page.totalPages, page.data.length);

Create a campaign (campaigns.create)

Audience: all contacts

const campaignAll = await client.campaigns.create({
  name: 'Launch campaign',
  subject: 'Introducing our new feature',
  body: '<h1>Big news</h1><p>Check out what is new.</p>',
  from: '[email protected]',
  audienceType: 'ALL'
});

console.log(campaignAll.id, campaignAll.status);

Audience: filtered contacts

const campaignFiltered = await client.campaigns.create({
  name: 'Subscribed users campaign',
  subject: 'Feature update',
  body: '<p>Only subscribed users receive this.</p>',
  from: '[email protected]',
  audienceType: 'FILTERED',
  audienceCondition: {
    logic: 'AND',
    groups: [
      {
        filters: [{ field: 'subscribed', operator: 'equals', value: true }]
      }
    ]
  }
});

console.log(campaignFiltered.id);

Audience: segment

const campaignSegment = await client.campaigns.create({
  name: 'Segment campaign',
  subject: 'Offer for premium users',
  body: '<p>This goes to one saved segment.</p>',
  from: '[email protected]',
  audienceType: 'SEGMENT',
  segmentId: 'seg_123'
});

console.log(campaignSegment.id);

Get one campaign (campaigns.get)

const campaign = await client.campaigns.get(campaignAll.id);

console.log(campaign.name, campaign.status);

Update a campaign (campaigns.update)

const updated = await client.campaigns.update(campaignAll.id, {
  subject: 'Updated subject line',
  replyTo: '[email protected]'
});

console.log(updated.subject, updated.replyTo);

Send a campaign now (campaigns.send)

await client.campaigns.send(campaignAll.id);

Schedule a campaign (campaigns.send with scheduledFor)

await client.campaigns.send(campaignAll.id, {
  scheduledFor: '2026-03-01T10:00:00Z'
});

Send a test email (campaigns.test)

const testResult = await client.campaigns.test(campaignAll.id, '[email protected]');

console.log(testResult.success, testResult.message);

Fetch campaign stats (campaigns.stats)

const stats = await client.campaigns.stats(campaignAll.id);

console.log(stats.success, stats.data);

Cancel a scheduled campaign (campaigns.cancel)

const cancelled = await client.campaigns.cancel(campaignAll.id);

console.log(cancelled.success, cancelled.message);
See full details in the Campaigns API reference.