Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/dotdigital-campaign-templates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Campaign Templates API
description: 'Create, retrieve, and update reusable email campaign templates. Use this API to
create templates with HTML and plain-text content, list all templates with
pagination, fetch a specific template by ID, and update an existing template''s
name, subject, from name, and content.'
version: 2.0.1
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: []
tags:
- name: Campaign Templates
paths:
/v2/templates:
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 template
deprecated: false
description: Creates an email campaign template
operationId: create-template
tags:
- Campaign Templates
parameters: []
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- subject
- fromName
- htmlContent
- plainTextContent
properties:
name:
type: string
description: The name of the template being created
subject:
type: string
description: The email subject line of the template
fromName:
type: string
description: The from name of the template
htmlContent:
type: string
description: The HTML content of the template
plainTextContent:
type: string
description: The plain text content of the template
examples:
Request Example:
value:
name: New product promotion 2
subject: New product!
fromName: Company name
htmlContent: '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent: '
---
Want to unsubscribe? $UNSUB$'
summary: Request Example
responses:
'201':
description: '201'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 4
name:
type: string
examples:
- New product promotion 2
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
htmlContent:
type: string
examples:
- '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent:
type: string
examples:
- '
---
Want to unsubscribe? $UNSUB$'
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
examples:
Result:
summary: Result
value:
id: 4
name: New product promotion 2
subject: New product!
fromName: Company name
htmlContent: '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent: '
---
Want to unsubscribe? $UNSUB$'
replyAction: Unset
replyToAddress: ''
get:
summary: Get templates
deprecated: false
description: Gets a list of all email campaign templates
operationId: get-templates
tags:
- Campaign Templates
parameters:
- name: select
in: query
description: The number of records to select between 1 and 1000
required: false
schema:
type: integer
format: int32
- name: skip
in: query
description: The numbers of records to skip in the result set
required: false
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:
- 1
name:
type: string
examples:
- Monthly newsletter Dec 2015
subject:
type: string
examples:
- Monthly newsletter
fromName:
type: string
examples:
- Company name
htmlContent: {}
plainTextContent: {}
replyAction:
type: string
examples:
- Unset
replyToAddress: {}
examples:
Result:
summary: Result
value:
- id: 1
name: Monthly newsletter Dec 2015
subject: Monthly newsletter
fromName: Company name
htmlContent: null
plainTextContent: null
replyAction: Unset
replyToAddress: null
- id: 2
name: Financial update
subject: Financial update
fromName: Company name
htmlContent: null
plainTextContent: null
replyAction: Unset
replyToAddress: null
- id: 3
name: New product promotion
subject: New product!
fromName: Company name
htmlContent: null
plainTextContent: null
replyAction: WebMailForward
replyToAddress: shop@company-name123.com
/v2/templates/{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 template by id
deprecated: false
description: Gets an email campaign template by id
operationId: get-template-by-id
tags:
- Campaign Templates
parameters:
- name: id
in: path
description: The id of the email campaign template
required: true
example: 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
subject:
type: string
examples:
- New product!
fromName:
type: string
examples:
- Company name
htmlContent:
type: string
examples:
- '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent:
type: string
examples:
- '
---
Want to unsubscribe? $UNSUB$'
replyAction:
type: string
examples:
- WebMailForward
replyToAddress:
type: string
examples:
- shop@company-name123.com
examples:
Result:
summary: Result
value:
id: 1
name: New product promotion
subject: New product!
fromName: Company name
htmlContent: '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent: '
---
Want to unsubscribe? $UNSUB$'
replyAction: WebMailForward
replyToAddress: shop@company-name123.com
put:
summary: Update template
deprecated: false
description: Creates an email campaign template
operationId: update-template
tags:
- Campaign Templates
parameters:
- name: id
in: path
description: The id of the template being updated
required: true
example: 0
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- subject
- fromName
- htmlContent
- plainTextContent
properties:
name:
type: string
description: The name of the template being created
subject:
type: string
description: The email subject line of the template
fromName:
type: string
description: The from name of the template
htmlContent:
type: string
description: The HTML content of the template
plainTextContent:
type: string
description: The plain text content of the template
examples:
Request Example:
value:
name: New product promotion
subject: New product!
fromName: Company name
htmlContent: '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent: '
---
Want to unsubscribe? $UNSUB$'
summary: Request Example
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
default: 0
examples:
- 4
name:
type: string
examples:
- New product promotion 2
subject:
type: string
examples:
- Brand new product released!
fromName:
type: string
examples:
- Company name
htmlContent:
type: string
examples:
- '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent:
type: string
examples:
- '
---
Want to unsubscribe? $UNSUB$'
replyAction:
type: string
examples:
- Unset
replyToAddress:
type: string
examples:
- ''
examples:
Result:
summary: Result
value:
id: 4
name: New product promotion 2
subject: Brand new product released!
fromName: Company name
htmlContent: '
<!-- Easy Editor -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="ee_resizable ee_mobiletemplate" data-dmtmp="true">
<tbody>
<tr>
<td align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
<table width="600" border="0" cellspacing="0" cellpadding="0" style="table-layout: auto;" class="eem_mainouterzone">
<tbody>
<tr>
<td bgcolor="#ffffff" class="ee_dropzone" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" align="left">
<table width="100%" cellpadding="0" cellspacing="0" style="width: 600px; background-color: rgb(255, 255, 255); table-layout: auto;" class="ee_element" bgcolor="#ffffff">
<tbody>
<tr>
<td align="left" style="padding: 0px; width: 600px;" class=""><div class="ee_editable"><font style="font-family: ''trebuchet ms'', verdana, arial, sans-serif; font-size: 13px;"><a href="http://$UNSUB$" style="color: black;"> Unsubscribe from this newsletter</a></font> </div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>'
plainTextContent: '
---
Want to unsubscribe? $UNSUB$'
replyAction: Unset
replyToAddress: ''
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
externalDocs:
description: Learn more about Dotdigital APIs
url: https://developer.dotdigital.com
x-readme:
headers: []
explorer-enabled: true
proxy-enabled: true
x-readme-fauxas: true
x-samples-languages:
- curl
- csharp
- java
- javascript
- node
- python
- php
- ruby