Our API

The Campaign Monitor API opens up a world of possibilities for integrating our platform with your favorite CMS, blog, or other third party software.

Journeys

Covers read-only journey functionality including viewing all journeys, journey summary, and detailed journey reporting. Note: Journey reporting via the API Users cannot retrieve journey reporting data older than 1 year via the API.

Getting journeys

Get https://api.createsend.com/api/v3.3/clients/{clientid}/journeys.{xml|json}

Contains a list of all journeys belonging to a particular client. The results include journey ID, status, name, and the ID of the list the journey is attached to.

  • clientid The ID of the client for which journeys should be retrieved.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
    {
        "ListID": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a",
        "JourneyID": "b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b",
        "Name": "Journey One",
        "Status": "Not started"
    },
    {
        "ListID": "c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c",
        "JourneyID": "d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d",
        "Name": "Journey Two",
        "Status": "Active"
    },
    {
        "ListID": "c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c",
        "JourneyID": "e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e",
        "Name": "Journey Three",
        "Status": "Paused"
    }
]
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

Getting journey summary

Get https://api.createsend.com/api/v3.3/journeys/{journeyid}.{xml|json}

Get a full summary of a journey, including the journey’s ID, name, trigger type and status as well as individual email statistics.

  • journeyid The ID of the journey you want the summary for.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "JourneyID": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
    "Name": "New journey",
    "TriggerType": "On Subscription",
    "Status": "Active",
    "Emails": [
        {
            "EmailID": "b1b1b1b1b1b1b1b1b1b1",
            "Name": "New Email",
            "Bounced": 0,
            "Clicked": 0,
            "Opened": 3,
            "Sent": 1,
            "UniqueOpened": 1,
            "Unsubscribed": 0
        }
    ]
}
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

If you receive a 400 Bad Request response for this request, these are the possible errors which may be included in the body of the response:

  • 3000: Invalid Journey ID The journey ID is not valid.

Journey email recipients

Get https://api.createsend.com/api/v3.3/journeys/email/{emailId}/recipients.{xml|json}?date={YYYY-MM-DD HH:MM}&page={pagenumber}&pagesize={pagesize}&orderdirection={asc|desc}

Retrieves a paged result representing all subscribers who have been sent a particular email within a journey, including email address and sent date. Results are ordered by date the email was sent to the recipient. You can control how results should be returned using page size, and sort direction.

  • emailid The ID of the journey email you want data for. Get the ID by getting the journey summary.
  • date Recipients for emails sent on or after the date value specified will be returned. Must be in the format YYYY-MM-DD HH:MM. Default: last 30 days.
  • page The results page to retrieve. Default: 1.
  • pageSize The number of records to retrieve per results page. Default: 1000.
  • orderDirection The direction in which results should be ordered. Results will be ordered by date sent. Default: asc.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "Results": [
        {
            "EmailAddress": "[email protected]",
            "SentDate": "2019-07-12 09:45:00",
        },
        {
            "EmailAddress": "[email protected]",
            "SentDate": "2019-07-12 10:45:00",
        },
        {
            "EmailAddress": "[email protected]",
            "SentDate": "2019-07-13 09:00:00",
        },
        {
            "EmailAddress": "[email protected]",
            "SentDate": "2019-07-16 11:45:00",
        }
    ],
    "ResultsOrderedBy": "SentDate",
    "OrderDirection": "ASC",
    "PageNumber": 2,
    "PageSize": 10,
    "RecordsOnThisPage": 4,
    "TotalNumberOfRecords": 14,
    "NumberOfPages": 2
}
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

If you receive a 400 Bad Request response for this request, these are the possible errors which may be included in the body of the response:

  • 5: Invalid Date The Send Date provided was invalid.
  • 800: Invalid page number The page number you have provided is invalid.
  • 801: Invalid page size The page size must be between 10 and 1000.
  • 803: Invalid order direction The order direction must be either asc or desc.
  • 3002: Invalid Journey Email ID The journey email ID is not valid.

Journey email opens

