TouchBasePro email API v1 (1.0)

Download OpenAPI specification:

This is a new email API v1 of TouchBasePro. This version uses the Basic Authentication scheme to authenticate requests securely. Basic Authentication is a widely accepted method where API credentials (username and password) are encoded in Base64 format and sent in the HTTP request headers. To learn more about Basic Authentication, refer to the official documentation: RFC 7617 - Basic Authentication Scheme

How Basic Authentication Works: Basic Authentication requires clients to send an Authorization header with a base64-encoding string containing the API key and password.

The format is as follows: Authorization: Basic <credentials>

Where:

  • 'Credentials' is the Base64 encoding of the API Key and password, joined by a colon (:).

  • The API Key serves as the username.

  • The password can be set to any random or predefined string value.

For example, if we have the following credentials:

  • API Key: John

  • Password: john@2025

Encoding John:john@2025 in Base64 results in: Sm9objpqb2huQDIwMjU=

The final Authorization header that should be included in the API request: Authorization: Basic Sm9objpqb2huQDIwMjU=

Lists

Operations related to subscriber lists

/Lists - GET

By calling this method you can get your subscriber lists. Results will be split into pages, each response containing single page (i.e. certain number of list records). Please set values for optional query values (page and pageSize) to define which page of result to return and how many list records will be in each page. If not specified, the first (i.e. page=1) 1000 records (i.e. pageSize=1000) will be returned. In case of error, response body might contain error object (having error code and message properties). To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32. Page ordinal number to get results for

pageSize
integer <int32>
Default: 1000

Format - int32. Max. allowed number of records to get in single API call

sortBy
string
Default: "name"

Field to sort records by (paging results makes sense if data is ordered). Allowed values are "name" or (creation) "date"

sortDirection
string
Default: "asc"

Sort by ascending (asc) values or by descending (desc) values

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 100,
  • "totalPages": 1,
  • "totalRecords": 2
}

/Lists - POST

By this method, you can create items and can be added in the list. CustomFields or Segments properties are not required; they can be created either at the same time the list is created or afterward, using the appropriate endpoints: /Lists/{id}/fields - POST for CustomFields and /lists/{listid}/Segments - POST for Segments. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema:
name
string or null

Subscriber list name

isUnsubscribeGlobal
boolean

Flag describing whether subscriber unsubscribing from this list is also to be unsubscriber from all other client list it is member of

confirmNewSubscriber
boolean

Flag designating whether list requires new subscribers to be confirmed

object (WelcomeEmailData)

Object storing welcome email details (for new subscribers)

unsubscribePageUrl
string or null

Url of web page shown to users after unsubscribing

subscribePageUrl
string or null

Url of web page shown to users after subscribing

includeUnsubscribeSurvey
boolean

Flag designating whether survey is to be show to users unsubscribing from current list

Array of objects or null (ListCustomField)

Custom fields associated with current list

Array of objects or null (ListSegment)

Segments associated with current list

dateModified
string or null <date-time>

Most recent list modification date

dateCreated
string <date-time>

List creation date

autoDeleteOn
string <date-time>

List auto deleted

Responses

Request samples

Content type
{
  • "Name": "ApiList",
  • "IsUnsubscribeGlobal": true,
  • "ConfirmNewSubscriber": false,
  • "IncludeUnsubscribePageSurvey": false,
  • "CustomFields": [
    ],
  • "Segments": [
    ]
}

Response samples

Content type
{
  • "listId": "247ae806a2e3490ebd4d9ab137af6ed4",
  • "name": "ApiList",
  • "isUnsubscribeGlobal": true,
  • "confirmNewSubscriber": true,
  • "unsubscribePageUrl": null,
  • "subscribePageUrl": null,
  • "includeUnsubscribePageSurvey": false,
  • "autoDeleteOn": null,
  • "dateCreated": "2024-08-29T12:15:31.0000000+00:00"
}

/Lists/{id} - PUT

By this method, you can update an existing item in the list. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
listId
string or null

Unique subscriber list Id value

name
string or null

Subscriber list name

isUnsubscribeGlobal
boolean

Flag describing whether subscriber unsubscribing from this list is also to be unsubscriber from all other client list it is member of

confirmNewSubscriber
boolean

Flag designating whether list requires new subscribers to be confirmed

unsubscribePageUrl
string or null

Url of web page shown to users after unsubscribing

subscribePageUrl
string or null

Url of web page shown to users after subscribing

includeUnsubscribePageSurvey
boolean

Flag designating whether survey is to be show to users unsubscribing from current list

autoDeleteOn
string <date-time>

Flag for auto deleting the list

dateCreated
string <date-time>

List creation date

Responses

Request samples

Content type
{}

Response samples

Content type
{
  • "listId": "e424a0c3a5104883a11b2a3d63bd0da6",
  • "name": "MyImportList_2",
  • "isUnsubscribeGlobal": true,
  • "confirmNewSubscriber": false,
  • "unsubscribePageUrl": "https://www.mysite.com/unsubscribe",
  • "subscribePageUrl": "https://www.mysite.com/subscribe",
  • "includeUnsubscribePageSurvey": false,
  • "autoDeleteOn": "2025-01-01T10:00:00.0000000+00:00",
  • "dateCreated": "2023-10-07T08:19:58.0000000+00:00"
}

/Lists/{id} - DELETE

By this method, you can delete a list item. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
[
  • {
    },
  • {
    }
]

/Lists/{id} - GET

By this method, you can get the list through id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "name": "string",
  • "isUnsubscribeGlobal": true,
  • "confirmNewSubscriber": true,
  • "welcomeEmail": {
    },
  • "unsubscribePageUrl": "string",
  • "subscribePageUrl": "string",
  • "includeUnsubscribeSurvey": true,
  • "customFields": [
    ],
  • "segments": [
    ],
  • "autoDeleteOn": null,
  • "dateModified": null,
  • "dateCreated": "2024-01-15T01:34:49.0000000+00:00"
}

/Lists/{id}/Stats - GET

By this method, you can get the statistics information for a list. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "activeSubscribersCount": 185239,
  • "bouncedSubscribersCount": 0,
  • "deletedSubscribersCount": 0,
  • "unconfirmedSubscribersCount": 0,
  • "unsubscribedSubscribersCount": 0
}

/Lists/{id}/fields - GET

By this method, you can get a list's custom field using for specific list id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
query Parameters
page
integer <int32>
Default: 1

Format - int32.

pageSize
integer <int32>
Default: 1000

Format - int32.

sortBy
string
Default: "name"
sortDirection
string
Default: "asc"

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 1000,
  • "totalPages": 1,
  • "totalRecords": 3
}

/Lists/{id}/fields - POST

By this method, you can create fields in the list. To view the authentication schemes, you can look at the auth details page. /n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
name
string or null

Custom field name

code
string or null

Custom field code. This value is computed from field name by removing white space characters.

type
string or null

