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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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