campaignmonitor/createsend-php
A php library which implements the complete functionality of the Campaign Monitor API.
v7.1.1
6.2M downloads/mo
#2750 most downloaded on Packagist
campaignmonitor/createsend-php
What this package is like to depend on
Last release 1 years ago
18 Jun 2025
Ships fairly regularly
a new release about every 10 months
Nearly every release is documented
notes for 29 of 30 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
30 releases · first in 2012
0 releases in the last 12 months
see the full history below
Release timeline
30 releases · Oct 2012 to Jun 2025Releases
latest 30-
v7.1.118 Jun 2025Release notes
Open source →- Removed now redundant parameter
MarkupOnDesignSpamTestfrom client.set_payg_billing
- Removed now redundant parameter
-
v7.1.028 May 2024Release notes
Open source →- Update simpletest/simpletest package to verison 1.2.0
- Update test suite to support PHP 7
- Update package to support PHP 8
-
v7.0.011 Feb 2022Release notes
Open source →- Upgrades to Createsend API v3.3 which includes new breaking changes
- Breaking: client sent campaigns endpoint is now paginated and filtered
- Added new client tags endpoint
- Added support for returning campaign tags as part of sent, draft and scheduled campaign endpoints
- Added support for returning campaign name as part of campaign summary endpoint
- Added sample script for get client tags endpoint
- Adding support for returning ListJoinedDate for each subscriber.
- List.Active()
- List.Bounced()
- List.Unsubscribed()
- List.Unconfirmed()
- List.Deleted()
- Segment.Subscribers()
- Subscriber.Get()
-
v6.1.202 Oct 2021Release notes
Open source →- Changed local API timeout from 20 secs to 120 secs to cater for changes on get segment subscribers API endpoint.
-
v6.1.106 May 2020 -
v6.1.004 Sep 2019Release notes
Open source →- Added support for the Journeys API (https://www.campaignmonitor.com/api/journeys/)
-
v6.0.231 Jul 2019Nothing published for this version
-
v6.0.124 Jul 2019 -
v6.0.025 May 2018Release notes
Open source →Updated to use Campaign Monitor API v3.2
This contains breaking changes, see https://www.campaignmonitor.com/api/ for further details and check the HISTORY.md fileRelease notes
Open source →- Upgrades to Createsend API v3.2 which includes new breaking changes
- Breaking: 'Consent to track' field is now mandatory for sending smart and classic transactionl emails
- Breaking: 'Consent to track' field is now mandatory when adding or updating subscribers
- Optional 'Include tracking preference' field when retrieving lists of subscribers
-
v5.1.320 Apr 2018 -
5.1.215 May 2017 -
v5.0.219 Jul 2016 -
v5.0.114 Dec 2015Release notes
Open source →- Changed the fatal error thrown when unable to communicate with the API into a catchable Exception
-
v5.0.008 Dec 2015 -
v4.1.109 Sep 2015Release notes
Open source →- Fixed the transactional smart email call for get_list() so it now passes the client id
-
v4.1.005 Aug 2015 -
v4.0.229 Oct 2014 -
v4.0.130 May 2014 -
v4.0.006 Feb 2014Release notes
Open source →- Updated to v3.1 API
- Added support for new segments structure
-
Segment now includes a new
RuleGroupsmember, instead of aRulesmember.So for example, when you _previously_ would have created a segment like so: ```php $result = $wrap->create('Segments List ID', array( 'Title' => 'Segment Title', 'Rules' => array( array( 'Subject' => 'EmailAddress', 'Clauses' => array( 'CONTAINS example.com' ) ) , array( 'Subject' => '[customfield]', 'Clauses' => array( 'PROVIDED', 'EQUALS 1' ) ) ) )); ``` You would _now_ do this: ```php $result = $wrap->create('Segments List ID', array( 'Title' => 'Segment Title', 'RuleGroups' => array( array( 'Rules' => array( array( 'RuleType' => 'EmailAddress', 'Clause' => 'CONTAINS example.com' ) ) ) , array( 'Rules' => array( array( 'RuleType' => '[customfield]', 'Clause' => 'PROVIDED' ) , array( 'RuleType' => '[customfield]', 'Clause' => 'EQUALS 1' ) ) ) ) )); -
The Add Rule call is now Add Rule Group, taking a
ruleGroupargument instead of aruleargument.function CS_REST_Segments->add_rulegroup($rulegroup)So for example, when you previously would have added a rule like so:
$wrap = new CS_REST_Segments('Segment ID', $auth); $result = $wrap->add_rule(array( 'Subject' => 'EmailAddress', 'Clauses' => array('CONTAINS example.com') ));You would now do this:
$wrap = new CS_REST_Segments('Segment ID', $auth); $result = $wrap->add_rulegroup(array( 'Rules' => array( array( 'RuleType' => 'EmailAddress', 'Clause' => 'CONTAINS example.com' ) ) ));
-
- Removed the get_apikey method to promote usage of oAuth authentication
-
v3.1.309 Dec 2013 -
v3.1.228 Oct 2013Release notes
Open source →- Only set the
CURLOPT_CAINFOoption if not already set globally via the ini system.
- Only set the
-
v3.1.102 Oct 2013Release notes
Open source →- Made it harder to accidentally email your subscribers when using the example code
-
v3.1.015 Apr 2013Release notes
Open source →- Added support for single sign on which allows initiation of external login sessions to Campaign Monitor.
-
v3.0.025 Mar 2013Release notes
Open source →- Added support for authenticating using OAuth. See the README for full usage instructions.
-
This introduces some changes to how you authenticate using this library. You now authenticate by passing an
$autharray as the first argument when creating instances of any classes which inherit from theCS_REST_Wrapper_Baseclass.So in existing code, when you previously would have authenticated using an API key as follows:
$wrap = new CS_REST_General('Your API Key'); $result = $wrap->get_clients();If you want to authenticate using an API key, you should now do this:
$wrap = new CS_REST_General(array('api_key' => 'Your API Key')); $result = $wrap->get_clients();
-
- Added support for authenticating using OAuth. See the README for full usage instructions.
-
v2.5.219 Dec 2012Release notes
Open source →- Removed simpletest source files, and added simpletest as a dev dependency.
- Fixed autoloading with composer, so that only necessary classes are loaded.
-
v2.5.114 Dec 2012Release notes
Open source →- Use CURLOPT_TIMEOUT and CURLOPT_CONNECTTIMEOUT constants instead of CURLOPT_TIMEOUT_MS and CURLOPT_CONNECTTIMEOUT_MS.
- Added autoloading support when using Composer (PHP dependency management).
-
v2.5.011 Dec 2012Release notes
Open source →- Added support for including from name, from email, and reply to email in drafts, scheduled, and sent campaigns.
- Added support for campaign text version urls.
- Added support for transferring credits to/from a client.
- Added support for getting account billing details as well as client credits.
- Made all date fields optional when getting paged results.
-
v2.4.005 Nov 2012Release notes
Open source →- Added CS_REST_Campaigns.get_email_client_usage().
- Added support for ReadsEmailWith field on subscriber objects.
- Added support for retrieving unconfirmed subscribers for a list.
- Added support for suppressing email addresses.
- Added support for retrieving spam complaints for a campaign, as well as adding SpamComplaints field to campaign summary output.
- Added VisibleInPreferenceCenter field to custom field output.
- Added support for setting preference center visibility when creating custom fields.
- Added the ability to update a custom field name and preference visibility.
- Added documentation explaining that TextUrl is now optional when creating a campaign.
-
v2.3.223 Oct 2012 -
v2.3.119 Oct 2012Release notes
Open source →- Fixed #13. Load services_json.php only if Services_JSON class doesn't already exist.
- Fixed issue with curl calls hangs hanging on proxy failure.