Skip to content
This repository

Ruby gem for accessing the Campaign Monitor API with support for new API keys, hex IDs, and custom subscriber fields.

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 support use libxml-ruby if possible August 24, 2008
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 MIT-LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 campaign_monitor.gemspec
Octocat-spinner-32 init.rb Moved directories June 23, 2008
Octocat-spinner-32 install.rb


This RubyGem provides access to the Campaign Monitor API (

Campaign Monitor recently made some changes to their API.

This fork makes the following changes:

  • host changed from to

  • ID values are no longer sent #to_i because they are hex strings

  • added support for subscribers with custom fields using SOAP API

  • refactored gemspec to build on github

  • misc. cleanup and refactoring


An account with Campaign Monitor and the API Key. Accounts are free and can be created at



sudo gem install patientslikeme-campaign_monitor -s

Add the following to the Rails::Initializer block in config/environment.rb (optionally specify a :version):

config.gem 'patientslikeme-campaign_monitor', :lib => 'campaign_monitor', :source => ''

Git Repository


cm = # assumes you've set CAMPAIGN_MONITOR_API_KEY in your project

for client in cm.clients
  for list in client.lists # => returns the name

    # modify a subscriber list
    list.add_subscriber(email, name, custom_fields_hash)
    list.add_and_resubscribe(email, name, custom_fields_hash)

    # get subscriber list details
    subscribers = list.active_subscribers(since_time)
    unsubscribed = list.unsubscribed(since_time)
    bounced = list.bounced(since_time)

  for campaign in client.campaigns

Something went wrong with that request. Please try again.