Custom field data type. Allowed values are "Number", "Text", "Date", "MultiSelectOne" and "MultiSelectMany"

options
Array of strings or null

If custom field is of multi-select type, there has to be a list of allowed values/options to select

isVisible
boolean

Property that defines whether custom field is visible in UI

isRequired
boolean

Property that defines whether custom field value is required to enter (e.g. when adding subscriber via form)

isUniqueIdField
boolean

Property that defines whether custom field value is unique (e.g. when adding subscriber via form)

dateCreated
string <date-time>

Custom field creation date

Responses

Request samples

Content type
{
  • "name": "My Text Field 1",
  • "type": "Text",
  • "isVisible": true,
  • "isRequired": false
}

Response samples

Content type
{
  • "name": "My Text Field 1",
  • "code": "MyTextField1",
  • "type": "Text",
  • "options": null,
  • "isVisible": true,
  • "isRequired": false,
  • "isUniqueIdField": false,
  • "dateCreated": "2024-09-04T10:03:27.0000000+00:00"
}

/Lists/{id}/fields/{code} - GET

By this method, you can retrieve the fields from the list. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
code
required
string

Responses

Response samples

Content type
{
  • "name": "TestField 5",
  • "code": "TestField5",
  • "type": "MultiSelectOne",
  • "options": [
    ],
  • "isVisible": true,
  • "isRequired": true,
  • "dateCreated": "2024-01-15T01:34:49.0000000+00:00",
  • "isUniqueIdField": "false,"
}

/Lists/{id}/fields/{code} - PUT

By this API method, you can update the field in the list using list id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
code
required
string
Request Body schema:
name
string or null

Custom field name

code
string or null

Custom field code. This value is computed from field name by removing white space characters.

type
string or null

Custom field data type. Allowed values are "Number", "Text", "Date", "MultiSelectOne" and "MultiSelectMany"

options
Array of strings or null

If custom field is of multi-select type, there has to be a list of allowed values/options to select

isVisible
boolean

Property that defines whether custom field is visible in UI

isRequired
boolean

Property that defines whether custom field value is required to enter (e.g. when adding subscriber via form)

isUniqueIdField
boolean

Property that defines whether custom field value is unique (e.g. when adding subscriber via form)

dateCreated
string <date-time>

Custom field creation date

Responses

Request samples

Content type
{
  • "name": "string",
  • "code": "string",
  • "type": "string",
  • "options": [
    ],
  • "isVisible": true,
  • "isRequired": true,
  • "dateCreated": "string"
}

Response samples

Content type
{
  • "name": "string",
  • "code": "string",
  • "type": "string",
  • "options": [
    ],
  • "isVisible": true,
  • "isRequired": true,
  • "dateCreated": "string"
}

/Lists/{id}/fields/{code} - DELETE

By this endpoint, you can delete fields from the list. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
code
required
string

Responses

Response samples

Content type
[
  • {
    }
]

/Lists/{id}/segments - GET

Through this endpoints, you can retrieve a list of segments. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
query Parameters
page
integer <int32>
Default: 1

Format - int32.

pageSize
integer <int32>
Default: 1000

Format - int32.

sortBy
string
Default: "name"
sortDirection
string
Default: "asc"

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 1000,
  • "totalPages": 1,
  • "totalRecords": 1
}

/Lists/{id}/subscribers - GET

Through this endpoint, you can retreive a list of subscribers. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
query Parameters
page
integer <int32>
Default: 1

Format - int32. Page ordinal number to get results for

pageSize
integer <int32>
Default: 1000

Format - int32. Max. allowed number of records to get in single API call

sortBy
string
Default: "name"

Field to sort records by (paging results makes sense if data is ordered). Allowed values are "name", (creation) "date" or "email"

sortDirection
string
Default: "asc"

Sort by ascending (asc) values or by descending (desc) values

status
string
Default: "active"

Select subscribers based on their status. Allowed values are "active", "unconfirmed", "unsubscribed", "bounced", "deleted" or "all"

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 4,
  • "totalPages": 14,
  • "totalRecords": 56
}

customFields

Operations related to list custom fields

Segments

Operations related to list segments

/lists/{listid}/Segments/{id} - GET

Through this endpoint, you can get a particular segment using segment id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
id
required
string

Responses

Response samples

Content type
{
  • "name": "TestSeg",
  • "segmentId": "3f671d33f74745199669aad298826904",
  • "ruleGroups": [
    ],
  • "dateCreated": "2024-02-02T10:07:20.0000000+00:00",
  • "memberCount": 0
}

/lists/{listid}/Segments/{id} - PUT

Through this endpoint, you can update a segment using segment id. To view the authentication schemes, you can look at the auth details page. \n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
id
required
string
Request Body schema:
name
string or null

List segment name

segmentId
string or null

Unique list segment Id value

Array of objects or null (SegmentRuleGroup)

List segment rule groups

dateCreated
string <date-time>

List segment creation date

Responses

Request samples

Content type
{
  • "name": "string",
  • "segmentId": "string",
  • "ruleGroups": [
    ],
  • "dateCreated": "string"
}

Response samples

Content type
{
  • "name": "string",
  • "segmentId": "string",
  • "ruleGroups": [
    ],
  • "dateCreated": "string"
}

/lists/{listid}/Segments/{id} - DELETE

Through this endpoint, you can delete a specific segment. To view the authentication schemes, you can look at the auth details page. \n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
id
required
string

Responses

Response samples

Content type
[
  • {
    }
]

/lists/{listid}/Segments - POST

Through this endpoint, you can create the segments for a list. To view the authentication schemes, you can look at the auth details page. \n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
Request Body schema:
name
string or null

List segment name

segmentId
string or null

Unique list segment Id value

Array of objects or null (SegmentRuleGroup)

List segment rule groups

dateCreated
string <date-time>

List segment creation date

Responses

Request samples

Content type
{
  • "name": "string",
  • "segmentId": "string",
  • "ruleGroups": [
    ],
  • "dateCreated": "string"
}

Response samples

Content type
{
  • "name": "string",
  • "segmentId": "string",
  • "ruleGroups": [
    ],
  • "dateCreated": "string"
}

Client

Operations related to general client data

/Client - GET

By calling this method you can get general and billing client details. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery

Responses

Response samples

Content type
{
  • "general": {
    },
  • "billing": {
    },
  • "campaignNoteDetail": {
    }
}

/Client - PUT

By calling this method you can get update general and billing client details. Request object contains two top-level properties: one for updating basic client details (General) and the other for updating billing details (Billing). It is not required to have both present in request. E.g. If updating billing details only, General property could be an empty reference (null), and vice versa. If both properties are present (have value), data from both will be used to update client data. If neither is present, an error will be returned. Similar to previous, contact information for primary and billing contact does not need to be present. If present, contact information will be updated; otherwise, contact data will remain as isn't. Address information is another optional piece of information - if not provided, it will be ignored. If provided, however, all of its properties are mandatory to set (except the second address line). For time zone name, please check out list of allowed values by querying /client/timeZones. For country list please query /client/countries endpoint. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema:
object (BasicDetails)

