A PHP Library for interfacing with the Sendy newsletter system (http://sendy.co)

Installs: 5 189

Dependents: 0

Stars: 64

Watchers: 12

Forks: 22

Open Issues: 1

v1.2.1 2015-03-25 16:35 UTC


A PHP class built to interface with the Sendy API (http://sendy.co)


Using Composer

Begin by installing this package through Composer. Edit your project's composer.json file to require jacobbennett/sendyphp.

"require": {
    "jacobbennett/sendyphp": "1.2.*"

Next, update Composer from the Terminal:

composer update

Non-Composer Installation

  • Grab the src/SendyPHP.phpfile and place it into your file structure.
  • Require SendyPHP in the location you would like to utilize it.


Create an instance of the class while passing in an array including your API key, installation URL, and the List ID you wish to work with.

    $config = array(
        'api_key' => 'yourapiKEYHERE', //your API key is available in Settings
        'installation_url' => 'http://updates.mydomain.com',  //Your Sendy installation
        'list_id' => 'your_list_id_goes_here'

    $sendy = new \SendyPHP\SendyPHP($config);

    //you can change the list_id you are referring to at any point


After creating a new instance of SendyPHP call any of the methods below

Return Values

The return value of any of these functions will include both a status, and a message to go with that status.

The status is a boolean value of true or false and the message will vary based on the type of action being performed.

    //example of a succesful return value
        'message'=>'Already Subscribed'

    //example of a UNsuccesful return value
        'message'=>'Some fields are missing.'

I have commented and organized the code so as to be readable, if you have further questions on the status or messages being returned, please refer to the library comments.

subscribe(array $values)

This method takes an array of $values and will attempt to add the $values into the list specified in $list_id

    $results = $sendy->subscribe(array(
        'email' => 'Jim@gmail.com', //this is the only field required by sendy
        'customfield1' => 'customValue'

Note: Be sure to add any custom fields to the list in Sendy before utilizing them inside this library. Another Note: If a user is already subscribed to the list, the library will return a status of true. Feel free to edit the code to meet your needs.


Unsubscribes the provided e-mail address (if it exists) from the current list.

    $results = $sendy->unsubscribe('test@testing.com');


Returns the status of the user with the provided e-mail address (if it exists) in the current list.

    $results = $sendy->substatus('test@testing.com');

Note: refer to the code or see http://sendy.co/api for the types of return messages you can expect.


Returns the number of subscribers to the current list.

    $results = $sendy->subcount();

setListId($list_id) and getListId()

Change or get the list you are currently working with.

    //set or switch the list id

    //get the current list id
    echo $sendy->getListId();

Unit tests

All unit tests are located under src/test directory. To run the tests type in the below from the project root.

        php vendor/bin/phpunit src/test/SendyPHPTest.php

Ensure that the API keys are setup for testing :

        $config = [
            'api_key' => 'xxx', //your API key is available in Settings
            'installation_url' => 'http://my.sendy.installation.com',  //Your Sendy installation
            'list_id' => 'xxx'// List ID