Skip to content
Docs

API reference / Operations by tag

communication

Templates, audiences, campaigns, banners, system emails and notifications.

64 operations. Base URL https://api.metrixed.com/v1; see authentication, errors and pagination.

Operations

MethodPathSummary
GET/communication/audiencesList Audiences
POST/communication/audiencesCreate Audience
GET/communication/audiences/{id}Get Audience
PATCH/communication/audiences/{id}Update Audience
DELETE/communication/audiences/{id}Delete Audience
POST/communication/audiences/bulk/applyBulk edit apply
POST/communication/audiences/bulk/previewBulk edit preview
POST/communication/audiences/previewAudience size and sample recipients
POST/communication/audiences/searchSearch Audiences (advanced)
GET/communication/audiences/usageHow many messages and banners target each audience
GET/communication/bannersList PartnerBanners
POST/communication/bannersCreate PartnerBanner
GET/communication/banners/{id}Get PartnerBanner
PATCH/communication/banners/{id}Update PartnerBanner
DELETE/communication/banners/{id}Delete PartnerBanner
POST/communication/banners/bulk/applyBulk edit apply
POST/communication/banners/bulk/previewBulk edit preview
POST/communication/banners/searchSearch PartnerBanners (advanced)
GET/communication/banners/statsPartner banner dismissals per banner
GET/communication/email-logEmail log: campaign deliveries and dispatched email notifications, newest first; q (recipient or subject), source campaign|notification, status, paging
GET/communication/email-providerTenant email provider (secrets masked)
PUT/communication/email-providerConfigure the tenant email provider (secrets encrypted at rest)
DELETE/communication/email-providerRemove the tenant email provider
GET/communication/email-provider/dnsSPF/DKIM/DMARC records to publish
POST/communication/email-provider/dns/checkLook up the sending-domain DNS records (TXT, CNAME) and report found / matches with the values seen
POST/communication/email-provider/testSend a test email
GET/communication/messagesList Campaigns
POST/communication/messagesCreate Campaign
GET/communication/messages/{id}Get Campaign
PATCH/communication/messages/{id}Update Campaign
DELETE/communication/messages/{id}Delete Campaign
POST/communication/messages/{id}/cancelCancel a message
GET/communication/messages/{id}/deliveriesPer-recipient delivery log with opens and clicks
POST/communication/messages/{id}/sendSend or schedule a draft message
POST/communication/messages/{id}/testSend me a test: render the message's email template with sample data and mail it to the caller (or 'to'); nothing is recorded
POST/communication/messages/bulk/applyBulk edit apply
POST/communication/messages/bulk/previewBulk edit preview
POST/communication/messages/searchSearch Campaigns (advanced)
GET/communication/messages/statsMessage delivery totals per message, a daily sent/opened/clicked series for the last N days (default 30) and message counts by status
GET/communication/system-emailsSystem email templates (override + default)
PUT/communication/system-emails/{key}Override a system email
DELETE/communication/system-emails/{key}Reset a system email to the default
POST/communication/system-emails/{key}/previewPreview a system email
POST/communication/system-emails/{key}/testSend a test copy of a system email
GET/communication/template-variablesAllowed template variables and sample data
GET/communication/templatesList MessageTemplates
POST/communication/templatesCreate MessageTemplate
GET/communication/templates/{id}Get MessageTemplate
PATCH/communication/templates/{id}Update MessageTemplate
DELETE/communication/templates/{id}Delete MessageTemplate
POST/communication/templates/bulk/applyBulk edit apply
POST/communication/templates/bulk/previewBulk edit preview
POST/communication/templates/previewRender a template with sample data (allowlist enforced)
POST/communication/templates/searchSearch MessageTemplates (advanced)
GET/notificationsNotifications
POST/notifications/readMark read
GET/partner/bannersActive banners for the partner
POST/partner/banners/{id}/dismissDismiss a banner
GET/partner/messagesPartner inbox
POST/partner/messages/{id}/readMark an inbox message read
GET/public/comms/c/{token}Click redirect (public, signed)
GET/public/comms/o/{file}Open-tracking pixel (public)
GET/public/comms/unsub/{token}Unsubscribe confirmation (public)
POST/public/comms/unsub/{token}One-click unsubscribe (public, RFC 8058)

GET /communication/audiences

List Audiences

Operation getCommunicationAudiences. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json AudienceList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/audiences?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

POST /communication/audiences

Create Audience

Operation postCommunicationAudiences. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): AudienceCreate