Basic client data

object (BillingDetailsUpdate)

Object storing client billing data

object (CampaignNoteDetailUpdate)

Object storing campaign Note data

Responses

Request samples

Content type
{
  • "general": {
    },
  • "billing": {
    },
  • "campaignNoteDetail": {
    }
}

Response samples

Content type
{
  • "general": {
    },
  • "billing": {
    },
  • "campaignNoteDetail": {
    }
}

/Client/Balance - GET

By calling this method you can get client credit balance information as well as subscription details. (both credits and subscription). To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery

Responses

Response samples

Content type
{
  • "subscriptions": [
    ],
  • "prepaidCredits": [
    ]
}

/Client/SuppressionList - GET

By this method, you can get and access client suppression list data. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32.

pageSize
integer <int32>
Default: 1000

Format - int32.

sortBy
string
Default: "email"
sortDirection
string
Default: "asc"

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 10,
  • "totalPages": 160,
  • "totalRecords": 1599
}

/Client/SuppressionList - POST

Using this method, you can add one or more email address(es) to client suppression list and/or remove certain email address(es) from it. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema:
suppress
Array of strings or null

List of email addresses to add to suppression list

unSuppress
Array of strings or null

List of email addresses to remove from suppression list

Responses

Request samples

Content type
{
  • "Suppress": [
    ],
  • "Unsuppress": [
    ]
}

Response samples

Content type
{
  • "suppressedCount": 2,
  • "unSuppressedCount": 2,
  • "previouslySuppressedCount": 0,
  • "suppressedTotal": 1601
}

Subscribers

Operations related to list subscribers

/lists/{listid}/Subscribers/{id} - GET

This endpoint is used to get subscriber details. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
id
required
string

Responses

Response samples

Content type
{
  • "name": "Sam David",
  • "email": "tbpu1.same@mail.com",
  • "id": "tbpu1.same@mail.com",
  • "reSubscribe": false,
  • "reRunWorkflows": false,
  • "allowTracking": true,
  • "dateCreated": "2024-06-17T10:01:16.0000000+00:00",
  • "status": "Active",
  • "customFields": [
    ]
}

/lists/{listid}/Subscribers/{id} - PUT

This endpoint is used to update a email of subscriber. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
id
required
string
Request Body schema:
name
string or null

Subscriber name

email
string or null

Subscriber email address

id
string or null

Subscriber unique id

reSubscribe
boolean

Flag defining whether subscriber is to be (re)added to subscriber list (as active) even if it's unsubscribed or in suppression list. If suppressed subscriber is added again with this flag set, subscriber will be unsuppressed

reRunWorkflows
boolean

Flag defining whether resubscribed subscribers will trigger existing email workflows to restart or not (i.e. or proceed)

allowTracking
boolean

Flag defining whether subscriber is to be tracked or not

dateCreated
string <date-time>

List subscriber creation date

status
string or null

List subscriber status. Possible values are "Active", "Unconfirmed" (only for confirmed-opt-in lists), "Unsubscribed", "Bounced" or "Deleted"

Array of objects or null (CustomFieldValue)

List of custom field values for subscriber

Responses

Request samples

Content type
{
  • "name": "string",
  • "email": "string",
  • "reSubscribe": true,
  • "reRunWorkflows": true,
  • "allowTracking": true,
  • "dateCreated": "string",
  • "status": "string",
  • "customFields": [
    ]
}

Response samples

Content type
{
  • "name": "string",
  • "email": "string",
  • "reSubscribe": true,
  • "reRunWorkflows": true,
  • "allowTracking": true,
  • "dateCreated": "string",
  • "status": "string",
  • "customFields": [
    ]
}

/lists/{listid}/Subscribers/{id} - DELETE

This endpoint is used to delete subscriber. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
id
required
string

Responses

Response samples

Content type
{
  • "code": 1014,
  • "message": "You're not allowed to access/manage subscriber lists data. Please check and update your API permissions."
}

/lists/{listid}/Subscribers - POST

This endpoint is used to create a subscriber. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
Request Body schema:
name
string or null

Subscriber name

email
string or null

Subscriber email address

id
string or null

Subscriber unique id

reSubscribe
boolean

Flag defining whether subscriber is to be (re)added to subscriber list (as active) even if it's unsubscribed or in suppression list. If suppressed subscriber is added again with this flag set, subscriber will be unsuppressed

reRunWorkflows
boolean

Flag defining whether resubscribed subscribers will trigger existing email workflows to restart or not (i.e. or proceed)

allowTracking
boolean

Flag defining whether subscriber is to be tracked or not

dateCreated
string <date-time>

List subscriber creation date

status
string or null

List subscriber status. Possible values are "Active", "Unconfirmed" (only for confirmed-opt-in lists), "Unsubscribed", "Bounced" or "Deleted"

Array of objects or null (CustomFieldValue)

List of custom field values for subscriber

Responses

Request samples

Content type
{
  • "name": "string",
  • "email": "string",
  • "reSubscribe": true,
  • "reRunWorkflows": true,
  • "allowTracking": true,
  • "dateCreated": "string",
  • "status": "string",
  • "customFields": [
    ]
}

Response samples

Content type
{
  • "name": "string",
  • "email": "string",
  • "reSubscribe": true,
  • "reRunWorkflows": true,
  • "allowTracking": true,
  • "dateCreated": "string",
  • "status": "string",
  • "customFields": [
    ]
}

/lists/{listid}/Subscribers/{email}/unsubscribe - PUT

This endpoint is used to update the subscription status to unsubscribe from a list. To view the authentication schemes, you can look at the auth details page. \n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
email
required
string

Responses

Response samples

Content type
{
  • "code": 1014,
  • "message": "You're not allowed to access/manage subscriber lists data. Please check and update your API permissions."
}

/lists/{listid}/Subscribers/import - POST

Through this enpoint, you can import the subscriber from the list. To view the authentication schemes, you can look at the auth details page. \n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
listid
required
string
Request Body schema:
Array
name
string or null

Subscriber name

email
string or null

Subscriber email address

id
string or null

Subscriber unique id

reSubscribe
boolean

Flag defining whether subscriber is to be (re)added to subscriber list (as active) even if it's unsubscribed or in suppression list. If suppressed subscriber is added again with this flag set, subscriber will be unsuppressed

reRunWorkflows
boolean

Flag defining whether resubscribed subscribers will trigger existing email workflows to restart or not (i.e. or proceed)

allowTracking
boolean

Flag defining whether subscriber is to be tracked or not

dateCreated
string <date-time>

List subscriber creation date

status
string or null

List subscriber status. Possible values are "Active", "Unconfirmed" (only for confirmed-opt-in lists), "Unsubscribed", "Bounced" or "Deleted"

Array of objects or null (CustomFieldValue)

