Download OpenAPI specification:Download
⚠️⚠️⚠️ PLEASE REFER TO THE API BASIC SECTION FIRST ⚠️⚠️⚠️
Most collection endpoints support query parameters for filtering, sorting, field selection, and pagination:
, between conditions to AND| between values to OR. to access nested attributes=, !=, >, >=, <, <=, existsExample: filters=name = Test List,deleted = false
, to sort by multiple fields- prefix for descending orderExample: sort=-name
, to select multiple fields_id and _owner are always includedExample: fields=name,description
⚠️⚠️⚠️ PLEASE REFER TO THE AUTHENTICATION SECTION FIRST ⚠️⚠️⚠️
POST /v1/authAuthorization header as JWT <token>Exchange your API key and secret for a JWT token.
The JWT token is used to authenticate subsequent API requests.
| apikey required | string |
| secret required | string |
{- "apikey": "string",
- "secret": "string"
}{- "jwt": "string",
- "mode": "string",
- "client": "string",
- "clientid": "string"
}Manage a Client's Campaigns.
Note: The Campaign entity supports multiple types, but only EmailCampaign (type = 2) is documented.
Refrain from using other campaign types.
| filters | string |
| sort | string |
| fields | string |
| skip | integer >= 0 Default: 0 |
| limit | integer >= 1 Default: 100 |
[- {
- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "folder": "string",
- "type": 2,
- "status": "d",
- "start": "2019-08-24T14:15:22Z",
- "batchConfiguration": {
- "type": "none"
}, - "emails": [
- {
- "email": "string",
- "weight": 100
}
], - "lists": [
- {
- "list": null
}
], - "mailinglist": {
- "mailinglist": "string",
- "statusFilter": 0,
- "language": "en"
}
}
]⚠️⚠️⚠️ PLEASE REFER TO THE EMAILING GUIDE BEFORE USING THE CAMPAIGN API ⚠️⚠️⚠️**
Create a new Campaign (currently only EmailCampaign type is supported).
Required before creating:
Folder to organize campaignsEmail design to use in the campaignRequired before sending:
List containing the Contacts to send to| _id required | string |
| _owner required | string |
| name required | string |
| description | string |
| folder required | string |
| type required | integer Value: 2 |
| status | string (EmailCampaignStatus) Enum: "d" "a" "i" d = draft, a = active, i = inactive |
| start | string <date-time> |
None (object) or Fixed Count (object) or Fixed Size (object) (BatchConfiguration) | |
Array of objects (EmailVariant) | |
Array of All Contacts (object) or Include List (object) or Exclude List (object) (CampaignList) | |
object (CampaignMailingList) |
{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "folder": "string",
- "type": 2,
- "status": "d",
- "start": "2019-08-24T14:15:22Z",
- "batchConfiguration": {
- "type": "none"
}, - "emails": [
- {
- "email": "string",
- "weight": 100
}
], - "lists": [
- {
- "list": null
}
], - "mailinglist": {
- "mailinglist": "string",
- "statusFilter": 0,
- "language": "en"
}
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "folder": "string",
- "type": 2,
- "status": "d",
- "start": "2019-08-24T14:15:22Z",
- "batchConfiguration": {
- "type": "none"
}, - "emails": [
- {
- "email": "string",
- "weight": 100
}
], - "lists": [
- {
- "list": null
}
], - "mailinglist": {
- "mailinglist": "string",
- "statusFilter": 0,
- "language": "en"
}
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "folder": "string",
- "type": 2,
- "status": "d",
- "start": "2019-08-24T14:15:22Z",
- "batchConfiguration": {
- "type": "none"
}, - "emails": [
- {
- "email": "string",
- "weight": 100
}
], - "lists": [
- {
- "list": null
}
], - "mailinglist": {
- "mailinglist": "string",
- "statusFilter": 0,
- "language": "en"
}
}Partial update of a Campaign.
To schedule an EmailCampaign, set the start date to a future datetime.
To send an EmailCampaign, update the status to "a" (active).
| id required | string |
| name | string |
| description | string |
| status | string (EmailCampaignStatus) Enum: "d" "a" "i" d = draft, a = active, i = inactive |
| start | string <date-time> |
None (object) or Fixed Count (object) or Fixed Size (object) (BatchConfiguration) | |
Array of objects (EmailVariant) | |
Array of All Contacts (object) or Include List (object) or Exclude List (object) (CampaignList) | |
object (CampaignMailingList) |
{- "name": "string",
- "description": "string",
- "status": "d",
- "start": "2019-08-24T14:15:22Z",
- "batchConfiguration": {
- "type": "none"
}, - "emails": [
- {
- "email": "string",
- "weight": 100
}
], - "lists": [
- {
- "list": null
}
], - "mailinglist": {
- "mailinglist": "string",
- "statusFilter": 0,
- "language": "en"
}
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "folder": "string",
- "type": 2,
- "status": "d",
- "start": "2019-08-24T14:15:22Z",
- "batchConfiguration": {
- "type": "none"
}, - "emails": [
- {
- "email": "string",
- "weight": 100
}
], - "lists": [
- {
- "list": null
}
], - "mailinglist": {
- "mailinglist": "string",
- "statusFilter": 0,
- "language": "en"
}
}Manage contacts in your marketing database.
Contacts represent people in your marketing database, identified by a unique email address.
Each Contact can have custom Properties, belong to Lists, and have subscription preferences for MailingLists if GDPR is enabled.
| filters | string |
| sort | string |
| fields | string |
| skip | integer >= 0 Default: 0 |
| limit | integer >= 1 Default: 100 |
[- {
- "_id": "string",
- "_owner": "string",
- "email": "string",
- "name": "string",
- "properties": { },
- "subscribed": true,
- "created": "2019-08-24T14:15:22Z",
- "lifecycle": "string",
- "lists": [
- {
- "list": "string",
- "time": "2019-08-24T14:15:22Z"
}
], - "mailinglists": [
- {
- "mailinglist": "string",
- "status": "opt-in",
- "updated": "2019-08-24T14:15:22Z"
}
], - "sessionTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}, - "emailTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}
}
]| email required | string |
| properties | object |
{- "email": "string",
- "properties": { }
}{- "_id": "string",
- "_owner": "string",
- "email": "string",
- "name": "string",
- "properties": { },
- "subscribed": true,
- "created": "2019-08-24T14:15:22Z",
- "lifecycle": "string",
- "lists": [
- {
- "list": "string",
- "time": "2019-08-24T14:15:22Z"
}
], - "mailinglists": [
- {
- "mailinglist": "string",
- "status": "opt-in",
- "updated": "2019-08-24T14:15:22Z"
}
], - "sessionTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}, - "emailTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}
}Insert a new Contact if it doesn't exist, or update it if it does (based on email)
| email required | string |
| properties | object |
{- "email": "string",
- "properties": { }
}{- "_id": "string",
- "_owner": "string",
- "email": "string",
- "name": "string",
- "properties": { },
- "subscribed": true,
- "created": "2019-08-24T14:15:22Z",
- "lifecycle": "string",
- "lists": [
- {
- "list": "string",
- "time": "2019-08-24T14:15:22Z"
}
], - "mailinglists": [
- {
- "mailinglist": "string",
- "status": "opt-in",
- "updated": "2019-08-24T14:15:22Z"
}
], - "sessionTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}, - "emailTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}
}{- "_id": "string",
- "_owner": "string",
- "email": "string",
- "name": "string",
- "properties": { },
- "subscribed": true,
- "created": "2019-08-24T14:15:22Z",
- "lifecycle": "string",
- "lists": [
- {
- "list": "string",
- "time": "2019-08-24T14:15:22Z"
}
], - "mailinglists": [
- {
- "mailinglist": "string",
- "status": "opt-in",
- "updated": "2019-08-24T14:15:22Z"
}
], - "sessionTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}, - "emailTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}
}Partial update of a Contact. Only properties can be updated via this endpoint.
Special behavior for properties:
The properties object is merged with existing properties, not replaced.
To update a single property, send only that property.
Example updating properties:
{
"properties": {
"company": "New Company Inc."
}
}
This will update only the "company" property while keeping other properties intact.
To manage list membership, use the dedicated endpoints documented in the Lists section.
| id required | string |
| properties | object |
{- "properties": { }
}{- "_id": "string",
- "_owner": "string",
- "email": "string",
- "name": "string",
- "properties": { },
- "subscribed": true,
- "created": "2019-08-24T14:15:22Z",
- "lifecycle": "string",
- "lists": [
- {
- "list": "string",
- "time": "2019-08-24T14:15:22Z"
}
], - "mailinglists": [
- {
- "mailinglist": "string",
- "status": "opt-in",
- "updated": "2019-08-24T14:15:22Z"
}
], - "sessionTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}, - "emailTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}
}Manage email designs.
Emails represent email designs used in EmailCampaigns.
Each Email contains HTML content, subject line, sender information, and other email-specific settings.
| filters | string |
| sort | string |
| fields | string |
| skip | integer >= 0 Default: 0 |
| limit | integer >= 1 Default: 100 |
[- {
- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "subject": "string",
- "preheader": "string",
- "fromemail": "string",
- "fromname": "string",
- "unsubscribetext": "string",
- "editor": "bee",
- "body": "string",
- "json": "string"
}
]| name required | string |
| description | string |
| subject | string |
| preheader | string |
| fromemail | string |
| fromname | string |
| unsubscribetext | string |
| editor | string Default: "bee" Value: "bee" |
| body | string |
| json | string |
{- "name": "string",
- "description": "string",
- "subject": "string",
- "preheader": "string",
- "fromemail": "string",
- "fromname": "string",
- "unsubscribetext": "string",
- "editor": "bee",
- "body": "string",
- "json": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "subject": "string",
- "preheader": "string",
- "fromemail": "string",
- "fromname": "string",
- "unsubscribetext": "string",
- "editor": "bee",
- "body": "string",
- "json": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "subject": "string",
- "preheader": "string",
- "fromemail": "string",
- "fromname": "string",
- "unsubscribetext": "string",
- "editor": "bee",
- "body": "string",
- "json": "string"
}| id required | string |
| name | string |
| description | string |
| subject | string |
| preheader | string |
| fromemail | string |
| fromname | string |
| unsubscribetext | string |
| editor | string Default: "bee" Value: "bee" |
| body | string |
| json | string |
{- "name": "string",
- "description": "string",
- "subject": "string",
- "preheader": "string",
- "fromemail": "string",
- "fromname": "string",
- "unsubscribetext": "string",
- "editor": "bee",
- "body": "string",
- "json": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "subject": "string",
- "preheader": "string",
- "fromemail": "string",
- "fromname": "string",
- "unsubscribetext": "string",
- "editor": "bee",
- "body": "string",
- "json": "string"
}Organize campaigns and email designs.
Folders are used to organize and group campaigns and emails for better management and organization.
| name required | string |
| description | string |
{- "name": "string",
- "description": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string"
}| id required | string |
| name | string |
| description | string |
{- "name": "string",
- "description": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string"
}Manage contact lists for segmentation and targeting.
Lists are used to group contacts for sending EmailCampaigns or organizing them.
Use lists to create segments like "Webinar Attendees" or "Black Friday Leads".
| name required | string |
| description | string |
{- "name": "string",
- "description": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string"
}| id required | string |
| name | string |
| description | string |
{- "name": "string",
- "description": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string"
}| list_id required | string |
| filters | string |
| sort | string |
| fields | string |
| skip | integer >= 0 Default: 0 |
| limit | integer >= 1 Default: 100 |
[- {
- "_id": "string",
- "_owner": "string",
- "email": "string",
- "name": "string",
- "properties": { },
- "subscribed": true,
- "created": "2019-08-24T14:15:22Z",
- "lifecycle": "string",
- "lists": [
- {
- "list": "string",
- "time": "2019-08-24T14:15:22Z"
}
], - "mailinglists": [
- {
- "mailinglist": "string",
- "status": "opt-in",
- "updated": "2019-08-24T14:15:22Z"
}
], - "sessionTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}, - "emailTrackingConsent": {
- "status": "DENIED",
- "updated": "2019-08-24T14:15:22Z"
}
}
]Manage GDPR-compliant email subscription categories.
MailingLists represent email categories that Contacts can opt-in or opt-out of, such as "General communication", "Newsletter", or "Promotions".
They are used to ensure GDPR compliance by respecting Contact subscription preferences.
MailingLists work in combination with Lists: use Lists to target specific Contacts,
while MailingLists ensure you only send to those who opted-in to that category.
Retrieve performance metrics for EmailCampaigns and Emails.
⚠️⚠️⚠️ PLEASE REFER TO THE METRICS SECTION IN THE EMAILING GUIDE FIRST ⚠️⚠️⚠️**
| element_type required | string Enum: "campaign" "target" campaign = metrics for an |
| element_id required | string |
| compile | boolean Get aggregated totals |
| startdate | string <date-time> |
| enddate | string <date-time> |
[- {
- "_id": "<element_id>",
- "sent": 1000,
- "open": 250,
- "uniqueopen": 200,
- "click": 50,
- "uniqueclick": 45,
- "bounce": 10,
- "unsubscribe": 5,
- "spam": 1
}
]Manage Contact custom Properties.
You can define custom Properties that store additional information in a Contact.
Built-in system Properties like "email", "firstname", "lastname", "phone", and "gender" already exist,
but you can create your own custom Properties for your specific needs like "company", "industry", or "jobtitle".
Each Property has a shortcode that serves as the key in a Contact's properties object.
All property values are stored as strings.
Example Contact with properties:
{
"_id": "000000000000000000000001",
"properties": {
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "Doe's Inc.",
"jobtitle": "CEO"
}
}
| name required | string |
| shortcode required | string |
| description | string |
{- "name": "string",
- "shortcode": "string",
- "description": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "shortcode": "string"
}| id required | string |
| name | string |
| shortcode | string |
| description | string |
{- "name": "string",
- "shortcode": "string",
- "description": "string"
}{- "_id": "string",
- "_owner": "string",
- "name": "string",
- "description": "string",
- "shortcode": "string"
}