Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

This module provides a campaign_monitor_rest_client service that configures and wraps the super-simple Campaign Monitor REST API Client. It is intended for use by developers who need a very basic REST API client for the Campaign Monitor API.

It works just like the http_client service from core. In fact, it returns a client that is fully compatible with http_client, but tailored specifically for use with the Campaign Monitor API.

This module differs from other Campaign Monitor modules in that it only provides a service that facilitates API access to Campaign Monitor using a much simpler library than the official createsend-php package.

Usage

Enable the campaign_monitor_rest_client module and configure it at /admin/config/services/campaign_monitor_rest_client. At the moment, the only available authentication method is via an API key.

Once enabled and configured, you can use the campaign_monitor_rest_client service as you would any other service. E.g.:

$client = \Drupal::service('campaign_monitor_rest_client');

Or via injection in a class that implements ContainerInjectionInterface:

/**
 * {@inheritdoc}
 */
public static function create(ContainerInterface $container) {
  return new static(
    $container->get('campaign_monitor_rest_client')
  );
}

Or injection into a service class:

services:
  custom_campaigns.course_notifications:
    class: Drupal\custom_campaigns\CourseNotificationHelper
    arguments: ['@campaign_monitor_rest_client', '@entity_type.manager', '@config.factory']

Once you've assigned the service to a variable, usage is very similar to Guzzle:

$client_response = $client->get('clients.json');

See the Campaign Monitor REST API Client readme for more information on how to use the client.

Activity

Total releases
1
First release
Aug 2025
Latest release
7 months ago
Release cadence
Stability
100% stable

Releases

Version Type Release date
1.0.3 Stable Aug 27, 2025