List of custom field values for subscriber

Responses

Request samples

Content type
[
  • {
    }
]

Response samples

Content type
{
  • "addedCount": 0,
  • "updatedCount": 0,
  • "skippedCount": 0,
  • "suppressedCount": 0
}

Campaigns

Operations related to client campaigns

/Campaigns - POST

By calling this method, you can create a draft campaign based on a web page or existing campaign (as a template), ready to be tested as a preview or sent. Provide basic campaign information, data about campaign design(s), schedule and recipients and invoke this method to create new campaign based on existing web page. If new campaign is of ABTest type, also provide specifics about it (ABTest property). To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema:
name
string or null

Campaign name

type
string or null

Campaign type. Allowed values are "Regular" (for plain campaigns) or "ABTest" (for campaigns with dual designs, one of which is to be sent to majority of recipients - so called winner design)

preheaderText
string or null

Campaign pre-header text

confirmationEmail
string or null

Email address to send confirmation after campaign is sent

campaignNote
string

This is a note content

Array of objects or null (DesignData)

One or two campaign design records (based on campaign type)

object (ScheduleDetails)

Object storing values about email campaign schedule

object (ABTestDetails)

Object storing data about AB Test campaign type

object (CampaignRecipients)

Object holding data about cmapaign recipients (lists and/or segments)

Responses

Request samples

Content type
{
  • "name": "Test API Campaign",
  • "type": "Regular",
  • "confirmationEmail": "test@touchbasepro.com",
  • "campaignNote": "This is a note content.",
  • "designs": [],
  • "recipients": {
    },
  • "schedule": {
    }
}

Response samples

Content type
{
  • "campaignId": "03b3bf31c1734857b6c55343bf41acf2",
  • "status": "draft",
  • "sentEmailCount": 0,
  • "sendingDate": null,
  • "dateCreated": "2024-02-28T08:13:21.0000000+00:00",
  • "name": "Test API Campaign",
  • "type": "Regular",
  • "preheaderText": null,
  • "confirmationEmail": "test@touchbasepro.com",
  • "campaignNote": "This is a note content.",
  • "designs": [],
  • "schedule": {
    },
  • "abTest": null,
  • "recipients": {
    }
}

/Campaigns - GET

By calling this method you can get a list of client campaigns. Since number of records could be large, results are paged - each page contains specific number of records (less than or equal to pageSize parameter). If no page parameter is specified, by default the first (page=1) page is returned. If no pageSize parameter is provided, by default the first 1000 records are returned per page. Before result campaign list is split into pages, it is sorted. Sort parameter could be any of following values: name, date, senddate, fromname or subject. If no value is specified, by default campaigns are sorted by name. SortDirection could be either asc (ascending) or desc (descending). If not specified, by default results are sorted in ascending order. There's also optional parameter status to filter result list based on campaign status. Allowed values are: draft, sent, sending, scheduled or all. If no value is specified, campaigns aren't filtered by status. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32. Max. allowed number of records to get in single API call

pageSize
integer <int32>
Default: 1000

Format - int32. Page ordinal number to get results for

sortBy
string
Default: "name"

Field to sort records by (paging results makes sense if data is ordered). Allowed values are "name", "date", "senddate", "fromname" or "subject"

sortDirection
string
Default: "asc"

Sort by ascending (asc) values or by descending (desc) values

status
string
Default: "all"

Select campaigns based on their status. Allowed values are "draft", "sent", "sending", "scheduled" or "all"

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 5,
  • "totalPages": 4,
  • "totalRecords": 16
}

/Campaigns/{id} - PUT

This endpoint is used to to update campaign records in the database through id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
name
string or null

Campaign name

type
string or null

Campaign type. Allowed values are "Regular" (for plain campaigns) or "ABTest" (for campaigns with dual designs, one of which is to be sent to majority of recipients - so called winner design)

preheaderText
string or null

Campaign pre-header text

confirmationEmail
string or null

Email address to send confirmation after campaign is sent

campaignNote
string

This is a note content

Array of objects or null (DesignData)

One or two campaign design records (based on campaign type)

object (ScheduleDetails)

Object storing values about email campaign schedule

object (ABTestDetails)

Object storing data about AB Test campaign type

object (CampaignRecipients)

Object holding data about cmapaign recipients (lists and/or segments)

Responses

Request samples

Content type
{
  • "Name": "Test API Campaign create 1a",
  • "Type": "Regular",
  • "ConfirmationEmail": "test@touchbasepro.com",
  • "campaignNote": "This is a Note content.",
  • "Designs": [],
  • "Recipients": {
    },
  • "Schedule": {
    }
}

Response samples

Content type
{
  • "campaignId": "03b3bf31c1734857b6c55343bf41acf2",
  • "status": "draft",
  • "sentEmailCount": 0,
  • "sendingDate": null,
  • "dateCreated": "2024-02-28T08:13:21.0000000+00:00",
  • "name": "Test API Campaign",
  • "type": "Regular",
  • "preheaderText": null,
  • "confirmationEmail": "test@touchbasepro.com",
  • "campaignNote": "This is a note content.",
  • "designs": [],
  • "schedule": {
    },
  • "abTest": null,
  • "recipients": {
    }
}

/Campaigns/{id} - DELETE

By calling this method you can remove client campaigns. Only campaigns not-yet sent (processed) can be deleted. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
[
  • {
    }
]

/Campaigns/{id}/unschedule - PUT

By calling this method you can unschedule (previously scheduled to send) client campaign. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
[
  • {
    }
]

/Campaigns/{id}/schedule - PUT

By calling this method you can schedule client campaign for sending. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
[
  • {
    }
]

/Campaigns/{id}/sendtest - POST

By calling this method you can send test message(s) for specific campaign. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
campaignId
string or null

Id value of campaign to send test message(s) for

designId
integer or null <int32>

Index of campaign design to use for sending test message(s)

Array of objects or null (RecipientData)

List of test message recipients (name and email address)

Responses

Request samples

Content type
{
  • "designId": 0,
  • "recipients": [
    ]
}

Response samples

Content type
[
  • {
    }
]

/Campaigns/{id}/stats - GET

By calling this method you can get statistics for previously sent campaign. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "startedDate": "2023-10-06T12:43:00.0000000+00:00",
  • "completedDate": "2023-10-06T12:54:04.0000000+00:00",
  • "totalEmailsSent": 20,
  • "totalClicks": 24,
  • "totalUniqueClicks": 14,
  • "totalEmailsClicked": 14,
  • "clickRate": 70,
  • "totalEmailsDelivered": 20,
  • "deliveryRate": 100,
  • "totalEmailOpens": 18,
  • "totalUniqueEmailOpens": 15,
  • "openRate": 75,
  • "clickToOpenRate": 93.3,
  • "totalUnsubscribes": 0,
  • "unsubscribeRate": 0,
  • "totalMarkedAsSpam": 0,
  • "markedAsSpamRate": 0,
  • "totalEmailsBounced": 0,
  • "bounceRate": 0,
  • "totalEmailsPending": 0,
  • "pendingRate": 0
}