FieldTypeFlagsDescription
namestringrequired
entity_typeenum: partner, advertiser
filterobject (free-form)statuses[], tier_ids[], countries[], labels[], offer_ids[], activity active|inactive, active_days
StatusDescriptionBody
201okapplication/json Audience
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/audiences' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /communication/audiences/{id}

Get Audience

Operation getCommunicationAudiencesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json Audience
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/audiences/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /communication/audiences/{id}

Update Audience

Operation patchCommunicationAudiencesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): AudienceUpdate

FieldTypeFlagsDescription
namestring
entity_typeenum: partner, advertiser
filterobject (free-form)statuses[], tier_ids[], countries[], labels[], offer_ids[], activity active|inactive, active_days
StatusDescriptionBody
200okapplication/json Audience
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/communication/audiences/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","entity_type":"partner","filter":{}}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /communication/audiences/{id}

Delete Audience

Operation deleteCommunicationAudiencesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/communication/audiences/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

POST /communication/audiences/bulk/apply

Bulk edit apply

Operation postCommunicationAudiencesBulkApply. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/audiences/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/audiences/bulk/preview

Bulk edit preview

Operation postCommunicationAudiencesBulkPreview. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/audiences/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/audiences/preview

Audience size and sample recipients

Operation postCommunicationAudiencesPreview. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): AudienceCreate

FieldTypeFlagsDescription
namestringrequired
entity_typeenum: partner, advertiser
filterobject (free-form)statuses[], tier_ids[], countries[], labels[], offer_ids[], activity active|inactive, active_days
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/audiences/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":""}'

Example 200 response:

json
{
  "ok": false
}

POST /communication/audiences/search

Search Audiences (advanced)

Operation postCommunicationAudiencesSearch. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json AudienceList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/audiences/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

GET /communication/audiences/usage

How many messages and banners target each audience

Operation getCommunicationAudiencesUsage. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json AudienceUsage
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/audiences/usage' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{}

GET /communication/banners

List PartnerBanners

Operation getCommunicationBanners. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json PartnerBannerList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/banners?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

POST /communication/banners

Create PartnerBanner

Operation postCommunicationBanners. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): PartnerBannerCreate

FieldTypeFlagsDescription
titlestringrequired
bodystring
severityenum: info, success, warning, critical
starts_atstring (date-time)
ends_atstring (date-time)
audience_idstring
dismissibleboolean
statusenum: active, paused
StatusDescriptionBody
201okapplication/json PartnerBanner
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/banners' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"title":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /communication/banners/{id}

Get PartnerBanner

Operation getCommunicationBannersId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json PartnerBanner
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/banners/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /communication/banners/{id}

Update PartnerBanner

Operation patchCommunicationBannersId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): PartnerBannerUpdate

FieldTypeFlagsDescription
titlestring
bodystring
severityenum: info, success, warning, critical
starts_atstring (date-time)
ends_atstring (date-time)
audience_idstring
dismissibleboolean
statusenum: active, paused
StatusDescriptionBody
200okapplication/json PartnerBanner
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/communication/banners/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"title":"","body":"","severity":"info","starts_at":"1970-01-01T00:00:00.000Z"}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /communication/banners/{id}

Delete PartnerBanner

Operation deleteCommunicationBannersId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/communication/banners/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

POST /communication/banners/bulk/apply

Bulk edit apply

Operation postCommunicationBannersBulkApply. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/banners/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/banners/bulk/preview

Bulk edit preview

Operation postCommunicationBannersBulkPreview. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/banners/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/banners/search

Search PartnerBanners (advanced)

Operation postCommunicationBannersSearch. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json PartnerBannerList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/banners/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

GET /communication/banners/stats

Partner banner dismissals per banner

Operation getCommunicationBannersStats. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json BannerStats
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/banners/stats' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{}

GET /communication/email-log

Email log: campaign deliveries and dispatched email notifications, newest first; q (recipient or subject), source campaign|notification, status, paging

Operation getCommunicationEmailLog. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
qquerystringno
sourcequerystringno
statusquerystringno
pagequerystringno
page_sizequerystringno
StatusDescriptionBody
200okapplication/json EmailLog
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/email-log?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{}

GET /communication/email-provider

Tenant email provider (secrets masked)

Operation getCommunicationEmailProvider. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json EmailProvider
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/email-provider' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "kind": "smtp",
  "from_email": "",
  "from_name": "",
  "domain": ""
}

PUT /communication/email-provider

Configure the tenant email provider (secrets encrypted at rest)

Operation putCommunicationEmailProvider. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): EmailProvider

