PHPackages                             ucscode/php-listmonk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ucscode/php-listmonk

ActiveLibrary[API Development](/categories/api)

ucscode/php-listmonk
====================

Listmonk API Implementation in PHP

v0.1.1(4mo ago)05MITPHPPHP &gt;=7.4

Since Feb 28Pushed 4mo agoCompare

[ Source](https://github.com/ucscode/php-listmonk)[ Packagist](https://packagist.org/packages/ucscode/php-listmonk)[ Docs](https://github.com/junisan/php-listmonk)[ RSS](/packages/ucscode-php-listmonk/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (3)Used By (0)

PHP Listmonk API
================

[](#php-listmonk-api)

Implementation of the Listmonk API in PHP. It requires PHP &gt;= 7.4.

A clean, object-oriented PHP client for the Listmonk API.

This package provides a structured and model-driven way to interact with a Listmonk instance, including:

- Subscriber management
- List management
- Campaign management
- Pagination handling
- Strongly typed models

It wraps the Listmonk REST API into dedicated services and models for predictable and maintainable usage.

---

Installation
------------

[](#installation)

Install via Composer:

```
composer require ucscode/php-listmonk
```

---

Configuration
-------------

[](#configuration)

Initialize the API client with your Listmonk API URL and credentials:

```
use Junisan\ListmonkApi\API\ListmonkPHP;

$api = new ListmonkPHP('https://listmonk-domain.com/api', [
    'username' => 'api-username',
    'password' => 'api-token',
]);
```

---

Available Services
------------------

[](#available-services)

The client exposes three API services:

```
$subscriberApi = $api->getSubscribersApi();
$listApi       = $api->getListsApi();
$campaignApi   = $api->getCampaignsApi();
```

Each service contains methods specific to its domain.

---

Subscriber API
==============

[](#subscriber-api)

Create Subscriber
-----------------

[](#create-subscriber)

```
use Junisan\ListmonkApi\Models\SubscriberModel;
use Junisan\ListmonkApi\Models\SubscriberAttributesModel;

$model = (new SubscriberModel())
    ->setName('Example')
    ->setEmail('email@example.com')
    ->setStatus('enabled') // enabled, disabled, etc.
    ->setLists([]) // optional: list IDs
    ->setAttributes(new SubscriberAttributesModel()); // optional

$subscriber = $subscriberApi->createSubscriber($model);
```

Returns a `SubscriberModel` with populated `id` and `uuid` if successful.

You may optionally pass:

```
$subscriberApi->createSubscriber($model, true); // preconfirmed subscriptions
```

---

Get Subscriber
--------------

[](#get-subscriber)

By Email:

```
$subscriber = $subscriberApi->getSubscriberByEmail('email@example.com');
```

By ID:

```
$subscriber = $subscriberApi->getSubscriberById(1);
```

---

Get All Subscribers (Paginated)
-------------------------------

[](#get-all-subscribers-paginated)

```
$paginator = $subscriberApi->getAllSubscriber(1, 100);

$subscribers = $paginator->getResults();
$total       = $paginator->getTotal();
```

Returns a `PaginatorModel`.

---

List API
========

[](#list-api)

Create List
-----------

[](#create-list)

```
use Junisan\ListmonkApi\Models\ListModel;

$list = (new ListModel())
    ->setName('Newsletter')
    ->setDescription('Main newsletter list')
    ->setIsPublic(true)
    ->setOptinSingle(true)
    ->setIsActive(true)
    ->setTags(['marketing', 'weekly']);

$createdList = $listApi->createList($list);
```

Returns a `ListModel` with `id` and `uuid`.

---

Get Lists
---------

[](#get-lists)

Get all lists:

```
$paginator = $listApi->getAllLists(1, 100);
```

Get list by ID:

```
$list = $listApi->getListById(1);
```

---

Campaign API
============

[](#campaign-api)

Create Campaign
---------------

[](#create-campaign)

```
use Junisan\ListmonkApi\Models\CampaignModel;

$campaign = (new CampaignModel())
    ->setName('January Campaign')
    ->setSubject('Welcome to our newsletter')
    ->setBody('Hello World')
    ->setType('regular')
    ->setContentType('html')
    ->setStatus('draft')
    ->setListIds([1, 2])
    ->setTags(['monthly']);

$createdCampaign = $campaignApi->createCampaign($campaign);
```

---

Get Campaigns
-------------

[](#get-campaigns)

```
$paginator = $campaignApi->getAllCampaigns(1, 100);
```

Get single campaign:

```
$campaign = $campaignApi->getCampaignById(1);
```

---

Change Campaign Status
----------------------

[](#change-campaign-status)

```
$updated = $campaignApi->changeCampaignStatus(1, 'running');
```

Common statuses:

- draft
- scheduled
- running
- paused
- cancelled

---

Preview Campaign
----------------

[](#preview-campaign)

```
$htmlPreview = $campaignApi->previewCampaign(1);
```

Returns rendered HTML preview or null.

---

Models Overview
===============

[](#models-overview)

CampaignModel
-------------

[](#campaignmodel)

Represents a Listmonk campaign.

Includes:

- Basic data (status, name, subject, body)
- Target lists (`listIds`)
- Tags
- Scheduling (`sendAt`)
- Advanced fields (`templateId`, `fromEmail`, etc.)
- Statistics (`views`, `clicks`, `bounces`)

---

ListModel
---------

[](#listmodel)

Represents a subscriber list.

Key properties:

- name
- description
- isPublic
- optinSingle
- isActive
- tags

---

SubscriberModel
---------------

[](#subscribermodel)

Represents a subscriber.

Key properties:

- name
- email
- status
- attributes
- lists

Lists may be either:

- Array of list IDs
- Array of `ListSubscriptionModel`

---

Pagination
==========

[](#pagination)

Methods returning multiple results provide a `PaginatorModel`, which typically includes:

- Current page
- Per page
- Total records
- Data collection

---

Requirements
============

[](#requirements)

- PHP 8+
- PSR-18 HTTP client (optional but supported)
- Listmonk API access enabled

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance77

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

125d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/65673b1b31e87471999a7614d107e7e061a38bf72191d149c66c1b943124e09c?d=identicon)[ucscode](/maintainers/ucscode)

---

Top Contributors

[![ucscode](https://avatars.githubusercontent.com/u/34024404?v=4)](https://github.com/ucscode "ucscode (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ucscode-php-listmonk/health.svg)

```
[![Health](https://phpackages.com/badges/ucscode-php-listmonk/health.svg)](https://phpackages.com/packages/ucscode-php-listmonk)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M984](/packages/statamic-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M47](/packages/tencentcloud-tencentcloud-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[avalara/avataxclient

Client library for Avalara's AvaTax suite of business tax calculation and processing services. Uses the REST v2 API.

528.5M7](/packages/avalara-avataxclient)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