/Campaigns/{id}/attachments - GET

By calling this method you can get the attachment list for specific campaign (identified by campaign ID value). To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Attachment ID value. It is used to identify particular attachment (e.g. get details / download it or delete it).

query Parameters
page
integer <int32>
Default: 1

Format - int32. Page ordinal number to get results for

pageSize
string <int32>
Default: "1000"

Format - int32. Max. allowed number of records to get in single API call

sortBy
string
Default: "name"

Field to sort records by (paging results makes sense if data is ordered). Allowed values are "name" or "date"

sortDirection
string
Default: "asc"

Sort by ascending (asc) values or by descending (desc) values

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 5,
  • "totalPages": 1,
  • "totalRecords": 2
}

/Campaigns/{id}/attachments - POST

By calling this method you can creates a draft campaign attachment. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
filename
string
id
string
fileSize
string <int32>
dateCreated
string <date-time>
content
string
contentSha256
string

Responses

Request samples

Content type
{
  • "FileName": "My file.docx",
  • "Content": "ZlZZWZhYzdkaIN1MGJiZm9sc2FpZHVmOTlMDVhNNWNiZDODpsa2RmanFvd2l1cmU5MTDIyOde5NDhjZWIxYmY2M5MzY2RlgydW9pc2VqjBkMWVlYmQzOWI0NjIzYjkxYjkgzMjdyOTay"
}

Response samples

Content type
{
  • "content": null,
  • "contentSha256": "1cGlNMqvUlq8EEsDP75dQ6qriWveKBCg6qntBfLbrvg=",
  • "fileName": "My file.docx",
  • "id": "45f31378c8c6447d9a293743c0085b75",
  • "fileSize": 105,
  • "dateCreated": "2024-08-28T02:29:40.0000000+00:00"
}

/Campaigns/{id}/attachments/{attachmentId} - GET

By calling this method you can get the attachment for specific campaign (identified by campaign ID value). To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
attachmentId
required
string

Responses

Response samples

Content type
{
  • "content": "aINlMDVhNDIyOde5NDhjZWIxYmY2M5MzY2RlNWNiZDZlZjBkMWVlYmQzOWI0NjIzYjkxYjk1MGJiZWZhYzdkODpsa2RmanFvd2l1cmU5MTgydW9pc2VqZm9sc2FpZHVmOTgzMjdyOTay",
  • "contentSha256": "7WQAb+wdbdB/42QRP2nL2wym2/s53zRsalozhQFsUZY=",
  • "fileName": "d1147bf7-00fe-4eff-8faf-2d14a00bae92/Test2.txt",
  • "id": "74e640f822d547d384adb908395fc3ec",
  • "fileSize": 105,
  • "dateCreated": "2024-07-16T10:49:45.0000000+00:00"
}

/Campaigns/{id}/attachments/{attachmentId} - DELETE

By calling this method you can remove attachment campaigns. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
attachmentId
required
string

Responses

Response samples

Content type
[
  • {
    }
]

Webhooks

Operations related to list webhooks

/Webhooks - GET

Use this method to get a list of all of your webhooks. You may want to provide optional page and/or pageSize query parameters, to limit number of records returned. If page is not provided, the first page is always returned; likewise, if pageSize is not provided, max. 1000 webhook records are returned. You can also filter records by webhook type, by using type query parameter. Not setting this parameter, or setting it to "all" would return all webhook records, no matter what is their type. Providing listId query parameter, you can get all webhook records associated with particular list. Similar to previous, providing campaignId query parameter, you can filter records by associated campaign.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32. Specify ordinal number of page of records to return (e.g. 1 for the first page, 2 for the second, etc). Default is 1 (for the 1st page)

pageSize
integer <int32>
Default: 1000

Format - int32. Specify how many records should each page of records contain. Default value is 1000 records (if no value is provided).

type
string
Default: "all"

Specify of which type webhook records will be returned. If no value is provided, or is “all” is selected, webhooks of any type will be returned.

listId
string

Specify ID value of list to get associated webhook records. If no value is provided, records associated with any list will be returned.

campaignId
string

Specify ID value of campaign to get associated webhook records. If no value is provided, records associated with any campaign are returned.

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 20,
  • "totalPages": 1,
  • "totalRecords": 3
}

/Webhooks - POST

Description: Use this method to create new webhook record, which data is placed in request body (please see provided example). Single webhook record could be associated with multiple webhook types, only please make sure you provide list ID value - if webhook is to be associated with particular list, or campaign ID value - if webhook is to be associated with particular campaign. There's also option to create so called global webhook - by setting IsGlobal property to true - which applies to all of your lists and campaigns. For global webhook you don't need to provide list nor campaign ID values, for it applies to all of them.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema:
type
string

One or more webhook types (comma separated list). Allowed types include "Subscribe", "Unsubscribe", "SuppressSubscriber", "UpdateSubscriber", "CampaignSend", "RecurringCampaignSend", "CampaignStatsUpdate", "MessageOpen", "MessageClick", "MessageDelivered" or "MessageBounced".

listId
string or null

Unique subscriber list Id value. It is required if webhook type includes any of the following - "Subscribe", "Unsubscribe" or "UpdateSubscriber". Value can be absent if IsGlobal property value is set (to true).

campaignId
string or null

Unique campaign Id value. It is required if webhook type includes any of the following - "CampaignSend", "RecurringCampaignSend", "CampaignStatsUpdate", "MessageOpen", "MessageClick", "MessageDelivered" or "MessageBounced". Value can be absent if IsGlobal property value is set (to true).

url
string

Url to which to send webhook notifications to

webhookId
string or null

Unique webhook Id value

dateCreated
string <date-time>

Webhook creation date

listName
string or null

Subscriber list name (if webhook associated with any list)

campaignName
string or null

Campaign name (if webhook associated with campaign)

isActive
boolean or null

Indicator whether or not particular webhook is active or not.

notificationEmail
string or null

Email address used to send messages about webhook (e.g. webhook deactivated due to repeated failed deliveries)

messageFormat
string or null

Webhook notification message format. It’s either JSON or XML.

isGlobal
boolean or null

Indicator whether or not particular webhook s global – i.e. applicable to all client lists and/or campaigns.

Responses

Request samples

Content type
{}

Response samples

Content type
{
  • "type": "Subscribe,Unsubscribe",
  • "listId": "4a1091816c3c4d28aa8d66ba3bda1c4f",
  • "campaignId": "",
  • "webhookId": "0297aacf6eb44410917f88677493048d",
  • "dateCreated": "2024-06-25T03:55:09.0000000+00:00",
  • "listName": "TestList_11",
  • "campaignName": "TestList_11",
  • "isActive": true,
  • "notificationEmail": null,
  • "messageFormat": "Json",
  • "isGlobal": false
}