FieldTypeFlagsDescription
kindenum: smtp, ses, sendgrid, mailgun
from_emailstring
from_namestring
domainstring
dkim_selectorstring
configobject (free-form)host, port, username, password, region, api_key, domain (secrets are write-only and returned masked)
StatusDescriptionBody
200okapplication/json EmailProvider
defaulterrorapplication/json Error
bash
curl -X PUT 'https://api.metrixed.com/v1/communication/email-provider' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"kind":"smtp","from_email":"","from_name":"","domain":""}'

Example 200 response:

json
{
  "kind": "smtp",
  "from_email": "",
  "from_name": "",
  "domain": ""
}

DELETE /communication/email-provider

Remove the tenant email provider

Operation deleteCommunicationEmailProvider. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/communication/email-provider' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /communication/email-provider/dns

SPF/DKIM/DMARC records to publish

Operation getCommunicationEmailProviderDns. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
domainquerystringno
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/email-provider/dns' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /communication/email-provider/dns/check

Look up the sending-domain DNS records (TXT, CNAME) and report found / matches with the values seen

Operation postCommunicationEmailProviderDnsCheck. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): DNSCheckRequest

StatusDescriptionBody
200okapplication/json DNSCheckResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/email-provider/dns/check' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'

Example 200 response:

json
{}

POST /communication/email-provider/test

Send a test email

Operation postCommunicationEmailProviderTest. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/email-provider/test' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

GET /communication/messages

List Campaigns

Operation getCommunicationMessages. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json CampaignList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/messages?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

POST /communication/messages

Create Campaign

Operation postCommunicationMessages. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): CampaignCreate

FieldTypeFlagsDescription
namestringrequired
template_idstringrequired
audience_idstringrequired
channelenum: email, in_app, both
scheduled_atstring (date-time)
started_atstring (date-time)
finished_atstring (date-time)
rate_per_mininteger
StatusDescriptionBody
201okapplication/json Campaign
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","template_id":"","audience_id":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /communication/messages/{id}

Get Campaign

Operation getCommunicationMessagesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json Campaign
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/messages/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /communication/messages/{id}

Update Campaign

Operation patchCommunicationMessagesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): CampaignUpdate

FieldTypeFlagsDescription
namestring
template_idstring
audience_idstring
channelenum: email, in_app, both
scheduled_atstring (date-time)
started_atstring (date-time)
finished_atstring (date-time)
rate_per_mininteger
StatusDescriptionBody
200okapplication/json Campaign
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/communication/messages/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","template_id":"","audience_id":"","channel":"email"}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /communication/messages/{id}

Delete Campaign

Operation deleteCommunicationMessagesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/communication/messages/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

POST /communication/messages/{id}/cancel

Cancel a message

Operation postCommunicationMessagesIdCancel. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json Campaign
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages/<id>/cancel' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

GET /communication/messages/{id}/deliveries

Per-recipient delivery log with opens and clicks Per-recipient delivery log with opens and clicks. WP-67: paged; q matches email or name; status queued|sent|failed|unsubscribed|opened|clicked; stats stay campaign-wide.

Operation getCommunicationMessagesIdDeliveries. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
qquerystringno
pagequerystringno
page_sizequerystringno
sortquerystringno
statusquerystringno
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/messages/<id>/deliveries?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /communication/messages/{id}/send

Send or schedule a draft message

Operation postCommunicationMessagesIdSend. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
202okapplication/json Campaign
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages/<id>/send' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 202 response:

json
{
  "external_ref": ""
}

POST /communication/messages/{id}/test

Send me a test: render the message's email template with sample data and mail it to the caller (or 'to'); nothing is recorded

Operation postCommunicationMessagesIdTest. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): MessageTestSend

StatusDescriptionBody
200okapplication/json MessageTestResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages/<id>/test' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'

Example 200 response:

json
{}

POST /communication/messages/bulk/apply

Bulk edit apply

Operation postCommunicationMessagesBulkApply. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/messages/bulk/preview

Bulk edit preview

Operation postCommunicationMessagesBulkPreview. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/messages/search

Search Campaigns (advanced)

Operation postCommunicationMessagesSearch. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json CampaignList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/messages/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

GET /communication/messages/stats

Message delivery totals per message, a daily sent/opened/clicked series for the last N days (default 30) and message counts by status

Operation getCommunicationMessagesStats. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
daysquerystringno
StatusDescriptionBody
200okapplication/json MessageStats
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/messages/stats' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{}

GET /communication/system-emails

System email templates (override + default)

