- Installation
- Usage
- Optional PSR transport (no BC break)
- E-commerce (Products / Orders / Customers)
- Testing
- License
- PHP 7.4
- An API Key from MailerLite
- PSR-7 and PSR-18 based HTTP adapter
composer require mailerlite/mailerlite-phpIf you get an error saying “Could not find resource using any discovery strategy.” it means that all the discovery strategies have failed. Most likely, your project is missing the message factories and/or a PRS-7 implementation. To resolve this you may run
$ composer require php-http/curl-client guzzlehttp/psr7 php-http/messageMore information on request parameters: https://developers.mailerlite.com/docs/subscribers.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
'email' => 'subscriber@example.com',
];
$response = $mailerLite->subscribers->create($data);Single record
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$subscriberId = '123';
$response = $mailerLite->subscribers->find($subscriberId);All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->subscribers->get();use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$subscriberId = '123',
$data = [
'fields' => [
'name' => 'Example',
],
];
$response = $mailerLite->subscribers->update($subscriberId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$subscriberId = '123';
$response = $mailerLite->subscribers->delete($subscriberId);More information on request parameters: https://developers.mailerlite.com/docs/campaigns.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
'type' => 'regular',
'name' => 'My new campaign',
'language_id' => 10,
'emails' => [
[
'subject' => 'My new email',
'from_name' => 'me',
'from' => 'me@example.com',
'content' => 'Hello World!',
]
],
'filter' => [],
];
$response = $mailerLite->campaigns->create($data);Single record
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$campaignId = '123';
$response = $mailerLite->campaigns->find($campaignId);All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
'filter' => ['status' => 'sent'],
];
$response = $mailerLite->campaigns->get($data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$campaignId = '123';
$data = [
'name' => 'Changed campaign name',
'emails' => [
[
'subject' => 'Changed email subject',
'from_name' => 'Changed from name',
'from' => 'changed@example.com',
]
],
];
$response = $mailerLite->campaigns->update($campaignId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$campaignId = '123';
$response = $mailerLite->campaigns->delete($campaignId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$campaignId = '123';
$data = [
'delivery' => 'instant',
];
$response = $mailerLite->campaigns->schedule($campaignId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$campaignId = '123';
$response = $mailerLite->campaigns->cancel($campaignId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$campaignId = '123';
$data = [
'type' => 'opened',
];
$response = $mailerLite->campaigns->getSubscriberActivity($campaignId, $data);More information on request parameters: https://developers.mailerlite.com/docs/groups.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
"name" => "New group",
];
$response = $mailerLite->groups->create($data);Single record
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$groupId = '123';
$response = $mailerLite->groups->find($groupId);All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->groups->get();use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$groupId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->groups->update($groupId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$groupId = '123';
$response = $mailerLite->groups->delete($groupId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$groupId = '123';
$response = $mailerLite->groups->getSubscribers($groupId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$groupId = '123';
$subscriberId = '456';
$response = $mailerLite->groups->assignSubscriber($groupId, $subscriberId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$groupId = '123';
$subscriberId = '456';
$response = $mailerLite->groups->unAssignSubscriber($groupId, $subscriberId);More information on request parameters: https://developers.mailerlite.com/docs/segments.html
All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->segments->get();use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$segmentId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->segments->update($segmentId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$segmentId = '123';
$response = $mailerLite->segments->delete($segmentId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$segmentId = '123';
$response = $mailerLite->segments->getSubscribers($segmentId);More information on request parameters: https://developers.mailerlite.com/docs/fields.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
"name" => "New field",
"type" => "text",
];
$response = $mailerLite->fields->create($data);All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->fields->get();use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$fieldId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->fields->update($fieldId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$fieldId = '123';
$response = $mailerLite->fields->delete($fieldId);More information on request parameters: https://developers.mailerlite.com/docs/forms.html
All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->forms->get('popup', []);Single
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$formId = '123';
$response = $mailerLite->forms->find($formId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$formId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->forms->update($formId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$formId = '123';
$response = $mailerLite->forms->delete($formId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$formId = '123';
$response = $mailerLite->forms->getSignups($formId);More information on request parameters: https://developers.mailerlite.com/docs/automations.html
All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->automations->get([]);Single
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$automationId = '123';
$response = $mailerLite->automations->find($automationId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$automationId = '123';
$data = [
'filter' => [
'status' => 'active',
],
];
$response = $mailerLite->automations->activity($automationId, $data);More information on request parameters: https://developers.mailerlite.com/docs/webhooks.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
"name" => "Name",
"events" => ["subscriber.created"],
"url": "https://www.cartwright.info/eligendi-soluta-corporis-in-quod-ullam",
];
$response = $mailerLite->webhooks->create($data);All records
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->webhooks->get([]);Single
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$webhookId = '123';
$response = $mailerLite->webhooks->find($webhookId);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$webhookId = '123';
$data = [
"name" => "Updated name",
];
$response = $mailerLite->webhooks->update($webhookId, $data);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$webhookId = '123';
$response = $mailerLite->webhooks->delete($webhookId);More information about request parameters on https://developers.mailerlite.com/docs/campaign-languages.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->campaignLanguages->get();More information about request parameters on https://developers.mailerlite.com/docs/timezones.html
use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$response = $mailerLite->timezones->get();More information about request parameters on https://developers.mailerlite.com/docs/batching.html
E-commerce endpoints follow:
/api/ecommerce/shops/{shopId}/...shopId is provided per call (there is no separate /shops API).
Products
$res = $mailerLite->ecommerceProducts->create('YOUR_SHOP_ID', [
'title' => 'Red T-shirt',
'price' => 19.99,
'currency' => 'USD',
]);
$res = $mailerLite->ecommerceProducts->find('YOUR_SHOP_ID', 'PRODUCT_ID');
$res = $mailerLite->ecommerceProducts->update('YOUR_SHOP_ID', 'PRODUCT_ID', [
'title' => 'New title',
]);Orders
$res = $mailerLite->ecommerceOrders->create('YOUR_SHOP_ID', [
'order_id' => 'ORD-1001',
]);
$res = $mailerLite->ecommerceOrders->find('YOUR_SHOP_ID', 'ORD-1001');
$res = $mailerLite->ecommerceOrders->update('YOUR_SHOP_ID', 'ORD-1001', [
'status' => 'paid',
]);Customers
$res = $mailerLite->ecommerceCustomers->get('YOUR_SHOP_ID', ['limit' => 50]);
$res = $mailerLite->ecommerceCustomers->create('YOUR_SHOP_ID', ['email' => 'user@example.com']);
$res = $mailerLite->ecommerceCustomers->find('YOUR_SHOP_ID', 'CUSTOMER_ID');use MailerLite\MailerLite;
use MailerLite\Http\Adapters\Psr17FactoryAggregate;
use Nyholm\Psr7\Factory\Psr17Factory;
use GuzzleHttp\Client as GuzzleHttpClient;
$ml = new MailerLite(['api_key' => 'YOUR_API_KEY']);
$psr17 = new Psr17Factory();
$factories = new Psr17FactoryAggregate($psr17, $psr17);
$httpClient = new GuzzleHttpClient();
$ml->enablePsrTransport($httpClient, $factories, 'YOUR_API_KEY', 'https://connect.mailerlite.com');
$ml->subscribers->create(['email' => 'subscriber@example.com']);use MailerLite\MailerLite;
$mailerLite = new MailerLite(['api_key' => 'key']);
$data = [
'requests' => [
[
'method' => 'post',
'path' => 'api/subscribers',
'body' => [
'email' => 'new_subscriber@mail.com'
]
]
]
];
$response = $mailerLite->batches->send($data);composer testIn case you find any bugs, submit an issue directly here in GitHub.
You are welcome to create SDK for any other programming language.
If you have any troubles using our API or SDK free to contact our support by email info@mailerlite.com