/Webhooks/{id} - GET

Use this method to get a single webhook record, identified by (provided) webhook ID value.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

ID value of webhook to delete.

Responses

Response samples

Content type
{
  • "type": "string",
  • "listId": "string",
  • "campaignId": "string",
  • "url": "string",
  • "webhookId": "string",
  • "dateCreated": "string",
  • "listName": "string",
  • "campaignName": "string",
  • "isActive": false,
  • "notificationEmail": "smkpm@pm.me",
  • "messageFormat": "xml",
  • "isGroup": false
}

/Webhooks/{id} - PUT

Use this method to update existing webhook record. Webhook record could be associated with multiple webhook types, only please make sure you provide list ID value - if webhook is to be associated with particular list, or campaign ID value - if webhook is to be associated with particular campaign. There's also option to create so called global webhook - by setting IsGlobal property to true - which applies to all of your lists and campaigns. For global webhook you don't need to provide list nor campaign ID values, for it applies to all of them.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

ID value of webhook to delete.

Request Body schema:
type
string

One or more webhook types (comma separated list). Allowed types include "Subscribe", "Unsubscribe", "SuppressSubscriber", "UpdateSubscriber", "CampaignSend", "RecurringCampaignSend", "CampaignStatsUpdate", "MessageOpen", "MessageClick", "MessageDelivered" or "MessageBounced".

listId
string or null

Unique subscriber list Id value. It is required if webhook type includes any of the following - "Subscribe", "Unsubscribe" or "UpdateSubscriber". Value can be absent if IsGlobal property value is set (to true).

campaignId
string or null

Unique campaign Id value. It is required if webhook type includes any of the following - "CampaignSend", "RecurringCampaignSend", "CampaignStatsUpdate", "MessageOpen", "MessageClick", "MessageDelivered" or "MessageBounced". Value can be absent if IsGlobal property value is set (to true).

url
string

Url to which to send webhook notifications to

webhookId
string or null

Unique webhook Id value

dateCreated
string <date-time>

Webhook creation date

listName
string or null

Subscriber list name (if webhook associated with any list)

campaignName
string or null

Campaign name (if webhook associated with campaign)

isActive
boolean or null

Indicator whether or not particular webhook is active or not.

notificationEmail
string or null

Email address used to send messages about webhook (e.g. webhook deactivated due to repeated failed deliveries)

messageFormat
string or null

Webhook notification message format. It’s either JSON or XML.

isGlobal
boolean or null

Indicator whether or not particular webhook s global – i.e. applicable to all client lists and/or campaigns.

Responses

Request samples

Content type
{
  • "type": "string",
  • "listId": "string",
  • "campaignId": "string",
  • "url": "string",
  • "notificationEmail": "smkpm@pm.me",
  • "messageFormat": "xml",
  • "isGlobal": true
}

Response samples

Content type
{
  • "type": "Subscribe,Unsubscribe",
  • "listId": "4a1091816c3c4d28aa8d66ba3bda1c4f",
  • "campaignId": null,
  • "webhookId": "0297aacf6eb44410917f88677493048d",
  • "dateCreated": "2024-06-25T03:55:09.0000000+00:00",
  • "listName": "TestList_11",
  • "campaignName": "TestList_11",
  • "isActive": true,
  • "notificationEmail": "me@mail.com",
  • "messageFormat": "xml",
  • "isGlobal": true
}

/Webhooks/{id} - DELETE

Use this method to delete existing webhook record, identified with provided webhook ID value.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

ID value of webhook to delete

Responses

Response samples

Content type
{
  • "code": 1602,
  • "message": "Webhook ID value (xxxx...xxx) is not valid. It is to contain exactly 32 hexadecimal digits."
}

/Webhooks/{id}/Activate - PUT

Use this method to activate existing webhook record, identified with provided webhook ID value. Once activated, notifications are dispatched to provided webhook URL.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

ID value of webhook to delete.

Responses

Response samples

Content type
{
  • "code": 1602,
  • "message": "Webhook ID value (xxxx...xxx) is not valid. It is to contain exactly 32 hexadecimal digits."
}

/Webhooks/{id}/Deactivate - PUT

Use this method to deactivate existing webhook record, identified with provided webhook ID value. Once deactivated, notifications are no longer dispatched to provided webhook URL.

For more information please visit webhook details page. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

ID value of webhook to delete.

Responses

Response samples

Content type
{
  • "code": 1602,
  • "message": "Webhook ID value (xxxx...xxx) is not valid. It is to contain exactly 32 hexadecimal digits."
}

Transactional

Operations related to transactional emails

Retrieve Transactional Emails

Fetches a paginated list of client smart emails with advanced filtering options by status, name, and date range (start and end). Enables sorting by name or date in both ascending and descending order for better data organization.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
required
integer
pageSize
required
integer
sortBy
required
string
sortDirection
required
string
status
required
string

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 10,
  • "totalPages": 5,
  • "totalRecords": 50
}

Creates new smart email (template).

Creates a new smart email template that can be customized and automated for personalized communication, enabling efficient and targeted email campaigns.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema:
preheaderText
string

Short preview text shown in the inbox.

subject
string

Email subject line.

fromName
string

Name displayed as the sender.

fromEmail
string <email>

Email address of the sender.

replyTo
string <email>

Reply-to email address.

htmlUrl
string <uri>

URL of the hosted HTML email template.

htmlContent
string

Raw HTML content of the email.

Responses

Request samples

Content type
{
  • "preheaderText": "Get the latest updates in your inbox",
  • "subject": "Welcome to TouchBasePro!",
  • "fromName": "TouchBasePro Team",
  • "fromEmail": "no-reply@TouchBasePro.com",
  • "replyTo": "support@TouchBasePro.com",
  • "htmlContent": "<!DOCTYPE HTML PUBLIC />"
}

Response samples

Content type
{
  • "smartEmailId": "123456",
  • "name": "Welcome Email",
  • "status": "Active",
  • "sentEmailCount": 100,
  • "dateCreated": "2025-05-19T10:25:19.704Z",
  • "preheaderText": "Welcome to our platform!",
  • "subject": "Welcome to Our Service",
  • "fromName": "John Doe",
  • "fromEmail": "john.doe@example.com",
  • "replyTo": "support@example.com",
  • "htmlContent": "<html><body><h1>Welcome to our platform!</h1></body></html>",
  • "inlineImages": true,
  • "inlineCss": true,
  • "recipientListId": "recipient-list-001"
}

Retrieve comprehensive details of a specific client smart email.

Fetches comprehensive details of a specific client smart email, identified by its unique ID.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
integer

Responses

Response samples

