Documentation Index
Fetch the complete documentation index at: https://docs.mailglyph.com/llms.txt
Use this file to discover all available pages before exploring further.
Use a secret key client for campaign methods.
<?php
use MailGlyph\MailGlyph;
$client = new MailGlyph($_ENV['MAILGLYPH_SECRET_KEY']);
List campaigns (campaigns->list)
<?php
$page = $client->campaigns->list([
'page' => 1,
'pageSize' => 20,
'status' => 'DRAFT',
]);
echo $page['total'] . PHP_EOL;
echo $page['totalPages'] . PHP_EOL;
echo count($page['data']) . PHP_EOL;
Create a campaign (campaigns->create)
<?php
$campaignAll = $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',
]);
echo $campaignAll->id . PHP_EOL;
echo $campaignAll->status . PHP_EOL;
<?php
$campaignFiltered = $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],
],
],
],
],
]);
echo $campaignFiltered->id . PHP_EOL;
Audience: segment
<?php
$campaignSegment = $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',
]);
echo $campaignSegment->id . PHP_EOL;
Get one campaign (campaigns->get)
<?php
$campaign = $client->campaigns->get($campaignAll->id);
echo $campaign->name . PHP_EOL;
echo $campaign->status . PHP_EOL;
Update a campaign (campaigns->update)
<?php
$updated = $client->campaigns->update($campaignAll->id, [
'subject' => 'Updated subject line',
'replyTo' => '[email protected]',
]);
echo $updated->subject . PHP_EOL;
echo $updated->replyTo . PHP_EOL;
Send a campaign now (campaigns->send)
<?php
$sendResult = $client->campaigns->send($campaignAll->id);
var_dump($sendResult['success']);
echo $sendResult['message'] . PHP_EOL;
Schedule a campaign (campaigns->send with scheduledFor)
<?php
$scheduledResult = $client->campaigns->send($campaignAll->id, [
'scheduledFor' => '2026-03-01T10:00:00Z',
]);
var_dump($scheduledResult['success']);
echo $scheduledResult['message'] . PHP_EOL;
Send a test email (campaigns->test)
Fetch campaign stats (campaigns->stats)
<?php
$stats = $client->campaigns->stats($campaignAll->id);
echo $stats['sent'] . PHP_EOL;
echo $stats['opened'] . PHP_EOL;
Cancel a scheduled campaign (campaigns->cancel)
<?php
$cancelled = $client->campaigns->cancel($campaignAll->id);
echo $cancelled->status . PHP_EOL;
See full details in the Campaigns API reference.