Operation getCommunicationSystemEmails. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/system-emails' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

PUT /communication/system-emails/{key}

Override a system email

Operation putCommunicationSystemEmailsKey. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
keypathstringyes

Request body (application/json, required): MessageTemplateCreate

FieldTypeFlagsDescription
namestringrequired
channelenum: email, in_app
subjectstring
body_htmlstring
body_textstring
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X PUT 'https://api.metrixed.com/v1/communication/system-emails/<key>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":""}'

Example 200 response:

json
{
  "ok": false
}

DELETE /communication/system-emails/{key}

Reset a system email to the default

Operation deleteCommunicationSystemEmailsKey. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
keypathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/communication/system-emails/<key>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /communication/system-emails/{key}/preview

Preview a system email

Operation postCommunicationSystemEmailsKeyPreview. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
keypathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/system-emails/<key>/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /communication/system-emails/{key}/test

Send a test copy of a system email

Operation postCommunicationSystemEmailsKeyTest. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
keypathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/system-emails/<key>/test' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

GET /communication/template-variables

Allowed template variables and sample data

Operation getCommunicationTemplateVariables. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/template-variables' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

GET /communication/templates

List MessageTemplates

Operation getCommunicationTemplates. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json MessageTemplateList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/templates?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

POST /communication/templates

Create MessageTemplate

Operation postCommunicationTemplates. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): MessageTemplateCreate

FieldTypeFlagsDescription
namestringrequired
channelenum: email, in_app
subjectstring
body_htmlstring
body_textstring
StatusDescriptionBody
201okapplication/json MessageTemplate
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/templates' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /communication/templates/{id}

Get MessageTemplate

Operation getCommunicationTemplatesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json MessageTemplate
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/communication/templates/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /communication/templates/{id}

Update MessageTemplate

Operation patchCommunicationTemplatesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): MessageTemplateUpdate

FieldTypeFlagsDescription
namestring
channelenum: email, in_app
subjectstring
body_htmlstring
body_textstring
StatusDescriptionBody
200okapplication/json MessageTemplate
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/communication/templates/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","channel":"email","subject":"","body_html":""}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /communication/templates/{id}

Delete MessageTemplate

Operation deleteCommunicationTemplatesId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/communication/templates/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

POST /communication/templates/bulk/apply

Bulk edit apply

Operation postCommunicationTemplatesBulkApply. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/templates/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/templates/bulk/preview

Bulk edit preview

Operation postCommunicationTemplatesBulkPreview. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/templates/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /communication/templates/preview

Render a template with sample data (allowlist enforced)

Operation postCommunicationTemplatesPreview. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): MessageTemplateCreate

FieldTypeFlagsDescription
namestringrequired
channelenum: email, in_app
subjectstring
body_htmlstring
body_textstring
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/templates/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":""}'

Example 200 response:

json
{
  "ok": false
}

POST /communication/templates/search

Search MessageTemplates (advanced)

Operation postCommunicationTemplatesSearch. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json MessageTemplateList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/communication/templates/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

GET /notifications

Notifications

Operation getNotifications. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json NotificationList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/notifications?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

POST /notifications/read

Mark read

Operation postNotificationsRead. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): IdList

FieldTypeFlagsDescription
idsarray of stringrequired
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/notifications/read' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""]}'

Example 200 response:

json
{
  "ok": false
}

GET /partner/banners

Active banners for the partner

Operation getPartnerBanners. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/partner/banners' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /partner/banners/{id}/dismiss

Dismiss a banner

Operation postPartnerBannersIdDismiss. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/partner/banners/<id>/dismiss' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /partner/messages

Partner inbox

Operation getPartnerMessages. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/partner/messages' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /partner/messages/{id}/read

Mark an inbox message read

Operation postPartnerMessagesIdRead. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/partner/messages/<id>/read' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /public/comms/c/{token}

Click redirect (public, signed)

Operation getPublicCommsCToken. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
tokenpathstringyes
uquerystringyes
squerystringyes
StatusDescriptionBody
302okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/public/comms/c/<token>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

GET /public/comms/o/{file}

Open-tracking pixel (public)

Operation getPublicCommsOFile. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
filepathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/public/comms/o/<file>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

GET /public/comms/unsub/{token}

Unsubscribe confirmation (public)

Operation getPublicCommsUnsubToken. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
tokenpathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/public/comms/unsub/<token>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /public/comms/unsub/{token}

One-click unsubscribe (public, RFC 8058)

Operation postPublicCommsUnsubToken. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
tokenpathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/public/comms/unsub/<token>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}