Content type
{
  • "smartEmailId": "12345-abcde-67890-fghij",
  • "name": "Welcome Email",
  • "status": "Active",
  • "sentEmailCount": 1250,
  • "dateCreated": "2025-05-16T05:49:16.201Z",
  • "preheaderText": "Your exclusive offer awaits!",
  • "subject": "Welcome to Our Service",
  • "fromName": "Support Team",
  • "fromEmail": "support@example.com",
  • "replyTo": "no-reply@example.com",
  • "htmlContent": "<p>Welcome to our platform!</p>",
  • "inlineImages": true,
  • "inlineCss": true,
  • "recipientListId": "recipients-2025"
}

Delete transactional email (change campaign status to Delete)

Deletes a transactional email by changing its campaign status to 'Deleted,' effectively removing it from active email campaigns.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
integer

Responses

Response samples

Content type
[
  • {
    },
  • {
    },
  • {
    }
]

Update smart email by ID

This process allows you to modify an existing smart email using its unique identifier (ID). By updating the email, you can adjust content, design, or targeting, ensuring quick and accurate changes for your automated email campaigns.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
smartEmailId
string

Unique identifier for the smart email

name
string

Name of the smart email

status
string

Current status of the smart email (e.g., Active, Inactive)

sentEmailCount
integer

Number of emails sent

dateCreated
string <date-time>

Date and time when the smart email was created

preheaderText
string

Text displayed before the email content

subject
string

Subject line of the email

fromName
string

Name displayed in the 'From' field of the email

fromEmail
string <email>

Email address displayed in the 'From' field

replyTo
string <email>

Email address for replies

htmlUrl
string

URL to the HTML version of the email

htmlContent
string

HTML content of the email

inlineImages
boolean

Indicates whether images are embedded inline in the email

inlineCss
boolean

Indicates whether CSS is embedded inline in the email

recipientListId
string

ID of the recipient list

Responses

Request samples

Content type
{
  • "smartEmailId": "123456",
  • "name": "Welcome Email",
  • "status": "Active",
  • "sentEmailCount": 100,
  • "dateCreated": "2025-05-19T10:25:19.704Z",
  • "preheaderText": "Welcome to our platform!",
  • "subject": "Welcome to Our Service",
  • "fromName": "John Doe",
  • "fromEmail": "john.doe@example.com",
  • "replyTo": "support@example.com",
  • "htmlContent": "<html><body><h1>Welcome to our platform!</h1></body></html>",
  • "inlineImages": true,
  • "inlineCss": true,
  • "recipientListId": "recipient-list-001"
}

Response samples

Content type
{
  • "smartEmailId": "123456",
  • "name": "Welcome Email",
  • "status": "Active",
  • "sentEmailCount": 100,
  • "dateCreated": "2025-05-19T10:25:19.704Z",
  • "preheaderText": "Welcome to our platform!",
  • "subject": "Welcome to Our Service",
  • "fromName": "John Doe",
  • "fromEmail": "john.doe@example.com",
  • "replyTo": "support@example.com",
  • "htmlContent": "<html><body><h1>Welcome to our platform!</h1></body></html>",
  • "inlineImages": true,
  • "inlineCss": true,
  • "recipientListId": "recipient-list-001"
}

Activate smart email by id

This action enables a specific smart email within the system using its unique identifier (ID). Activating the email makes it live and ready to be sent to recipients as part of automated campaigns.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
"No content"

Retrieves all state count of smart email

Retrieves the count of all smart email states within a specified date range, providing filtered results based on the given dates.

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
integer

Responses

Response samples

Content type
{
  • "startDate": "0001-01-01T00:00:00",
  • "endDate": "0001-01-01T00:00:00",
  • "totalEmailsSent": 500,
  • "totalClicks": 100,
  • "totalUniqueClicks": 80,
  • "totalEmailsClicked": 120,
  • "clickRate": 26.666666666666,
  • "totalEmailsDelivered": 450,
  • "deliveryRate": 0,
  • "totalEmailOpens": 200,
  • "totalUniqueEmailOpens": 150,
  • "openRate": 33.333333333333,
  • "clickToOpenRate": 80,
  • "totalEmailsBounced": 50,
  • "bounceRate": 10,
  • "totalEmailsPending": 0,
  • "pendingRate": 0
}

Retrieves a paginated list of smart email's messages by smart email id.

Retrieves a paginated list of messages associated with a specific smart email, identified by its unique ID. This allows you to view the messages in manageable chunks, improving performance and usability when dealing with large datasets

To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
query Parameters
StartDate
string
EndDate
string
page
integer
pageSize
integer
sortBy
string
sortDirection
string
IncludeEventData
string

Responses

Response samples

Content type
{
  • "data": [
    ]
}

Sends a smart email message

Sends a smart email message to the intended recipient(s), using dynamic content and automated triggers based on pre-defined conditions.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
Array of objects

List of recipients in the 'To' field

Array of objects

List of recipients in the 'CC' field

Array of objects

List of recipients in the 'BCC' field

Array of objects

List of attachments with base64 encoded content

object

Additional fields related to the email

AllowTracking
boolean

Indicates whether tracking is allowed for the email

IgnoreSuppressionList
boolean

Indicates whether to ignore the suppression list

AddRecipientToList
boolean

Indicates whether the recipient should be added to the list

Responses

Request samples

Content type
{
  • "To": [
    ],
  • "CC": [
    ],
  • "BCC": [
    ],
  • "Attachments": [
    ],
  • "Fields": {
    },
  • "AllowTracking": true,
  • "IgnoreSuppressionList": true,
  • "AddRecipientToList": true
}

Response samples

Content type
[
  • {
    }
]

Retrieves details of a specific sent smart email message by its ID.

Retrieves the details of a specific smart email message using its unique ID, providing information such as its status, subject, recipient, and other relevant data.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
integer
msgid
required
integer

Responses

Response samples

Content type
{
  • "data": {
    }
}

Resends a message by its ID.

Retransmits a previously sent message specified by its unique message ID—useful for retrying delivery or manually resending a message when the original transmission was delayed, failed, or needs to reach additional recipients.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
msgid
required
string

Responses

Response samples

Content type
{
  • "recipient": "user10@example.com",
  • "messageId": "ca7935b9-2871-4dab-9132-e3fdaa2fa024",
  • "status": "Bounced",
  • "note": null
}

Retrive smart email's message status

Retrieves the current status of a smart email message, such as whether it was sent, delivered, or bounced.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
integer
msgid
required
integer

Responses

Response samples

Content type
{
  • "recipient": "user10@example.com",
  • "messageId": "ca7935b9-2871-4dab-9132-e3fdaa2fa024",
  • "status": "Bounced",
  • "note": null
}

Billing

/Client/Billing - GET

By calling this method you can get billing details. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32.

pageSize
integer <int32>
Default: 1000

Format - int32.

startDate
string
endDate
string
sortBy
string
Default: "name"
sortDirection
string
Default: "asc"
status
string
Default: "paid"

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalPages": 0,
  • "totalRecords": 0
}

Feeds

/Feeds - GET

Using this methhod, you can get all the feeds. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32.

pageSize
integer <int32>
Default: 100

Format - int32.

sortBy
string
Default: "title"
sortDirection
string
Default: "asc"