Get https://api.createsend.com/api/v3.3/journeys/email/{emailId}/opens.{json|xml}?date={YYYY-MM-DD HH:MM}&page={pagenumber}&pagesize={pagesize}&orderdirection={asc|desc}

Retrieves a paged result representing all subscribers who opened a given journey email, including the date/time and IP address from which they opened the campaign. When possible, the latitude, longitude, city, region, country code, and country name as geocoded from the IP address, are also returned. Results are ordered by date opened. You can control how results should be returned using page size, and sort direction.

  • emailId The ID of the journey email you want data for. Get the ID by getting the journey summary.
  • date Opens on or after the date value specified will be returned. Must be in the format YYYY-MM-DD HH:MM. Default: last 30 days.
  • page The results page to retrieve. Default: 1.
  • pageSize The number of records to retrieve per results page. Default: 1000.
  • orderDirection The direction in which results should be ordered. Results will be ordered by date opened. Default: asc.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "Results": [
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:33:00",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        }
    ],
    "ResultsOrderedBy": "Date",
    "OrderDirection": "ASC",
    "PageNumber": 1,
    "PageSize": 1000,
    "RecordsOnThisPage": 4,
    "TotalNumberOfRecords": 4,
    "NumberOfPages": 1
}
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

If you receive a 400 Bad Request response for this request, these are the possible errors which may be included in the body of the response:

  • 5: Invalid Date The Send Date provided was invalid.
  • 800: Invalid page number The page number you have provided is invalid.
  • 801: Invalid page size The page size must be between 10 and 1000.
  • 803: Invalid order direction The order direction must be either asc or desc.
  • 3002: Invalid Journey Email ID The journey email ID is not valid.

Journey email clicks

Get https://api.createsend.com/api/v3.3/journeys/email/{emailId}/clicks.{json|xml}?date={YYYY-MM-DD HH:MM}&page={pagenumber}&pagesize={pagesize}&orderdirection={asc|desc}

Retrieves a paged result representing all subscribers who clicked a link in a given journey email, including the date/time and IP address from which they clicked the link. When possible, the latitude, longitude, city, region, country code, and country name as geocoded from the IP address, are also returned. Results are ordered by date clicked. You can control how results should be returned using page size, and sort direction.

  • emailId The ID of the journey email you want data for. Get the ID by getting the journey summary.
  • date Clicks on or after the date value specified will be returned. Must be in the format YYYY-MM-DD HH:MM. Default: last 30 days.
  • page The results page to retrieve. Default: 1.
  • pageSize The number of records to retrieve per results page. Default: 1000.
  • orderDirection The direction in which results should be ordered. Results will be ordered by date clicked. Default: asc.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "Results": [
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:33:00",
            "URL": "https://test.com",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "URL": "https://test.com",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "URL": "https://test.com",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "URL": "https://test.com",
            "IPAddress": "192.168.0.3",
            "Latitude": -33.8683,
            "Longitude": 151.2086,
            "City": "Sydney",
            "Region": "New South Wales",
            "CountryCode": "AU",
            "CountryName": "Australia"
        }
    ],
    "ResultsOrderedBy": "Date",
    "OrderDirection": "ASC",
    "PageNumber": 1,
    "PageSize": 1000,
    "RecordsOnThisPage": 4,
    "TotalNumberOfRecords": 4,
    "NumberOfPages": 1
}
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

If you receive a 400 Bad Request response for this request, these are the possible errors which may be included in the body of the response:

  • 5: Invalid Date The Send Date provided was invalid.
  • 800: Invalid page number The page number you have provided is invalid.
  • 801: Invalid page size The page size must be between 10 and 1000.
  • 803: Invalid order direction The order direction must be either asc or desc.
  • 3002: Invalid Journey Email ID The journey email ID is not valid.

Journey email bounces

Get https://api.createsend.com/api/v3.3/journeys/email/{emailId}/bounces.{json|xml}?date={YYYY-MM-DD HH:MM}&page={pagenumber}&pagesize={pagesize}&orderdirection={asc|desc}

