openapi: 3.1.0
x-samples-languages:
- curl
- csharp
- java
- javascript
- node
- python
- php
- ruby
info:
version: 2.1.1
title: Email campaigns
description: 'Create, manage, and report on email campaigns. Use this API to create standard
and split-test campaigns, update campaign content and settings, copy campaigns,
and delete campaigns. Send campaigns immediately, schedule them for a future
time, or use time-optimised sending. Retrieve reporting data including opens,
clicks, page views, replies, ROI, social bookmark views, bounce data, and
aggregate metrics filtered by date range. Supports split-test result retrieval
and custom from-address management.'
externalDocs:
description: Learn more about Dotdigital APIs
url: https://developer.dotdigital.com
servers:
- url: https://{region}-api.dotdigital.com
variables:
region:
default: r1
enum:
- r1
- r2
- r3
description: The Dotdigital region id your account belongs to
security:
- basicAuth: []
paths:
/v2/campaigns:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
post:
summary: Create campaign
deprecated: false
description: Creates a campaign
operationId: create-campaign
tags:
- Email Campaigns
parameters: []
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- subject
- fromName
- htmlContent
- plainTextContent
properties:
name:
type: string
description: The name of the campaign being created
maxLength: 255
subject:
type: string
description: The email subject line of the campaign
fromName:
type: string
description: The from name of the campaign
fromAddress:
type: object
description: 'The registered custom from address you wish to use. Note: Specify either email or id and if not specified, the default fromAddress for the account is used.'
properties:
email:
type: string
description: The registered sender to use by email address
id:
type: integer
description: The registered sender to use by id
format: int32
htmlContent:
type: string
description: The HTML content of the campaign.
plainTextContent:
type: string
description: The plain text content of the campaign
replyAction:
type: string
description: The required action to be taken when a reply to the campaign is sent by the recipient
replyToAddress:
type: string
description: The email address that you would like replies to be forwarded to
type:
type: string
description: Choose a campaign type. Options are "Standard" or "Triggered". Omitting or adding any abnormal value defaults to Standard.
default: Standard
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: '{
"id": 6302600,
"name": "New product promotion 2",
"subject": "New product!",
"fromName": "Company name",
"fromAddress": {
"id": 133618,
"email": "products@mycompany.com"
},
"htmlContent": "\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n | \r\n \r\n \r\n \r\n | \r\n \r\n \r\n \r\n | \r\n
\r\n \r\n
",
"plainTextContent": "\r\n\r\n---\r\nWant to unsubscribe? $UNSUB$",
"replyAction": "Unset",
"replyToAddress": "",
"isSplitTest": false,
"status": "Unsent"
"type": "Standard"
}'
get:
summary: Get all campaigns
deprecated: true
description: Gets all campaigns
operationId: get-all-campaigns
tags:
- Email Campaigns
parameters:
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 2
name:
type: string
examples:
- Financial update
subject:
type: string
examples:
- Financial update
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- demo@apiconnector.com
htmlContent: {}
plainTextContent: {}
replyAction:
type: string
examples:
- Unset
replyToAddress: {}
isSplitTest:
type: boolean
default: true
examples:
- false
status:
type: string
examples:
- Unsent
examples:
Result:
summary: Result
value:
- id: 2
name: Financial update
subject: Financial update
fromName: Company name
fromAddress:
id: 2
email: demo@apiconnector.com
htmlContent: null
plainTextContent: null
replyAction: Unset
replyToAddress: null
isSplitTest: false
status: Unsent
- id: 4
name: New product promotion
subject: New product!
fromName: Company name
fromAddress:
id: 1
email: demo@apiconnector.com
htmlContent: null
plainTextContent: null
replyAction: WebMailForward
replyToAddress: demo@apiconnector.com
isSplitTest: false
status: Sent
/v2/campaigns/split-test:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
post:
summary: Create split test campaign
deprecated: false
description: Creates a split test campaign
operationId: create-split-test-campaign
tags:
- Email Campaigns
parameters: []
requestBody:
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: The name of the campaign being created
subjects:
type: array
description: The name of the split test campaign being created
items:
type: string
fromNames:
type: array
description: The from names to be split tested on
items:
type: string
fromAddresses:
type: array
description: The emails of existing custom from addresses to be split tested on
items:
properties:
email:
type: string
description: The from email address
required:
- email
type: object
htmlContents:
type: array
description: The HTML contents of the campaign that lies between the opening and the closing only (the tags themselves should not be used), to be split tested on
items:
type: string
plainTextContents:
type: array
description: The plain text contents of the campaign, to be split tested on
items:
type: string
replyAction:
type: string
description: The required action to be taken when a reply to the campaign is sent by the recipient
enum:
- Unset
- WebMailForward
- Webmail
- Delete
replyToAddress:
type: string
description: The email address that you would like replies to be forwarded to
examples:
Request Example:
value:
name: Split Test Campaign
subjects:
- My subject variation A
- My subject variation B
- My subject variation C
fromNames:
- My name variation A
- My name variation B
- My name variation C
fromAddresses:
- email: hello@my-domain.com
- email: hello@my-other-domain.com
- email: hello@my-experimental-domain.com
htmlContents:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContents:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
- "\r\n\n---\r\nDon't want to hear from us? $UNSUB$"
- "\r\n\n---\r\nRemove me from this list $UNSUB$"
summary: Request Example
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
name:
type: string
examples:
- Split Test Campaign
subjects:
type: array
items:
type: string
examples:
- My subject variation A
fromNames:
type: array
items:
type: string
examples:
- My name variation A
fromAddresses:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
email:
type: string
examples:
- hello@my-domain.com
htmlContents:
type: array
items:
type: string
examples:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContents:
type: array
items:
type: string
examples:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
status:
type: string
examples:
- Unsent
examples:
Result:
summary: Result
value:
id: 1
name: Split Test Campaign
subjects:
- My subject variation A
- My subject variation B
- My subject variation C
fromNames:
- My name variation A
- My name variation B
- My name variation C
fromAddresses:
- id: 1
email: hello@my-domain.com
- id: 2
email: hello@my-other-domain.com
- id: 3
email: hello@my-experimental-domain.com
htmlContents:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContents:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
- "\r\n\n---\r\nDon't want to hear from us? $UNSUB$"
- "\r\n\n---\r\nRemove me from this list $UNSUB$"
replyAction: Unset
replyToAddress: ''
status: Unsent
/v2/campaigns/{id}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
put:
summary: Update campaign
deprecated: false
description: Updates a given campaign
operationId: update-campaign
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign to be updated
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The name of the campaign being created
subject:
type: string
description: The email subject line of the campaign
fromName:
type: string
description: The from name of the campaign
htmlContent:
type: string
description: The HTML content of the campaign that lies between the opening and the closing only (the tags themselves should not be used)
plainTextContent:
type: string
description: The plain text content of the campaign
examples:
Request Example:
value:
name: New product promotion 2
subject: Check out our newest product!
fromName: Company name
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
summary: Request Example
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
name:
type: string
examples:
- New product promotion 2
subject:
type: string
examples:
- Check out our newest product!
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 133618
email:
type: string
examples:
- products@mycompany.com
htmlContent:
type: string
examples:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent:
type: string
examples:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
isSplitTest:
type: boolean
default: true
examples:
- false
status:
type: string
examples:
- Unsent
examples:
Result:
summary: Result
value:
id: 1
name: New product promotion 2
subject: Check out our newest product!
fromName: Company name
fromAddress:
id: 133618
email: products@mycompany.com
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction: Unset
replyToAddress: ''
isSplitTest: false
status: Unsent
delete:
summary: Delete campaign
deprecated: false
description: Deletes a campaign
operationId: delete-campaign
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: {}
get:
summary: Get campaign
deprecated: false
description: Gets a campaign by ID
operationId: get-campaign
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 6302600
name:
type: string
examples:
- New product promotion 2
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 133618
email:
type: string
examples:
- products@mycompany.com
htmlContent:
type: string
examples:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent:
type: string
examples:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
isSplitTest:
type: boolean
default: true
examples:
- false
status:
type: string
examples:
- Unsent
examples:
Result:
summary: Result
value:
id: 6302600
name: New product promotion 2
subject: New product!
fromName: Company name
fromAddress:
id: 133618
email: products@mycompany.com
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction: Unset
replyToAddress: ''
isSplitTest: false
status: Unsent
/v2/campaigns/{id}/copy:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
post:
summary: Copy campaign
deprecated: false
description: Copies a given campaign, returning the new campaign
operationId: copy-campaign
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 6303192
name:
type: string
examples:
- Copy of New product promotion 2
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 133618
email:
type: string
examples:
- products@mycompany.com
htmlContent:
type: string
examples:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent:
type: string
examples:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
isSplitTest:
type: boolean
default: true
examples:
- false
status:
type: string
examples:
- Unsent
examples:
Result:
summary: Result
value:
id: 6303192
name: Copy of New product promotion 2
subject: New product!
fromName: Company name
fromAddress:
id: 133618
email: products@mycompany.com
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction: Unset
replyToAddress: ''
isSplitTest: false
status: Unsent
/v2/campaigns/send:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
post:
summary: Send campaign
deprecated: false
description: Sends a specified campaign to one or more address books, segments or contacts, either as an immediate or scheduled send
operationId: send-campaign
tags:
- Email Campaigns
parameters: []
requestBody:
content:
application/json:
schema:
type: object
properties:
campaignID:
type: integer
description: The ID of the campaign
format: int32
addressBookIDs:
type: array
description: The array of address book IDs the campaign is to be sent to. This can be just one address book ID if required. You can also use a segment ID if you want to send a segment.
items:
type: integer
format: int32
contactIDs:
type: array
description: The array of contact IDs the campaign is to be sent to. This can be just one contact ID if required.
items:
type: integer
format: int32
sendDate:
type: string
description: The date and time at which you want the campaign to be sent
format: date
splitTestOptions:
type: object
description: The split test options
properties:
testMetric:
type: string
description: The metric to be used to calculate the success rate
enum:
- Opens
- Clicks
- ROI
testPercentage:
type: integer
description: The percentage of recipients to send the two versions of the campaign to before a winner is chosen
format: int32
testPeriodHours:
type: integer
description: The number of hours to run the test over before choosing a winning version of the campaign
format: int32
examples:
Request Example:
value:
campaignId: 1
contactIds:
- 1
sendDate: '2015-10-31T00:00:00'
splitTestOptions:
TestMetric: Opens
TestPercentage: 50
TestPeriodHours: 5
summary: Request Example
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: string
examples:
- e8224c2b-a670-461e-b060-4ec776e9e7c2
campaignId:
type: integer
default: 0
examples:
- 1
addressBookIds: {}
contactIds:
type: integer
default: 0
examples:
- 1
sendDate:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
splitTestOptions:
type: object
properties:
TestMetric:
type: string
examples:
- Opens
TestPercentage:
type: integer
default: 0
examples:
- 50
TestPeriodHours:
type: integer
default: 0
examples:
- 5
status:
type: string
examples:
- Sending
examples:
Result:
summary: Result
value:
id: e8224c2b-a670-461e-b060-4ec776e9e7c2
campaignId: 1
addressBookIds: null
contactIds: 1
sendDate: '2020-01-01T09:40:18.527Z'
splitTestOptions:
TestMetric: Opens
TestPercentage: 50
TestPeriodHours: 5
status: Sending
/v2/campaigns/send-time-optimised:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
post:
summary: Send time optimised campaign
deprecated: false
description: Sends a specified campaign to one or more address books, segments or contacts at the most appropriate time based upon their previous opens
operationId: send-time-optimised-campaign
tags:
- Email Campaigns
parameters: []
requestBody:
content:
application/json:
schema:
type: object
properties:
campaignID:
type: integer
description: The ID of the campaign
format: int32
addressBookIDs:
type: array
description: The array of address book IDs the campaign is to be sent to. This can be just one address book ID if required.
items:
type: integer
format: int32
contactIDs:
type: array
description: The array of contact IDs the campaign is to be sent to. This can be just one contact ID if required.
items:
type: integer
format: int32
examples:
Request Example:
value:
campaignId: 1
addressBookIds:
- 1
- 2
- 3
contactIds:
- 1
- 2
- 3
summary: Request Example
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: string
examples:
- f415abb9-e98a-4f58-b136-795e69d6d2a0
campaignId:
type: integer
default: 0
examples:
- 1
addressBookIds: {}
contactIds: {}
sendDate:
type: string
examples:
- '2020-02-24T13:06:42.933Z'
splitTestOptions: {}
status:
type: string
examples:
- NotSent
examples:
Result:
summary: Result
value:
id: f415abb9-e98a-4f58-b136-795e69d6d2a0
campaignId: 1
addressBookIds: null
contactIds: null
sendDate: '2020-02-24T13:06:42.933Z'
splitTestOptions: null
status: NotSent
/v2/campaigns/send/{id}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign send status
deprecated: false
description: Gets a campaign send status using send ID
operationId: get-campaign-send-status
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: 'The send ID of the send campaign call. The send ID is a GUID, it looks like: 842d81e8-c619-457f-bb77-ab6c4a17da39.'
required: true
examples:
default:
value: ''
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: string
examples:
- 842d81e8-c619-457f-bb77-ab6c4a17da39
campaignId:
type: integer
default: 0
examples:
- 1
addressBookIds: {}
contactIds: {}
sendDate:
type: string
examples:
- '2020-02-24T13:06:42.933Z'
splitTestOptions: {}
status:
type: string
examples:
- Sent
examples:
Result:
summary: Result
value:
id: 842d81e8-c619-457f-bb77-ab6c4a17da39
campaignId: 1
addressBookIds: null
contactIds: null
sendDate: '2020-02-24T13:06:42.933Z'
splitTestOptions: null
status: Sent
/v2/campaigns/{campaignID}/attachments:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
post:
summary: Add campaign attachment
deprecated: false
description: Adds a document to a campaign as an attachment
operationId: add-campaign-attachment
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: The ID of the document
format: int32
name:
type: string
description: The name of the document
fileName:
type: string
description: The file name (path) of the document
fileSize:
type: string
description: The size in bytes of the document
dateCreated:
type: string
description: The date and time the document was first uploaded to the system
dateModified:
type: string
description: The date and time the document was last modified within the system
examples:
Request Example:
value:
id: 3
summary: Request Example
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 3
name:
type: string
examples:
- Directions to Conference.pdf
fileName:
type: string
examples:
- /cmpdoc/5/0/7/4/7/files/3_directions-to-conference.pdf
fileSize:
type: integer
default: 0
examples:
- 24225
dateCreated:
type: string
examples:
- '2020-02-24T13:06:42.933Z'
dateModified:
type: string
examples:
- '2020-02-24T13:06:42.933Z'
examples:
Result:
summary: Result
value:
id: 3
name: Directions to Conference.pdf
fileName: /cmpdoc/5/0/7/4/7/files/3_directions-to-conference.pdf
fileSize: 24225
dateCreated: '2020-02-24T13:06:42.933Z'
dateModified: '2020-02-24T13:06:42.933Z'
get:
summary: Get campaign attachments
deprecated: false
description: Gets documents that are currently attached to a campaign
operationId: get-campaign-attachments
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 2
name:
type: string
examples:
- Conference schedule.pdf
fileName:
type: string
examples:
- /cmpdoc/5/0/7/4/7/files/1_conference-schedule.pdf
fileSize:
type: integer
default: 0
examples:
- 24225
dateCreated:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
dateModified:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
examples:
Result:
summary: Result
value:
- id: 2
name: Conference schedule.pdf
fileName: /cmpdoc/5/0/7/4/7/files/1_conference-schedule.pdf
fileSize: 24225
dateCreated: '2020-01-01T09:40:18.527Z'
dateModified: '2020-01-01T09:40:18.527Z'
- id: 3
name: Directions to Conference.pdf
fileName: /cmpdoc/5/0/7/4/7/files/2_directions-to-conference.pdf
fileSize: 24225
dateCreated: '2020-02-24T13:06:42.933Z'
dateModified: '2020-02-24T13:06:42.933Z'
/v2/campaigns/{campaignID}/attachments/{documentID}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
delete:
summary: Remove campaign attachment
deprecated: false
description: Removes an attachment from a campaign
operationId: remove-campaign-attachment
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: documentID
in: path
description: The ID of the document
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: {}
/v2/campaigns/filtered:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get all campaigns (with filters)
deprecated: false
description: Gets all campaigns, with optional filtering.
operationId: get-all-campaigns-with-filters
tags:
- Email Campaigns
parameters:
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
- name: ~type
in: query
description: Filter to a specific type of email campaign.
required: false
schema:
type: string
enum:
- Standard
- Triggered
- name: ~tags
in: query
description: Filter to campaigns with the specified tags; all tags listed must be assigned to the campaign to be included.
required: false
schema:
type: array
items:
type: string
- name: ~sentDate
in: query
description: Filter for campaigns sent on or after the specified date-time in UTC ISO-8601 format.
required: false
schema:
type: string
format: date
- name: ~statuses
in: query
description: 'Filter by campaign statuses: `Unsent`, `Sent`, `Sending`, `Paused`, `Cancelled`, `RequiresWorkflowApproval`'
required: false
schema:
type: array
items:
type: string
- name: ~scheduledDateFrom
in: query
description: Filter for campaigns scheduled to be sent on or after the specified date-time in UTC ISO-8601 format. Can be used in conjunction with `~scheduledDateTo` to create a date window.
required: false
schema:
type: string
format: date
- name: ~scheduledDateTo
in: query
description: Filter for campaigns scheduled to be sent on or before the specified date-time in UTC ISO-8601 format. Can be used in conjunction with `~scheduledDateFrom` to create a date window.
required: false
schema:
type: string
format: date
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
required:
- id
- name
- subject
- fromName
- fromAddress
- htmlContent
- plainTextContent
- replyAction
- replyToAddress
- isSplitTest
- status
- type
- tags
- sentDate
- scheduledDate
properties:
id:
type: integer
default: 0
examples:
- 2
name:
type: string
examples:
- New product promotion
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
email:
type: string
format: email
examples:
- demo@apiconnector.com
htmlContent: {}
plainTextContent: {}
replyAction:
type: string
examples:
- WebMailForward
replyToAddress:
type: string
examples:
- demo@apiconnector.com
isSplitTest:
type: boolean
default: true
examples:
- false
status:
type: string
examples:
- Sent
type:
type: string
description: ''
enum:
- Standard
- Triggered
- Template
- AiTemplate
tags:
type: array
items:
type: string
examples:
- re-engagement
sentDate:
type: string
format: date-time
examples:
- '2025-01-01T09:40:18.00Z'
scheduledDate:
type: string
format: date-time
examples:
- '2025-01-01T09:40:18.00Z'
examples:
Result:
summary: Result
value:
- id: 2
name: New product promotion
subject: New product!
fromName: Company name
fromAddress:
id: 1
email: demo@apiconnector.com
htmlContent: null
plainTextContent: null
replyAction: WebMailForward
replyToAddress: demo@apiconnector.com
isSplitTest: false
status: Sent
type: Triggered
tags:
- re-engagement
- lapsed
sentDate: '2025-01-01T09:40:18.00Z'
scheduledDate: null
- id: 3
name: Financial update
subject: Financial update
fromName: Company name
fromAddress:
id: 2
email: demo@apiconnector.com
htmlContent: null
plainTextContent: null
replyAction: Unset
replyToAddress: null
isSplitTest: false
status: Unsent
type: Standard
tags: []
sentDate: null,
scheduledDate: '2027-01-01T09:40:18.00Z'
'400':
description: '400'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value:
value: ''
'401':
description: '401'
content:
text/plain:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: '{
"value": ""
}'
/v2/campaigns/{id}/with-details:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign with details
deprecated: false
description: Gets a campaign by ID, along with all its details
operationId: get-campaign-with-details
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
name:
type: string
examples:
- New product promotion 2
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 133618
email:
type: string
examples:
- products@mycompany.com
htmlContent:
type: string
examples:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent:
type: string
examples:
- "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
isSplitTest:
type: boolean
default: true
examples:
- true
status:
type: string
examples:
- Unsent
type:
type: string
examples:
- Standard
tags:
type: array
items:
type: object
properties:
name:
type: string
examples:
- Product
splitTestOptions:
type: array
items:
type: string
examples:
- Subject
sentDate:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
examples:
Result:
summary: Result
value:
id: 1
name: New product promotion 2
subject: New product!
fromName: Company name
fromAddress:
id: 133618
email: products@mycompany.com
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe? $UNSUB$"
replyAction: Unset
replyToAddress: ''
isSplitTest: true
status: Unsent
type: Standard
tags:
- name: Product
- name: Promotion
splitTestOptions:
- Subject
- FromAddress
- FromName
- Html
- PlainText
sentDate: '2020-01-01T09:40:18.527Z'
/v2/campaigns/{id}/summary:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign summary
deprecated: false
description: Gets a summary of reporting information for a specified campaign
operationId: get-campaign-summary
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
dateSent:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
numUniqueOpens:
type: integer
default: 0
examples:
- 3
numUniqueTextOpens:
type: integer
default: 0
examples:
- 10
numTotalUniqueOpens:
type: integer
default: 0
examples:
- 13
numOpens:
type: integer
default: 0
examples:
- 4
numTextOpens:
type: integer
default: 0
examples:
- 14
numTotalOpens:
type: integer
default: 0
examples:
- 18
numClicks:
type: integer
default: 0
examples:
- 1
numTextClicks:
type: integer
default: 0
examples:
- 8
numTotalClicks:
type: integer
default: 0
examples:
- 9
numPageViews:
type: integer
default: 0
examples:
- 6
numTotalPageViews:
type: integer
default: 0
examples:
- 33
numTextPageViews:
type: integer
default: 0
examples:
- 27
numForwards:
type: integer
default: 0
examples:
- 1
numTextForwards:
type: integer
default: 0
examples:
- 8
numEstimatedForwards:
type: integer
default: 0
examples:
- 6
numTextEstimatedForwards:
type: integer
default: 0
examples:
- 27
numTotalEstimatedForwards:
type: integer
default: 0
examples:
- 33
numReplies:
type: integer
default: 0
examples:
- 2
numTextReplies:
type: integer
default: 0
examples:
- 2
numTotalReplies:
type: integer
default: 0
examples:
- 4
numHardBounces:
type: integer
default: 0
examples:
- 1
numTextHardBounces:
type: integer
default: 0
examples:
- 0
numTotalHardBounces:
type: integer
default: 0
examples:
- 1
numSoftBounces:
type: integer
default: 0
examples:
- 1
numTextSoftBounces:
type: integer
default: 0
examples:
- 0
numTotalSoftBounces:
type: integer
default: 0
examples:
- 1
numUnsubscribes:
type: integer
default: 0
examples:
- 1
numTextUnsubscribes:
type: integer
default: 0
examples:
- 2
numTotalUnsubscribes:
type: integer
default: 0
examples:
- 3
numIspComplaints:
type: integer
default: 0
examples:
- 1
numTextIspComplaints:
type: integer
default: 0
examples:
- 0
numTotalIspComplaints:
type: integer
default: 0
examples:
- 1
numMailBlocks:
type: integer
default: 0
examples:
- 0
numTextMailBlocks:
type: integer
default: 0
examples:
- 0
numTotalMailBlocks:
type: integer
default: 0
examples:
- 0
numSent:
type: integer
default: 0
examples:
- 6
numTextSent:
type: integer
default: 0
examples:
- 12
numTotalSent:
type: integer
default: 0
examples:
- 18
numRecipientsClicked:
type: integer
default: 0
examples:
- 9
numDelivered:
type: integer
default: 0
examples:
- 4
numTextDelivered:
type: integer
default: 0
examples:
- 12
numTotalDelivered:
type: integer
default: 0
examples:
- 16
percentageDelivered:
type: number
default: 0
examples:
- 0.8888888888888888
percentageUniqueOpens:
type: number
default: 0
examples:
- 0.8125
percentageOpens:
type: number
default: 0
examples:
- 1.125
percentageUnsubscribes:
type: number
default: 0
examples:
- 0.1875
percentageReplies:
type: number
default: 0
examples:
- 0.25
percentageHardBounces:
type: number
default: 0
examples:
- 0.05555555555555555
percentageSoftBounces:
type: number
default: 0
examples:
- 0.0625
percentageUsersClicked:
type: number
default: 0
examples:
- 0.5625
percentageClicksToOpens:
type: number
default: 0
examples:
- 0.5
revenue:
type: string
examples:
- $0.00
conversionRate:
type: integer
default: 0
examples:
- 0
assistedRevenue:
type: string
examples:
- $0.00
numOrders:
type: integer
default: 0
examples:
- 0
examples:
Result:
summary: Result
value:
dateSent: '2020-01-01T09:40:18.527Z'
numUniqueOpens: 3
numUniqueTextOpens: 10
numTotalUniqueOpens: 13
numOpens: 4
numTextOpens: 14
numTotalOpens: 18
numClicks: 1
numTextClicks: 8
numTotalClicks: 9
numPageViews: 6
numTotalPageViews: 33
numTextPageViews: 27
numForwards: 1
numTextForwards: 8
numEstimatedForwards: 6
numTextEstimatedForwards: 27
numTotalEstimatedForwards: 33
numReplies: 2
numTextReplies: 2
numTotalReplies: 4
numHardBounces: 1
numTextHardBounces: 0
numTotalHardBounces: 1
numSoftBounces: 1
numTextSoftBounces: 0
numTotalSoftBounces: 1
numUnsubscribes: 1
numTextUnsubscribes: 2
numTotalUnsubscribes: 3
numIspComplaints: 1
numTextIspComplaints: 0
numTotalIspComplaints: 1
numMailBlocks: 0
numTextMailBlocks: 0
numTotalMailBlocks: 0
numSent: 6
numTextSent: 12
numTotalSent: 18
numRecipientsClicked: 9
numDelivered: 4
numTextDelivered: 12
numTotalDelivered: 16
percentageDelivered: 0.8888888888888888
percentageUniqueOpens: 0.8125
percentageOpens: 1.125
percentageUnsubscribes: 0.1875
percentageReplies: 0.25
percentageHardBounces: 0.05555555555555555
percentageSoftBounces: 0.0625
percentageUsersClicked: 0.5625
percentageClicksToOpens: 0.5
revenue: $0.00
conversionRate: 0
assistedRevenue: $0.00
numOrders: 0
/v2/campaigns/{id}/opens:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign opens
deprecated: false
description: Gets a list of campaign opens
operationId: get-campaign-opens
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: '[
{
"contactId": 9,
"email": "carlene.eggebrecht@example.com",
"mailClient": "BlackBerry",
"mailClientVersion": "BlackBerry 9520",
"ipAddress": "192.168.51.126",
"userAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)",
"isHtml": false,
"isForward": false,
"dateOpened": "2020-01-01T09:40:18.00Z"
},
{
"contactId": 11,
"email": "shawn.lemley@example.com",
"mailClient": "Thunderbird",
"mailClientVersion": "Thunderbird 17",
"ipAddress": "192.168.123.27",
"userAgent": "BlackBerry8100/4.2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/123",
"isHtml": false,
"isForward": false,
"dateOpened": "2020-01-01T09:40:18.00Z"
},
]'
/v2/campaigns/{campaignID}/activities/{contactID}/opens:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign opens for a contact
deprecated: false
description: Gets a list of campaign opens for a contact
operationId: get-campaign-opens-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: The ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
mailClient:
type: string
examples:
- AOL
mailClientVersion:
type: string
examples:
- AOL 1
ipAddress:
type: string
examples:
- 192.168.247.62
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
isHtml:
type: boolean
default: true
examples:
- false
isForward:
type: boolean
default: true
examples:
- false
dateOpened:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
mailClient: AOL
mailClientVersion: AOL 1
ipAddress: 192.168.247.62
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
isHtml: false
isForward: false
dateOpened: '2020-01-01T09:40:18.00Z'
- contactId: 2
email: karina.plain@example.com
mailClient: Android
mailClientVersion: Android DSL
ipAddress: 192.168.15.106
userAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
isHtml: false
isForward: false
dateOpened: '2020-01-01T09:40:18.00Z'
/v2/campaigns/{campaignID}/activities/{contactID}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign activity for a contact
deprecated: false
description: Gets activity for a given contact and given campaign
operationId: get-campaign-activity-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: The ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
numOpens:
type: integer
default: 0
examples:
- 2
numPageViews:
type: integer
default: 0
examples:
- 4
numClicks:
type: integer
default: 0
examples:
- 1
numForwards:
type: integer
default: 0
examples:
- 1
numEstimatedForwards:
type: integer
default: 0
examples:
- 4
numReplies:
type: integer
default: 0
examples:
- 0
dateSent:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
dateFirstOpened:
type: string
examples:
- '2020-01-02T09:30:18.00Z'
dateLastOpened:
type: string
examples:
- '2020-01-02T09:30:18.00Z'
firstOpenIp:
type: string
examples:
- 192.168.15.106
unsubscribed:
type: boolean
default: true
examples:
- false
softBounced:
type: boolean
default: true
examples:
- false
hardBounced:
type: boolean
default: true
examples:
- false
examples:
Result:
summary: Result
value:
contactId: 2
email: karina.plain@example.com
numOpens: 2
numPageViews: 4
numClicks: 1
numForwards: 1
numEstimatedForwards: 4
numReplies: 0
dateSent: '2020-01-01T09:40:18.00Z'
dateFirstOpened: '2020-01-02T09:30:18.00Z'
dateLastOpened: '2020-01-02T09:30:18.00Z'
firstOpenIp: 192.168.15.106
unsubscribed: false
softBounced: false
hardBounced: false
/v2/campaigns/{id}/activities/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign activity since date
deprecated: false
description: Gets a list of contacts who were sent a campaign, and retrieves only those contacts who showed activity (e.g. they clicked, opened) after a specified date
operationId: get-campaign-activity-since-date
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any campaign activity is returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
numOpens:
type: integer
default: 0
examples:
- 2
numPageViews:
type: integer
default: 0
examples:
- 4
numClicks:
type: integer
default: 0
examples:
- 1
numForwards:
type: integer
default: 0
examples:
- 1
numEstimatedForwards:
type: integer
default: 0
examples:
- 4
numReplies:
type: integer
default: 0
examples:
- 0
dateSent:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
dateFirstOpened:
type: string
examples:
- 2020-01-021T09:40:18.00Z
dateLastOpened:
type: string
examples:
- '2020-01-02T09:40:18.00Z'
firstOpenIp:
type: string
examples:
- 192.168.15.106
unsubscribed:
type: boolean
default: true
examples:
- false
softBounced:
type: boolean
default: true
examples:
- false
hardBounced:
type: boolean
default: true
examples:
- false
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
numOpens: 2
numPageViews: 4
numClicks: 1
numForwards: 1
numEstimatedForwards: 4
numReplies: 0
dateSent: '2020-01-01T09:40:18.00Z'
dateFirstOpened: 2020-01-021T09:40:18.00Z
dateLastOpened: '2020-01-02T09:40:18.00Z'
firstOpenIp: 192.168.15.106
unsubscribed: false
softBounced: false
hardBounced: false
- contactId: 3
email: erik.cryer@example.com
numOpens: 1
numPageViews: 1
numClicks: 0
numForwards: 0
numEstimatedForwards: 1
numReplies: 1
dateSent: '2020-01-01T09:40:18.527Z'
dateFirstOpened: '2020-01-02T09:40:18.00Z'
dateLastOpened: '2020-01-02T09:40:18.00Z'
firstOpenIp: 192.168.156.140
unsubscribed: false
softBounced: false
hardBounced: false
/v2/campaigns/{id}/clicks:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign clicks
deprecated: false
description: Gets a list of campaign link clicks
operationId: get-campaign-clicks
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 19
email:
type: string
examples:
- jeremy.krueger@example.com
url:
type: string
examples:
- http://example.com/page3
ipAddress:
type: string
examples:
- 192.168.237.24
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked:
type: string
examples:
- '2020-01-02T09:40:18.00Z'
keyword:
type: string
examples:
- example
examples:
Result:
summary: Result
value:
- contactId: 19
email: jeremy.krueger@example.com
url: http://example.com/page3
ipAddress: 192.168.237.24
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked: '2020-01-02T09:40:18.00Z'
keyword: example
- contactId: 23
email: nelson.redeker@example.com
url: http://example.com/page2
ipAddress: 192.168.93.223
userAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
dateClicked: '2020-01-02T09:40:18.00Z'
keyword: example
/v2/campaigns/{id}/clicks-with-groups:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign clicks and link groups
deprecated: false
description: Gets a list of campaign link clicks with assigned link groups
operationId: get-campaign-clicks-and-link-groups
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: ''
schema:
type: string
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 19
email:
type: string
examples:
- jeremy.krueger@example.com
url:
type: string
examples:
- http://company123.com/aboutus
ipAddress:
type: string
examples:
- 192.168.237.24
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked:
type: string
examples:
- '2020-01-02T09:40:18.00Z'
keyword:
type: string
examples:
- about
groups:
type: array
items:
type: string
examples:
Result:
summary: Result
value:
- contactId: 19
email: jeremy.krueger@example.com
url: http://company123.com/aboutus
ipAddress: 192.168.237.24
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked: '2020-01-02T09:40:18.00Z'
keyword: about
groups: []
- contactId: 23
email: nelson.redeker@example.com
url: http://company123.com/holidays
ipAddress: 192.168.93.223
userAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
dateClicked: '2020-01-02T09:40:18.00Z'
keyword: Alexandria holiday deals
groups:
- name: africa
dateCreated: '2020-01-02T09:40:18.00Z'
- name: egypt
dateCreated: '2020-01-02T09:40:18.00Z'
/v2/campaigns/{id}/clicks/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign clicks since date
deprecated: false
description: Gets a list of link clicks for a campaign after a specified date
operationId: get-campaign-clicks-since-date
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any campaign clicks are returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
url:
type: string
examples:
- http://example.com/page3
ipAddress:
type: string
examples:
- 192.168.211.73
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
keyword:
type: string
examples:
- example
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
url: http://example.com/page3
ipAddress: 192.168.211.73
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked: '2020-01-01T09:40:18.00Z'
keyword: example
- contactId: 19
email: jeremy.krueger@example.com
url: http://example.com/page3
ipAddress: 192.168.237.24
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked: '2020-01-02T09:40:18.00Z'
keyword: example
/v2/campaigns/{id}/clicks-with-groups/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign clicks and link groups since date
deprecated: false
description: Gets a list of link clicks for a campaign, with assigned link groups, after a specified date
operationId: get-campaign-clicks-and-link-groups-since-date
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any campaign clicks are returned, which needs to be included within the URL in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 19
email:
type: string
examples:
- jeremy.krueger@example.com
url:
type: string
examples:
- http://company123.com/aboutus
ipAddress:
type: string
examples:
- 192.168.237.24
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
keyword:
type: string
examples:
- about
groups:
type: array
items:
type: string
examples:
Result:
summary: Result
value:
- contactId: 19
email: jeremy.krueger@example.com
url: http://company123.com/aboutus
ipAddress: 192.168.237.24
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked: '2020-01-01T09:40:18.00Z'
keyword: about
groups: []
- contactId: 23
email: nelson.redeker@example.com
url: http://company123.com/holidays
ipAddress: 192.168.93.223
userAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
dateClicked: '2020-01-01T09:40:18.00Z'
keyword: Alexandria holiday deals
groups:
- name: africa
dateCreated: '2020-01-01T09:40:18.00Z'
- name: egypt
dateCreated: '2020-01-01T09:40:18.00Z'
/v2/campaigns/{id}/opens/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign opens since date
deprecated: false
description: Gets a list of opens for a campaign after a specified date
operationId: get-campaign-opens-since-date
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any opens for the campaign are returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 5
email:
type: string
examples:
- darryl.netherland@example.com
mailClient:
type: string
examples:
- Opera
mailClientVersion:
type: string
examples:
- Opera5
ipAddress:
type: string
examples:
- 192.168.251.85
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
isHtml:
type: boolean
default: true
examples:
- false
isForward:
type: boolean
default: true
examples:
- false
dateOpened:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
examples:
Result:
summary: Result
value:
- contactId: 5
email: darryl.netherland@example.com
mailClient: Opera
mailClientVersion: Opera5
ipAddress: 192.168.251.85
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
isHtml: false
isForward: false
dateOpened: '2020-01-01T09:40:18.00Z'
- contactId: 21
email: deonna.medine@example.com
mailClient: Chrome
mailClientVersion: Chrome 8
ipAddress: 192.168.39.11
userAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
isHtml: false
isForward: true
dateOpened: '2020-01-01T09:40:18.00Z'
/v2/campaigns/{id}/activities:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign activity
deprecated: false
description: Gets a list of contacts who were sent a campaign, with their activity
operationId: get-campaign-activity
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: '[
{
"contactId": 5,
"email": "darryl.netherland@example.com",
"numOpens": 2,
"numPageViews": 3,
"numClicks": 1,
"numForwards": 1,
"numEstimatedForwards": 3,
"numReplies": 0,
"dateSent": "2020-01-01T09:40:18.00Z",
"dateFirstOpened": "2020-01-01T09:40:18.00Z",
"dateLastOpened": "2020-01-01T09:40:18.00Z",
"firstOpenIp": "192.168.228.41",
"unsubscribed": false,
"softBounced": false,
"hardBounced": false
},
{
"contactId": 9,
"email": "carlene.eggebrecht@example.com",
"numOpens": 2,
"numPageViews": 3,
"numClicks": 1,
"numForwards": 1,
"numEstimatedForwards": 3,
"numReplies": 0,
"dateSent": "2020-01-01T09:40:18.00Z",
"dateFirstOpened": "2020-01-01T09:40:18.00Z",
"dateLastOpened": "2020-01-01T09:40:18.00Z",
"firstOpenIp": "192.168.51.126",
"unsubscribed": false,
"softBounced": false,
"hardBounced": false
},
]'
/v2/campaigns/{id}/address-books:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign address books
deprecated: false
description: Gets any address books and segments that a campaign has ever been sent to
operationId: get-campaign-address-books
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
name:
type: string
examples:
- Address book 1
visibility:
type: string
examples:
- Private
contacts:
type: integer
default: 0
examples:
- 5
examples:
Result:
summary: Result
value:
- id: 1
name: Address book 1
visibility: Private
contacts: 5
- id: 2
name: Address book 2
visibility: Public
contacts: 7
- id: 3
name: Address book 3
visibility: Private
contacts: 7
/v2/campaigns/{campaignID}/activities/{contactID}/clicks:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign clicks for a contact
deprecated: false
description: Gets a list of campaign link clicks for a contact
operationId: get-campaign-clicks-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: This is the ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
url:
type: string
examples:
- http://example.com/page3
ipAddress:
type: string
examples:
- 192.168.211.73
userAgent:
type: string
examples:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
keyword:
type: string
examples:
- example
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
url: http://example.com/page3
ipAddress: 192.168.211.73
userAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
dateClicked: '2020-01-01T09:40:18.00Z'
keyword: example
/v2/campaigns/{campaignID}/activities/{contactID}/clicks-with-groups:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign contact clicks and link groups
deprecated: false
description: Gets a list of campaign link clicks, with assigned link groups, for a contact
operationId: get-campaign-contact-clicks-and-link-groups
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: This is the ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 23
email:
type: string
examples:
- nelson.redeker@example.com
url:
type: string
examples:
- http://company123.com/holidays
ipAddress:
type: string
examples:
- 192.168.93.223
userAgent:
type: string
examples:
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
dateClicked:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
keyword:
type: string
examples:
- Alexandria holiday deals
groups:
type: array
items:
type: object
properties:
name:
type: string
examples:
- africa
dateCreated:
type: string
examples:
- '2020-01-01T09:40:18.00Z'
examples:
Result:
summary: Result
value:
- contactId: 23
email: nelson.redeker@example.com
url: http://company123.com/holidays
ipAddress: 192.168.93.223
userAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)
dateClicked: '2020-01-01T09:40:18.00Z'
keyword: Alexandria holiday deals
groups:
- name: africa
dateCreated: '2020-01-01T09:40:18.00Z'
- name: egypt
dateCreated: '2020-01-01T09:40:18.00Z'
/v2/campaigns/with-activity-since/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaigns with activity since date
deprecated: false
description: Gets all sent campaigns, which have had activity (e.g. clicks, opens) after a specified date
operationId: get-campaigns-with-activity-since-date
tags:
- Email Campaigns
parameters:
- name: date
in: path
description: The date from which campaigns with activity will be returned, which needs to be included within the URL in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 4
name:
type: string
examples:
- New product promotion
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
fromAddress:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
email:
type: string
examples:
- demo@apiconnector.com
htmlContent: {}
plainTextContent: {}
replyAction:
type: string
examples:
- WebMailForward
replyToAddress:
type: string
examples:
- demo@apiconnector.com
isSplitTest:
type: boolean
default: true
examples:
- false
status:
type: string
examples:
- Sent
examples:
Result:
summary: Result
value:
- id: 4
name: New product promotion
subject: New product!
fromName: Company name
fromAddress:
id: 1
email: demo@apiconnector.com
htmlContent: null
plainTextContent: null
replyAction: WebMailForward
replyToAddress: demo@apiconnector.com
isSplitTest: false
status: Sent
/v2/campaigns/{campaignID}/activities/{contactID}/page-views:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign page views for a contact
deprecated: false
description: Gets a list of page views for a specific campaign for a contact
operationId: get-campaign-page-views-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: The ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
url:
type: string
examples:
- http://example.com/page2
dateViewed:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
url: http://example.com/page2
dateViewed: '2020-01-01T09:40:18.527Z'
- contactId: 2
email: karina.plain@example.com
url: http://example.com/page3
dateViewed: '2020-01-01T09:40:40.527Z'
- contactId: 2
email: karina.plain@example.com
url: http://example.com/page2
dateViewed: '2020-01-01T09:41:20.527Z'
- contactId: 2
email: karina.plain@example.com
url: http://example.com/page2
dateViewed: '2020-01-01T09:41:50.527Z'
/v2/campaigns/{id}/page-views/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign page views since date
deprecated: false
description: Gets a list of page views for a campaign after a specified date
operationId: get-campaign-page-views-since-date
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any campaign page views are returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties: {}
examples:
Result:
summary: Result
value: '[
{
"contactId": 17,
"email": "dora.judge@example.com",
"url": "http://example.com/page3",
"dateViewed": "2020-01-01T09:40:18.527Z"
},
{
"contactId": 21,
"email": "deonna.medine@example.com",
"url": "http://example.com/page2",
"dateViewed": "2020-01-01T09:41:18.527Z"
},
{
"contactId": 15,
"email": "mathew.fauntleroy@example.com",
"url": "http://example.com/page2",
"dateViewed": "2020-01-01T09:43:18.527Z"
},
]'
/v2/campaigns/{campaignID}/activities/{contactID}/replies:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign replies for a contact
deprecated: false
description: Gets a list of campaign replies for a contact
operationId: get-campaign-replies-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: The ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 3
email:
type: string
examples:
- erik.cryer@example.com
fromAddress:
type: string
examples:
- erik.cryer@example.com
toAddress:
type: string
examples:
- demo@apiconnector.com
subject:
type: string
examples:
- 'RE: Monthly newsletter'
message:
type: string
examples:
- "Hi\r\nVery useful information. Thanks"
isHtml:
type: boolean
default: true
examples:
- false
dateReplied:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
replyType:
type: string
examples:
- Reply
examples:
Result:
summary: Result
value:
- contactId: 3
email: erik.cryer@example.com
fromAddress: erik.cryer@example.com
toAddress: demo@apiconnector.com
subject: 'RE: Monthly newsletter'
message: "Hi\r\nVery useful information. Thanks"
isHtml: false
dateReplied: '2020-01-01T09:40:18.527Z'
replyType: Reply
/v2/campaigns/{campaignID}/activities/{contactID}/roi-details:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign ROI activity for a contact
deprecated: false
description: Gets a list of ROI information for a campaign for a contact
operationId: get-campaign-roi-activity-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: The ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
markerName:
type: string
examples:
- JavascriptEngine
dataType:
type: string
examples:
- String
value:
type: string
examples:
- Carakan
dateEntered:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
markerName: JavascriptEngine
dataType: String
value: Carakan
dateEntered: '2020-01-01T09:40:18.527Z'
- contactId: 2
email: karina.plain@example.com
markerName: HasReadEntireMessage
dataType: Boolean
value: true
dateEntered: '2020-01-01T18:40:18.527Z'
- contactId: 2
email: karina.plain@example.com
markerName: JavascriptEngine
dataType: String
value: Carakan
dateEntered: '2020-01-01T20:40:14.527Z'
- contactId: 2
email: karina.plain@example.com
markerName: HasReadEntireMessage
dataType: Boolean
value: true
dateEntered: '2020-01-01T21:40:18.527Z'
/v2/campaigns/{id}/roi-details/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign ROI activity since date
deprecated: false
description: Retrieves a list of ROI information for a campaign after a specified date
operationId: get-campaign-roi-activity-since-date
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any ROI activity is returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
format: date
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 5
email:
type: string
examples:
- darryl.netherland@example.com
markerName:
type: string
examples:
- PurchaseDate
dataType:
type: string
examples:
- Date
value:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
dateEntered:
type: string
examples:
- '2020-01-01T09:40:18.527Z'
examples:
Result:
summary: Result
value:
- contactId: 5
email: darryl.netherland@example.com
markerName: PurchaseDate
dataType: Date
value: '2020-01-01T09:40:18.527Z'
dateEntered: '2020-01-01T09:40:18.527Z'
- contactId: 5
email: darryl.netherland@example.com
markerName: TimeInSecondsToReadEntireMessage
dataType: Numeric
value: 39
dateEntered: '2020-01-01T09:40:18.527Z'
- contactId: 13
email: max.gauvin@example.com
markerName: HasReadEntireMessage
dataType: Boolean
value: true
dateEntered: '2020-01-01T09:40:18.527Z'
- contactId: 21
email: deonna.medine@example.com
markerName: TimeInSecondsToReadEntireMessage
dataType: Numeric
value: 22
dateEntered: '2020-01-01T09:40:18.527Z'
/v2/campaigns/{id}/social-bookmark-views:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign social bookmark views
deprecated: false
description: Gets campaign social bookmark views for a campaign
operationId: get-campaign-social-bookmark-views
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 5
email:
type: string
examples:
- darryl.netherland@example.com
bookmarkName:
type: string
examples:
- Facebook
numViews:
type: integer
default: 0
examples:
- 1
examples:
Result:
summary: Result
value:
- contactId: 5
email: darryl.netherland@example.com
bookmarkName: Facebook
numViews: 1
- contactId: 5
email: darryl.netherland@example.com
bookmarkName: Google+
numViews: 1
- contactId: 21
email: deonna.medine@example.com
bookmarkName: Facebook
numViews: 2
/v2/campaigns/{campaignID}/activities/{contactID}/social-bookmark-views:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign social bookmark views for a contact
deprecated: false
description: Gets campaign social bookmark views for a contact
operationId: get-campaign-social-bookmark-views-for-a-contact
tags:
- Email Campaigns
parameters:
- name: campaignID
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactID
in: path
description: The ID of the contact
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
contactId:
type: integer
default: 0
examples:
- 2
email:
type: string
examples:
- karina.plain@example.com
bookmarkName:
type: string
examples:
- Facebook
numViews:
type: integer
default: 0
examples:
- 1
examples:
Result:
summary: Result
value:
- contactId: 2
email: karina.plain@example.com
bookmarkName: Facebook
numViews: 1
- contactId: 2
email: karina.plain@example.com
bookmarkName: Google+
numViews: 1
- contactId: 2
email: karina.plain@example.com
bookmarkName: LinkedIn
numViews: 1
/v2/campaigns/{id}/hard-bouncing-contacts:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign hard bouncers
deprecated: false
description: Gets a list of contacts who hard bounced when sent a particular campaign
operationId: get-campaign-hard-bouncers
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: The ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: withFullData
in: query
description: The withFullData parameter can be set to 'true' to retrieve the contacts along with their full contact data fields
required: false
schema:
type: boolean
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 22
email:
type: string
examples:
- kelly.bertone@example.com
optInType:
type: string
examples:
- Double
emailType:
type: string
examples:
- Html
dataFields: {}
status:
type: string
examples:
- Subscribed
examples:
Result:
summary: Result
value:
- id: 22
email: kelly.bertone@example.com
optInType: Double
emailType: Html
dataFields: null
status: Subscribed
/v2/campaigns/{id}/split-test:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign split test results
deprecated: false
description: Gets the split test results of a given campaign
operationId: get-campaign-split-test-results
tags:
- Email Campaigns
parameters:
- name: id
in: path
description: This is the ID of the campaign
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
versions:
type: array
items:
type: object
properties:
subjectLine:
type: string
examples:
- New product promotion 1
fromName:
type: string
examples:
- Company name
fromAddress:
type: string
examples:
- products@mycompany.com
htmlContent:
type: string
examples:
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent:
type: string
examples:
- "\r\n\n---\r\nWant to unsubscribe or change your details? $UNSUB$"
version:
type: string
examples:
- A
winningVersion:
type: boolean
default: true
examples:
- false
resultsActual:
type: integer
default: 0
examples:
- 2200
resultsPercentage:
type: number
default: 0
examples:
- 0.4150943
splitTestWinnerMetric:
type: string
examples:
- Opens
examples:
Result:
summary: Result
value:
versions:
- subjectLine: New product promotion 1
fromName: Company name
fromAddress: products@mycompany.com
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe or change your details? $UNSUB$"
version: A
winningVersion: false
resultsActual: 2200
resultsPercentage: 0.4150943
- subjectLine: New product promotion 2
fromName: Company name
fromAddress: products@mycompany.com
htmlContent: "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n| \r\n\r\n | \r\n \r\n\r\n \r\n | \r\n
\r\n\r\n
"
plainTextContent: "\r\n\n---\r\nWant to unsubscribe or change your details? $UNSUB$"
version: B
winningVersion: true
resultsActual: 3100
resultsPercentage: 0.5849057
splitTestWinnerMetric: Opens
/v2/custom-from-addresses:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get custom from addresses
deprecated: false
description: Gets all custom from addresses which can be used in a campaign
operationId: get-custom-from-addresses
tags:
- Email Campaigns
parameters: []
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
default: 0
examples:
- 1
email:
type: string
examples:
- news@company-name123.com
examples:
Result:
summary: Result
value:
- id: 1
email: news@company-name123.com
- id: 2
email: support@company-name123.com
/v2/campaigns/{campaignId}/revenue/since-date/{date}:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign revenue since date
deprecated: false
description: ''
operationId: get-campaign-revenue-since-date
tags:
- Email Campaigns
parameters:
- name: campaignId
in: path
description: The unique numeric campaign identifier you want data for
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: date
in: path
description: The date from which any revenue associated with the campaign is collated from in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
required: true
examples:
default:
value: ''
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
campaignID:
type: integer
default: 0
examples:
- 248
dateSent:
type: string
examples:
- '2022-05-13T08:20:38.953Z'
currency:
type: string
examples:
- USD
revenue:
type: number
default: 0
examples:
- 233498.94361681378
numOrders:
type: integer
default: 0
examples:
- 3755
conversionRate:
type: number
default: 0
examples:
- 2.495016611295681
examples:
Result:
summary: Result
value:
campaignID: 248
dateSent: '2022-05-13T08:20:38.953Z'
currency: USD
revenue: 233498.94361681378
numOrders: 3755
conversionRate: 2.495016611295681
/v2/campaigns/{campaignId}/activities/{contactId}/revenue:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
summary: Get campaign revenue for contact
deprecated: false
description: ''
operationId: get-campaign-revenue-for-contact
tags:
- Email Campaigns
parameters:
- name: campaignId
in: path
description: The unique numeric campaign identifier you want data for
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
- name: contactId
in: path
description: The unique numeric identifier for the contact you want the data for
required: true
examples:
default:
value: 0
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
campaignID:
type: integer
default: 0
examples:
- 248
dateSent:
type: string
examples:
- '2022-05-13T08:20:38.953Z'
currency:
type: string
examples:
- USD
revenue:
type: number
default: 0
examples:
- 233498.94361681378
numOrders:
type: integer
default: 0
examples:
- 3755
conversionRate:
type: number
default: 0
examples:
- 2.495016611295681
examples:
Result:
summary: Result
value:
campaignID: 248
dateSent: '2022-05-13T08:20:38.953Z'
currency: USD
revenue: 233498.94361681378
numOrders: 3755
conversionRate: 2.495016611295681
/v2/campaigns/metrics:
parameters:
- in: header
name: x-ddg-integration-token
required: false
description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
schema:
type: string
pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
get:
tags:
- Email Campaigns
summary: Gets sent campaigns metrics between the specified dates.
description: Gets key campaign metrics between the specified dates in UTC for all campaigns with activity.
operationId: getDailyCampaignMetrics
parameters:
- name: startDate
description: The start date/time for the reporting in UTC [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
in: query
required: true
schema:
type: string
format: date-time
examples:
- '2026-01-01T00:00:00.000Z'
- name: endDate
description: The end date/time for the reporting in UTC [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
in: query
required: true
schema:
type: string
format: date-time
examples:
- '2026-01-07T00:00:00.000Z'
- name: select
in: query
description: The number of records to select between 1 and 1000 to retrieve.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1000
- name: skip
in: query
description: The numbers of records to skip in the result set.
required: false
schema:
type: integer
minimum: 1
format: int32
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
additionalProperties: false
required:
- campaignId
- campaignName
- campaignType
- tags
- subjectLine
- dateSent
- lastDateSent
- sent
- delivered
- uniqueOpens
- clicks
- uniqueClicks
- replies
- hardBounces
- softBounces
- unsubscribes
- forwards
- orders
- assistedOrders
- sendStatusFails
- mailBlocks
- opens
- complaints
- pageViews
- percentageDelivered
- percentageUniqueOpens
- percentageHardBounces
- percentageSoftBounces
- percentageReplies
- percentageUnsubscribes
- percentageUniqueClicks
- percentageUniqueClicksToOpens
- revenue
- assistedRevenue
- conversionRate
properties:
campaignId:
description: The unique id for the campaign.
type: integer
format: int32
examples:
- 12345
campaignName:
description: The friendly name of the campaign.
type: string
examples:
- Re-engagement 1
campaignType:
type: string
description: ''
enum:
- Standard
- Triggered
- Template
- AiTemplate
tags:
description: Any reporting tags assigned ot the campaign.
type: array
minItems: 0
examples:
- Promotion
- Club_card
items:
type: string
subjectLine:
description: The subject line for the campaign.
type: string
examples:
- Hurry before the double deals expire!
dateSent:
description: The date/time the campaign was first sent in UTC ISO-8601 format.
type: string
format: date-time
examples:
- '2026-01-01T09:00:00.000Z'
lastDateSent:
description: The date/time the campaign was last sent in UTC ISO-8601 format.
type: string
format: date-time
sent:
description: The number of email sent.
type: integer
format: int32
minimum: 0
examples:
- 1000
delivered:
description: The total number of delivered emails.
type: integer
format: int32
minimum: 0
examples:
- 900
uniqueOpens:
type: integer
format: int32
clicks:
description: The number of clicks on tracked links.
type: integer
format: int32
minimum: 0
examples:
- 123
uniqueClicks:
description: The number of unique recipients that clicked.
type: integer
format: int32
minimum: 0
examples:
- 110
replies:
description: The number of reply emails received related to this campaign.
type: integer
format: int32
minimum: 0
examples:
- 13
hardBounces:
description: The number of hard bounces (permanent failure to deliver).
type: integer
format: int32
minimum: 0
examples:
- 15
softBounces:
description: The number of soft bounces (temporary failure to deliver).
type: integer
format: int32
minimum: 0
examples:
- 85
unsubscribes:
description: The number of unsubscribe requests for the campaign.
type: integer
format: int32
minimum: 0
examples:
- 25
forwards:
description: The number of times the campaign email has been forwarded.
type: integer
format: int32
minimum: 0
examples:
- 6
orders:
description: The number of orders directly attributed to the campaign.
type: integer
format: int32
minimum: 0
examples:
- 50
assistedOrders:
description: The number of orders influenced by the campaign.
type: integer
format: int32
minimum: 0
examples:
- 35
sendStatusFails:
description: The number of emails that failed to send.
type: integer
format: int32
minimum: 0
examples:
- 0
mailBlocks:
description: The number of mail blocks detected for the campaign.
type: integer
format: int32
minimum: 0
examples:
- 0
opens:
description: The number of email opens.
type: integer
format: int32
minimum: 0
examples:
- 875
complaints:
description: The number of ISP complaints.
type: integer
format: int32
minimum: 0
examples:
- 1
pageViews:
description: The number of pages/forms views related to the campaign.
type: integer
format: int32
minimum: 0
examples:
- 0
percentageDelivered:
description: The percentage of delivered email vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 90
percentageUniqueOpens:
description: The percentage of opens for unique contacts vs. total opens.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 90
percentageHardBounces:
description: The percentage of emails that hard bounces vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 3.5
percentageSoftBounces:
description: The percentage of emails that soft bounces vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 8.9
percentageReplies:
description: The percentage of replies receivied vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 1.6
percentageUnsubscribes:
description: The percentage of unsubscribes vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 5.6
percentageUniqueClicks:
description: The percentage of clicks made by unique contacts vs. total clicks.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 95
percentageUniqueClicksToOpens:
description: The percentage of clicks made by unique contacts vs. opens.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 100
revenue:
description: The revenue attributed to the campaign in the accounts currency.
type: number
format: decimal
minimum: 0
examples:
- 100888.34
assistedRevenue:
description: The assisted revenue attributed to the campaign in the accounts currency.
type: number
format: decimal
minimum: 0
examples:
- 5001
conversionRate:
description: The percentage of unique clicks to orders.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 50
- type: object
additionalProperties: false
required:
- fromName
- fromAddress
- isSplitTest
properties:
fromName:
description: The friendly "from" name used with the campaign.
type: string
fromAddress:
description: The email address the campaign was sent from.
type: string
format: email
isSplitTest:
description: Indicates whether the campaign used split testing or not.
type: boolean
examples:
result:
summary: Array of sent campaigns in time range
value:
- campaignId: 2309633
dateSent: '2026-02-28T03:47:32.73Z'
campaignName: Welcome
campaignType: Standard
sent: 1
delivered: 1
uniqueOpens: 1
clicks: 0
hardBounces: 0
softBounces: 0
replies: 0
unsubscribes: 0
forwards: 0
uniqueClicks: 0
sendStatusFails: 0
mailBlocks: 0
opens: 16
complaints: 0
pageViews: 0
percentageDelivered: 100
percentageUniqueOpens: 100
percentageHardBounces: 0
percentageSoftBounces: 0
percentageReplies: 0
percentageUnsubscribes: 0
percentageUniqueClicks: 0
percentageUniqueClicksToOpens: 0
revenue: 0
conversionRate: 0
assistedRevenue: 0
orders: 0
assistedOrders: 0
tags: []
subjectLine: Redefine your kitchen with our newest arrival U0001F373
fromName: Kitchens Inc
fromAddress: 12345@r1.dotdigital-email.com
isSplitTest: false
components:
schemas:
CampaignReportModelExtended:
allOf:
- type: object
additionalProperties: false
required:
- campaignId
- campaignName
- campaignType
- tags
- subjectLine
- dateSent
- lastDateSent
- sent
- delivered
- uniqueOpens
- clicks
- uniqueClicks
- replies
- hardBounces
- softBounces
- unsubscribes
- forwards
- orders
- assistedOrders
- sendStatusFails
- mailBlocks
- opens
- complaints
- pageViews
- percentageDelivered
- percentageUniqueOpens
- percentageHardBounces
- percentageSoftBounces
- percentageReplies
- percentageUnsubscribes
- percentageUniqueClicks
- percentageUniqueClicksToOpens
- revenue
- assistedRevenue
- conversionRate
properties:
campaignId:
description: The unique id for the campaign.
type: integer
format: int32
examples:
- 12345
campaignName:
description: The friendly name of the campaign.
type: string
examples:
- Re-engagement 1
campaignType:
type: string
description: ''
enum:
- Standard
- Triggered
- Template
- AiTemplate
tags:
description: Any reporting tags assigned ot the campaign.
type: array
minItems: 0
examples:
- Promotion
- Club_card
items:
type: string
subjectLine:
description: The subject line for the campaign.
type: string
examples:
- Hurry before the double deals expire!
dateSent:
description: The date/time the campaign was first sent in UTC ISO-8601 format.
type: string
format: date-time
examples:
- '2026-01-01T09:00:00.000Z'
lastDateSent:
description: The date/time the campaign was last sent in UTC ISO-8601 format.
type: string
format: date-time
sent:
description: The number of email sent.
type: integer
format: int32
minimum: 0
examples:
- 1000
delivered:
description: The total number of delivered emails.
type: integer
format: int32
minimum: 0
examples:
- 900
uniqueOpens:
type: integer
format: int32
clicks:
description: The number of clicks on tracked links.
type: integer
format: int32
minimum: 0
examples:
- 123
uniqueClicks:
description: The number of unique recipients that clicked.
type: integer
format: int32
minimum: 0
examples:
- 110
replies:
description: The number of reply emails received related to this campaign.
type: integer
format: int32
minimum: 0
examples:
- 13
hardBounces:
description: The number of hard bounces (permanent failure to deliver).
type: integer
format: int32
minimum: 0
examples:
- 15
softBounces:
description: The number of soft bounces (temporary failure to deliver).
type: integer
format: int32
minimum: 0
examples:
- 85
unsubscribes:
description: The number of unsubscribe requests for the campaign.
type: integer
format: int32
minimum: 0
examples:
- 25
forwards:
description: The number of times the campaign email has been forwarded.
type: integer
format: int32
minimum: 0
examples:
- 6
orders:
description: The number of orders directly attributed to the campaign.
type: integer
format: int32
minimum: 0
examples:
- 50
assistedOrders:
description: The number of orders influenced by the campaign.
type: integer
format: int32
minimum: 0
examples:
- 35
sendStatusFails:
description: The number of emails that failed to send.
type: integer
format: int32
minimum: 0
examples:
- 0
mailBlocks:
description: The number of mail blocks detected for the campaign.
type: integer
format: int32
minimum: 0
examples:
- 0
opens:
description: The number of email opens.
type: integer
format: int32
minimum: 0
examples:
- 875
complaints:
description: The number of ISP complaints.
type: integer
format: int32
minimum: 0
examples:
- 1
pageViews:
description: The number of pages/forms views related to the campaign.
type: integer
format: int32
minimum: 0
examples:
- 0
percentageDelivered:
description: The percentage of delivered email vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 90
percentageUniqueOpens:
description: The percentage of opens for unique contacts vs. total opens.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 90
percentageHardBounces:
description: The percentage of emails that hard bounces vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 3.5
percentageSoftBounces:
description: The percentage of emails that soft bounces vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 8.9
percentageReplies:
description: The percentage of replies receivied vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 1.6
percentageUnsubscribes:
description: The percentage of unsubscribes vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 5.6
percentageUniqueClicks:
description: The percentage of clicks made by unique contacts vs. total clicks.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 95
percentageUniqueClicksToOpens:
description: The percentage of clicks made by unique contacts vs. opens.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 100
revenue:
description: The revenue attributed to the campaign in the accounts currency.
type: number
format: decimal
minimum: 0
examples:
- 100888.34
assistedRevenue:
description: The assisted revenue attributed to the campaign in the accounts currency.
type: number
format: decimal
minimum: 0
examples:
- 5001
conversionRate:
description: The percentage of unique clicks to orders.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 50
- type: object
additionalProperties: false
required:
- fromName
- fromAddress
- isSplitTest
properties:
fromName:
description: The friendly "from" name used with the campaign.
type: string
fromAddress:
description: The email address the campaign was sent from.
type: string
format: email
isSplitTest:
description: Indicates whether the campaign used split testing or not.
type: boolean
CampaignReportModel:
type: object
additionalProperties: false
required:
- campaignId
- campaignName
- campaignType
- tags
- subjectLine
- dateSent
- lastDateSent
- sent
- delivered
- uniqueOpens
- clicks
- uniqueClicks
- replies
- hardBounces
- softBounces
- unsubscribes
- forwards
- orders
- assistedOrders
- sendStatusFails
- mailBlocks
- opens
- complaints
- pageViews
- percentageDelivered
- percentageUniqueOpens
- percentageHardBounces
- percentageSoftBounces
- percentageReplies
- percentageUnsubscribes
- percentageUniqueClicks
- percentageUniqueClicksToOpens
- revenue
- assistedRevenue
- conversionRate
properties:
campaignId:
description: The unique id for the campaign.
type: integer
format: int32
examples:
- 12345
campaignName:
description: The friendly name of the campaign.
type: string
examples:
- Re-engagement 1
campaignType:
type: string
description: ''
enum:
- Standard
- Triggered
- Template
- AiTemplate
tags:
description: Any reporting tags assigned ot the campaign.
type: array
minItems: 0
examples:
- Promotion
- Club_card
items:
type: string
subjectLine:
description: The subject line for the campaign.
type: string
examples:
- Hurry before the double deals expire!
dateSent:
description: The date/time the campaign was first sent in UTC ISO-8601 format.
type: string
format: date-time
examples:
- '2026-01-01T09:00:00.000Z'
lastDateSent:
description: The date/time the campaign was last sent in UTC ISO-8601 format.
type: string
format: date-time
sent:
description: The number of email sent.
type: integer
format: int32
minimum: 0
examples:
- 1000
delivered:
description: The total number of delivered emails.
type: integer
format: int32
minimum: 0
examples:
- 900
uniqueOpens:
type: integer
format: int32
clicks:
description: The number of clicks on tracked links.
type: integer
format: int32
minimum: 0
examples:
- 123
uniqueClicks:
description: The number of unique recipients that clicked.
type: integer
format: int32
minimum: 0
examples:
- 110
replies:
description: The number of reply emails received related to this campaign.
type: integer
format: int32
minimum: 0
examples:
- 13
hardBounces:
description: The number of hard bounces (permanent failure to deliver).
type: integer
format: int32
minimum: 0
examples:
- 15
softBounces:
description: The number of soft bounces (temporary failure to deliver).
type: integer
format: int32
minimum: 0
examples:
- 85
unsubscribes:
description: The number of unsubscribe requests for the campaign.
type: integer
format: int32
minimum: 0
examples:
- 25
forwards:
description: The number of times the campaign email has been forwarded.
type: integer
format: int32
minimum: 0
examples:
- 6
orders:
description: The number of orders directly attributed to the campaign.
type: integer
format: int32
minimum: 0
examples:
- 50
assistedOrders:
description: The number of orders influenced by the campaign.
type: integer
format: int32
minimum: 0
examples:
- 35
sendStatusFails:
description: The number of emails that failed to send.
type: integer
format: int32
minimum: 0
examples:
- 0
mailBlocks:
description: The number of mail blocks detected for the campaign.
type: integer
format: int32
minimum: 0
examples:
- 0
opens:
description: The number of email opens.
type: integer
format: int32
minimum: 0
examples:
- 875
complaints:
description: The number of ISP complaints.
type: integer
format: int32
minimum: 0
examples:
- 1
pageViews:
description: The number of pages/forms views related to the campaign.
type: integer
format: int32
minimum: 0
examples:
- 0
percentageDelivered:
description: The percentage of delivered email vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 90
percentageUniqueOpens:
description: The percentage of opens for unique contacts vs. total opens.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 90
percentageHardBounces:
description: The percentage of emails that hard bounces vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 3.5
percentageSoftBounces:
description: The percentage of emails that soft bounces vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 8.9
percentageReplies:
description: The percentage of replies receivied vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 1.6
percentageUnsubscribes:
description: The percentage of unsubscribes vs. sent.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 5.6
percentageUniqueClicks:
description: The percentage of clicks made by unique contacts vs. total clicks.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 95
percentageUniqueClicksToOpens:
description: The percentage of clicks made by unique contacts vs. opens.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 100
revenue:
description: The revenue attributed to the campaign in the accounts currency.
type: number
format: decimal
minimum: 0
examples:
- 100888.34
assistedRevenue:
description: The assisted revenue attributed to the campaign in the accounts currency.
type: number
format: decimal
minimum: 0
examples:
- 5001
conversionRate:
description: The percentage of unique clicks to orders.
type: number
format: decimal
maximum: 100
minimum: 0
examples:
- 50
CampaignType:
type: string
description: ''
enum:
- Standard
- Triggered
- Template
- AiTemplate
securitySchemes:
basicAuth:
type: http
scheme: basic