Responses

Response samples

Content type
{
  • "data": {
    },
  • "page": 1,
  • "pageSize": 100,
  • "totalPages": 1,
  • "totalRecords": 1
}

/Feeds - POST

Using this method, you can create new RSS feed. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
listid
string
Request Body schema:
title
string or null

RSS feed title

url
string or null

RSS feed URL

fallbackImageUrl
string or null

Image fallback URL

minImageWidth
integer or null <int32>

Min image width

minImageHeight
integer or null <int32>

Min image height

extractFullTextFromArticle
boolean

Whether to extract RSS feed article text on feed refresh

analyzeArticles
boolean

Whether to analyze new article content on feed refresh (paid service)

blacklistImages
Array of strings or null

Responses

Request samples

Content type
{}

Response samples

Content type
{
  • "feedId": "aa08127b56aa419ba5a6584f2b6efe69",
  • "status": "",
  • "nextCheckDate": "2024-08-28T05:39:13.0000000+00:00",
  • "lastCheckDate": null,
  • "publicationDate": null,
  • "dateCreated": "2024-08-28T05:39:13.0000000+00:00",
  • "title": "Test feed",
  • "fallbackImageUrl": null,
  • "minImageWidth": null,
  • "minImageHeight": null,
  • "extractFullTextFromArticle": true,
  • "analyzeArticles": false,
  • "blacklistImages": [ ]
}

/Feeds/{id} - GET

By this method, you can retrieve all RSS feed entries through the feed id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "title": "Test feed 2",
  • "fallbackImageUrl": null,
  • "minImageWidth": 1,
  • "minImageHeight": 1,
  • "extractFullTextFromArticle": true,
  • "analyzeArticles": false,
  • "blacklistImages": [
    ],
  • "feedId": "2f828410d4b9b1eb233c954ec7bbc61a",
  • "status": "Active",
  • "nextCheckDate": "2024-01-22T02:37:29.0000000+00:00",
  • "lastCheckDate": null,
  • "publicationDate": null,
  • "dateCreated": "2024-01-22T02:37:29.0000000+00:00"
}

/Feeds/{id} - PUT

By this method, you can update the feed using a feed id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema:
title
string or null

RSS feed title

url
string or null

RSS feed URL

fallbackImageUrl
string or null

Image fallback URL

minImageWidth
integer or null <int32>

Min image width

minImageHeight
integer or null <int32>

Min image height

extractFullTextFromArticle
boolean

Whether to extract RSS feed article text on feed refresh

analyzeArticles
boolean

Whether to analyze new article content on feed refresh (paid service)

blacklistImages
Array of strings or null

Responses

Request samples

Content type
{}

Response samples

Content type
{
  • "feedId": "aa08127b56aa419ba5a6584f2b6efe69",
  • "status": "",
  • "nextCheckDate": "2024-08-28T05:39:13.0000000+00:00",
  • "lastCheckDate": null,
  • "publicationDate": null,
  • "dateCreated": "2024-08-28T05:39:13.0000000+00:00",
  • "title": "Test feed",
  • "fallbackImageUrl": null,
  • "minImageWidth": null,
  • "minImageHeight": null,
  • "extractFullTextFromArticle": false,
  • "analyzeArticles": false,
  • "blacklistImages": [ ]
}

/Feeds/{id} - DELETE

By this method, you can delete a feed using id. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
[
  • {
    },
  • {
    }
]

Templates

/Templates - GET

By calling this method you can get a list of client templates. Since number of records could be large, results are paged - each page contains specific number of records (less than or equal to pageSize parameter). If no page parameter is specified, by default the first (page=1) page is returned. If no pageSize parameter is provided, by default the first 1000 records are returned per page. Before result campaign list is split into pages, it is sorted. Sort parameter could be any of following values: name or date. If no value is specified, by default templates are sorted by name. SortDirection could be either asc (ascending) or desc (descending). If not specified, by default results are sorted in ascending order. There's also optional parameter includePublic to include public templates when parameter value is set to true. If no value is specified, public templates are included. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
page
integer <int32>
Default: 1

Format - int32. Max. allowed number of records to get in single API call

pageSize
integer <int32>
Default: 1000

Format - int32. Page ordinal number to get results for

sortBy
string
Default: "name"

Field to sort records by (paging results makes sense if data is ordered). Allowed values are "name" or "date"

sortDirection
string
Default: "asc"

Sort by ascending (asc) values or by descending (desc) values

includePublic
boolean
Default: true

Specify whether to include public templates (not only client ones)

Responses

Response samples

Content type
{
  • "data": [
    ],
  • "page": 1,
  • "pageSize": 3,
  • "totalPages": 1,
  • "totalRecords": 3
}

/Templates - POST

By calling this method you can create campaign template, from provided HTML code. To view the authentication schemes, you can look at the auth details page.\n

Authorizations:
apiKeyHeaderapiKeyQuery
Request Body schema: application/json
name
string

Template name

htmlContent
string

Template HTML code

Responses

Request samples

Content type
application/json
{
  • "Name": "Template 1",
  • "HtmlContent": "<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>"
}

Response samples

Content type
{
  • "templateId": "2059995fcddd4b3f84063e66f4916179",
  • "name": "Test template",
  • "isPublic": false,
  • "previewUrl": null,
  • "dateCreated": "2024-11-14T11:14:02.0000000+00:00"
}

/Templates/{id} - GET

By this method, you can get the template through id. To view the authentication schemes, you can look at the auth details page.\n

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "templateId": "2059995fcddd4b3f84063e66f4916179",
  • "name": "Test template",
  • "isPublic": false,
  • "htmlContent": "<!DOCTYPE html><html><body><h1>My First Heading2</h1><p>My first paragraph.</p></body></html>",
  • "previewUrl": null,
  • "dateCreated": "2024-10-11T10:11:12.0000000+00:00"
}

/Templates/{id} - PUT

By this method, you can update existing template. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string
Request Body schema: application/json
name
string

Template name

htmlContent
string

Template HTML code

Responses

Request samples

Content type
application/json
{
  • "Name": "Test template",
  • "HtmlContent": "<!DOCTYPE html><html><body><h1>My First Heading2</h1><p>My first paragraph.</p></body></html>"
}

Response samples

Content type
{
  • "templateId": "2059995fcddd4b3f84063e66f4916179",
  • "name": "Test template",
  • "isPublic": false,
  • "htmlContent": "<!DOCTYPE html><html><body><h1>My First Heading2</h1><p>My first paragraph.</p></body></html>",
  • "previewUrl": null,
  • "dateCreated": "2024-10-11T10:11:12.0000000+00:00"
}

/Templates/{id} - DELETE

By this method, you can delete existing template. To view the authentication schemes, you can look at the auth details page.

Authorizations:
apiKeyHeaderapiKeyQuery
path Parameters
id
required
string

Responses

Response samples

Content type
[
  • {
    }
]