Retrieves a paged result representing all emails that were bounced, including the date/time and reason for the bounce. Results are ordered by date bounced. You can control how results should be returned using page size, and sort direction.

  • emailId The ID of the journey email you want data for. Get the ID by getting the journey summary.
  • date Bounces on or after the date value specified will be returned. Must be in the format YYYY-MM-DD HH:MM. Default: last 30 days.
  • page The results page to retrieve. Default: 1.
  • pageSize The number of records to retrieve per results page. Default: 1000.
  • orderDirection The direction in which results should be ordered. Results will be ordered by date bounced. Default: asc.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "Results": [
        {
            "EmailAddress": "[email protected]",
            "BounceType": "Hard",
            "Date": "2019-08-08 00:47:00",
            "Reason": "Hard Bounce"
        },
        {
            "EmailAddress": "[email protected]",
            "BounceType": "Soft",
            "Date": "2019-08-08 00:54:00",
            "Reason": "Soft Bounce - Mailbox Full"
        },
        {
            "EmailAddress": "[email protected]",
            "BounceType": "Hard",
            "Date": "2019-08-08 22:09:00",
            "Reason": "Hard Bounce"
        },
        {
            "EmailAddress": "[email protected]",
            "BounceType": "Soft",
            "Date": "2019-08-08 22:24:00",
            "Reason": "Soft Bounce - Dns Failure"
        }
    ],
    "ResultsOrderedBy": "Date",
    "OrderDirection": "ASC",
    "PageNumber": 1,
    "PageSize": 1000,
    "RecordsOnThisPage": 4,
    "TotalNumberOfRecords": 4,
    "NumberOfPages": 1
}
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

If you receive a 400 Bad Request response for this request, these are the possible errors which may be included in the body of the response:

  • 5: Invalid Date The Send Date provided was invalid.
  • 800: Invalid page number The page number you have provided is invalid.
  • 801: Invalid page size The page size must be between 10 and 1000.
  • 803: Invalid order direction The order direction must be either asc or desc.
  • 3002: Invalid Journey Email ID The journey email ID is not valid.

Journey email unsubscribes

Get https://api.createsend.com/api/v3.3/journeys/email/{emailId}/unsubscribes.{json|xml}?date={YYYY-MM-DD HH:MM}&page={pagenumber}&pagesize={pagesize}&orderdirection={asc|desc}

Retrieves a paged result representing all subscribers who unsubscribed from a journey email, including the date/time and IP address they unsubscribed from. Results are ordered by date unsubscribed. You can control how results should be returned using page size, and sort direction.

  • emailId The ID of the journey email you want data for. Get the ID by getting the journey summary.
  • date Unsubscribes on or after the date value specified will be returned. Must be in the format YYYY-MM-DD HH:MM. Default: last 30 days.
  • page The results page to retrieve. Default: 1.
  • pageSize The number of records to retrieve per results page. Default: 1000.
  • orderDirection The direction in which results should be ordered. Results will be ordered by date unsubscribed. Default: asc.
Expected response: JSONXML
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "Results": [
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:33:00",
            "IPAddress": "192.168.0.3"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "IPAddress": "192.168.0.3"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "IPAddress": "192.168.0.3"
        },
        {
            "EmailAddress": "[email protected]",
            "Date": "2019-07-29 10:35:00",
            "IPAddress": "192.168.0.3"
        }
    ],
    "ResultsOrderedBy": "Date",
    "OrderDirection": "ASC",
    "PageNumber": 1,
    "PageSize": 1000,
    "RecordsOnThisPage": 4,
    "TotalNumberOfRecords": 4,
    "NumberOfPages": 1
}
Error responses:

Please see our response status codes documentation for details of potential error responses for any API request.

If you receive a 400 Bad Request response for this request, these are the possible errors which may be included in the body of the response:

  • 5: Invalid Date The Send Date provided was invalid.
  • 800: Invalid page number The page number you have provided is invalid.
  • 801: Invalid page size The page size must be between 10 and 1000.
  • 803: Invalid order direction The order direction must be either asc or desc.
  • 3002: Invalid Journey Email ID The journey email ID is not valid.