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
| Method | Path | Summary |
|---|---|---|
| GET | /communication/audiences | List Audiences |
| POST | /communication/audiences | Create Audience |
| GET | /communication/audiences/{id} | Get Audience |
| PATCH | /communication/audiences/{id} | Update Audience |
| DELETE | /communication/audiences/{id} | Delete Audience |
| POST | /communication/audiences/bulk/apply | Bulk edit apply |
| POST | /communication/audiences/bulk/preview | Bulk edit preview |
| POST | /communication/audiences/preview | Audience size and sample recipients |
| POST | /communication/audiences/search | Search Audiences (advanced) |
| GET | /communication/audiences/usage | How many messages and banners target each audience |
| GET | /communication/banners | List PartnerBanners |
| POST | /communication/banners | Create PartnerBanner |
| GET | /communication/banners/{id} | Get PartnerBanner |
| PATCH | /communication/banners/{id} | Update PartnerBanner |
| DELETE | /communication/banners/{id} | Delete PartnerBanner |
| POST | /communication/banners/bulk/apply | Bulk edit apply |
| POST | /communication/banners/bulk/preview | Bulk edit preview |
| POST | /communication/banners/search | Search PartnerBanners (advanced) |
| GET | /communication/banners/stats | Partner banner dismissals per banner |
| GET | /communication/email-log | Email log: campaign deliveries and dispatched email notifications, newest first; q (recipient or subject), source campaign|notification, status, paging |
| GET | /communication/email-provider | Tenant email provider (secrets masked) |
| PUT | /communication/email-provider | Configure the tenant email provider (secrets encrypted at rest) |
| DELETE | /communication/email-provider | Remove the tenant email provider |
| GET | /communication/email-provider/dns | SPF/DKIM/DMARC records to publish |
| POST | /communication/email-provider/dns/check | Look up the sending-domain DNS records (TXT, CNAME) and report found / matches with the values seen |
| POST | /communication/email-provider/test | Send a test email |
| GET | /communication/messages | List Campaigns |
| POST | /communication/messages | Create Campaign |
| GET | /communication/messages/{id} | Get Campaign |
| PATCH | /communication/messages/{id} | Update Campaign |
| DELETE | /communication/messages/{id} | Delete Campaign |
| POST | /communication/messages/{id}/cancel | Cancel a message |
| GET | /communication/messages/{id}/deliveries | Per-recipient delivery log with opens and clicks |
| POST | /communication/messages/{id}/send | Send or schedule a draft message |
| 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 |
| POST | /communication/messages/bulk/apply | Bulk edit apply |
| POST | /communication/messages/bulk/preview | Bulk edit preview |
| POST | /communication/messages/search | Search Campaigns (advanced) |
| 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 |
| GET | /communication/system-emails | System 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}/preview | Preview a system email |
| POST | /communication/system-emails/{key}/test | Send a test copy of a system email |
| GET | /communication/template-variables | Allowed template variables and sample data |
| GET | /communication/templates | List MessageTemplates |
| POST | /communication/templates | Create MessageTemplate |
| GET | /communication/templates/{id} | Get MessageTemplate |
| PATCH | /communication/templates/{id} | Update MessageTemplate |
| DELETE | /communication/templates/{id} | Delete MessageTemplate |
| POST | /communication/templates/bulk/apply | Bulk edit apply |
| POST | /communication/templates/bulk/preview | Bulk edit preview |
| POST | /communication/templates/preview | Render a template with sample data (allowlist enforced) |
| POST | /communication/templates/search | Search MessageTemplates (advanced) |
| GET | /notifications | Notifications |
| POST | /notifications/read | Mark read |
| GET | /partner/banners | Active banners for the partner |
| POST | /partner/banners/{id}/dismiss | Dismiss a banner |
| GET | /partner/messages | Partner inbox |
| POST | /partner/messages/{id}/read | Mark 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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | |
page_size | query | integer | no | |
sort | query | string | no | field or -field |
include | query | string | no | comma-separated relationships |
filter | query | object (free-form) | no | |
q | query | string | no | free-text search |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AudienceList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
POST /communication/audiences
Create Audience
Operation postCommunicationAudiences. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): AudienceCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
entity_type | enum: partner, advertiser | ||
filter | object (free-form) | statuses[], tier_ids[], countries[], labels[], offer_ids[], activity active|inactive, active_days |
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:
{
"external_ref": ""
}
GET /communication/audiences/{id}
Get Audience
Operation getCommunicationAudiencesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/communication/audiences/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /communication/audiences/{id}
Update Audience
Operation patchCommunicationAudiencesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): AudienceUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | ||
entity_type | enum: partner, advertiser | ||
filter | object (free-form) | statuses[], tier_ids[], countries[], labels[], offer_ids[], activity active|inactive, active_days |
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:
{
"external_ref": ""
}
DELETE /communication/audiences/{id}
Delete Audience
Operation deleteCommunicationAudiencesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/communication/audiences/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
entity_type | enum: partner, advertiser | ||
filter | object (free-form) | statuses[], tier_ids[], countries[], labels[], offer_ids[], activity active|inactive, active_days |
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:
{
"ok": false
}
POST /communication/audiences/search
Search Audiences (advanced)
Operation postCommunicationAudiencesSearch. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): SearchRequest
| Field | Type | Flags | Description |
|---|---|---|---|
filters | array of object | ||
search | string | ||
sort | array of object (free-form) | ||
page | integer | ||
page_size | integer | ||
include | array of string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AudienceList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
GET /communication/audiences/usage
How many messages and banners target each audience
Operation getCommunicationAudiencesUsage. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AudienceUsage |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/communication/audiences/usage' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
GET /communication/banners
List PartnerBanners
Operation getCommunicationBanners. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | |
page_size | query | integer | no | |
sort | query | string | no | field or -field |
include | query | string | no | comma-separated relationships |
filter | query | object (free-form) | no | |
q | query | string | no | free-text search |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json PartnerBannerList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
POST /communication/banners
Create PartnerBanner
Operation postCommunicationBanners. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): PartnerBannerCreate
| Field | Type | Flags | Description |
|---|---|---|---|
title | string | required | |
body | string | ||
severity | enum: info, success, warning, critical | ||
starts_at | string (date-time) | ||
ends_at | string (date-time) | ||
audience_id | string | ||
dismissible | boolean | ||
status | enum: active, paused |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json PartnerBanner |
| default | error | application/json Error |
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:
{
"external_ref": ""
}
GET /communication/banners/{id}
Get PartnerBanner
Operation getCommunicationBannersId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json PartnerBanner |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/communication/banners/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /communication/banners/{id}
Update PartnerBanner
Operation patchCommunicationBannersId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): PartnerBannerUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
title | string | ||
body | string | ||
severity | enum: info, success, warning, critical | ||
starts_at | string (date-time) | ||
ends_at | string (date-time) | ||
audience_id | string | ||
dismissible | boolean | ||
status | enum: active, paused |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json PartnerBanner |
| default | error | application/json Error |
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:
{
"external_ref": ""
}
DELETE /communication/banners/{id}
Delete PartnerBanner
Operation deleteCommunicationBannersId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/communication/banners/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
filters | array of object | ||
search | string | ||
sort | array of object (free-form) | ||
page | integer | ||
page_size | integer | ||
include | array of string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json PartnerBannerList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
GET /communication/banners/stats
Partner banner dismissals per banner
Operation getCommunicationBannersStats. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BannerStats |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/communication/banners/stats' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
q | query | string | no | |
source | query | string | no | |
status | query | string | no | |
page | query | string | no | |
page_size | query | string | no |
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:
{}
GET /communication/email-provider
Tenant email provider (secrets masked)
Operation getCommunicationEmailProvider. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json EmailProvider |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/communication/email-provider' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
kind | enum: smtp, ses, sendgrid, mailgun | ||
from_email | string | ||
from_name | string | ||
domain | string | ||
dkim_selector | string | ||
config | object (free-form) | host, port, username, password, region, api_key, domain (secrets are write-only and returned masked) |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json EmailProvider |
| default | error | application/json Error |
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:
{
"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.
curl -X DELETE 'https://api.metrixed.com/v1/communication/email-provider' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /communication/email-provider/dns
SPF/DKIM/DMARC records to publish
Operation getCommunicationEmailProviderDns. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | no |
curl 'https://api.metrixed.com/v1/communication/email-provider/dns' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"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
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json DNSCheckResult |
| default | error | application/json Error |
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:
{}
POST /communication/email-provider/test
Send a test email
Operation postCommunicationEmailProviderTest. Auth: API key (Bearer) or session cookie.
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:
{
"ok": false
}
GET /communication/messages
List Campaigns
Operation getCommunicationMessages. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | |
page_size | query | integer | no | |
sort | query | string | no | field or -field |
include | query | string | no | comma-separated relationships |
filter | query | object (free-form) | no | |
q | query | string | no | free-text search |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json CampaignList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
POST /communication/messages
Create Campaign
Operation postCommunicationMessages. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): CampaignCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
template_id | string | required | |
audience_id | string | required | |
channel | enum: email, in_app, both | ||
scheduled_at | string (date-time) | ||
started_at | string (date-time) | ||
finished_at | string (date-time) | ||
rate_per_min | integer |
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:
{
"external_ref": ""
}
GET /communication/messages/{id}
Get Campaign
Operation getCommunicationMessagesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/communication/messages/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /communication/messages/{id}
Update Campaign
Operation patchCommunicationMessagesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): CampaignUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | ||
template_id | string | ||
audience_id | string | ||
channel | enum: email, in_app, both | ||
scheduled_at | string (date-time) | ||
started_at | string (date-time) | ||
finished_at | string (date-time) | ||
rate_per_min | integer |
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:
{
"external_ref": ""
}
DELETE /communication/messages/{id}
Delete Campaign
Operation deleteCommunicationMessagesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/communication/messages/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
POST /communication/messages/{id}/cancel
Cancel a message
Operation postCommunicationMessagesIdCancel. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
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:
{
"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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | |
q | query | string | no | |
page | query | string | no | |
page_size | query | string | no | |
sort | query | string | no | |
status | query | string | no |
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:
{
"ok": false
}
POST /communication/messages/{id}/send
Send or schedule a draft message
Operation postCommunicationMessagesIdSend. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
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:
{
"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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): MessageTestSend
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json MessageTestResult |
| default | error | application/json Error |
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:
{}
POST /communication/messages/bulk/apply
Bulk edit apply
Operation postCommunicationMessagesBulkApply. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): BulkPatch
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
filters | array of object | ||
search | string | ||
sort | array of object (free-form) | ||
page | integer | ||
page_size | integer | ||
include | array of string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json CampaignList |
| default | error | application/json Error |
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:
{
"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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
days | query | string | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json MessageStats |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/communication/messages/stats' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
GET /communication/system-emails
System email templates (override + default)
Operation getCommunicationSystemEmails. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/communication/system-emails' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
PUT /communication/system-emails/{key}
Override a system email
Operation putCommunicationSystemEmailsKey. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
key | path | string | yes |
Request body (application/json, required): MessageTemplateCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
channel | enum: email, in_app | ||
subject | string | ||
body_html | string | ||
body_text | string |
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:
{
"ok": false
}
DELETE /communication/system-emails/{key}
Reset a system email to the default
Operation deleteCommunicationSystemEmailsKey. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
key | path | string | yes |
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:
{
"ok": false
}
POST /communication/system-emails/{key}/preview
Preview a system email
Operation postCommunicationSystemEmailsKeyPreview. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
key | path | string | yes |
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:
{
"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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
key | path | string | yes |
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:
{
"ok": false
}
GET /communication/template-variables
Allowed template variables and sample data
Operation getCommunicationTemplateVariables. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/communication/template-variables' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /communication/templates
List MessageTemplates
Operation getCommunicationTemplates. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | |
page_size | query | integer | no | |
sort | query | string | no | field or -field |
include | query | string | no | comma-separated relationships |
filter | query | object (free-form) | no | |
q | query | string | no | free-text search |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json MessageTemplateList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
POST /communication/templates
Create MessageTemplate
Operation postCommunicationTemplates. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): MessageTemplateCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
channel | enum: email, in_app | ||
subject | string | ||
body_html | string | ||
body_text | string |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json MessageTemplate |
| default | error | application/json Error |
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:
{
"external_ref": ""
}
GET /communication/templates/{id}
Get MessageTemplate
Operation getCommunicationTemplatesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json MessageTemplate |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/communication/templates/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /communication/templates/{id}
Update MessageTemplate
Operation patchCommunicationTemplatesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): MessageTemplateUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | ||
channel | enum: email, in_app | ||
subject | string | ||
body_html | string | ||
body_text | string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json MessageTemplate |
| default | error | application/json Error |
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:
{
"external_ref": ""
}
DELETE /communication/templates/{id}
Delete MessageTemplate
Operation deleteCommunicationTemplatesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/communication/templates/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
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:
{
"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
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
channel | enum: email, in_app | ||
subject | string | ||
body_html | string | ||
body_text | string |
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:
{
"ok": false
}
POST /communication/templates/search
Search MessageTemplates (advanced)
Operation postCommunicationTemplatesSearch. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): SearchRequest
| Field | Type | Flags | Description |
|---|---|---|---|
filters | array of object | ||
search | string | ||
sort | array of object (free-form) | ||
page | integer | ||
page_size | integer | ||
include | array of string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json MessageTemplateList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
GET /notifications
Notifications
Operation getNotifications. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | |
page_size | query | integer | no | |
sort | query | string | no | field or -field |
include | query | string | no | comma-separated relationships |
filter | query | object (free-form) | no | |
q | query | string | no | free-text search |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json NotificationList |
| default | error | application/json Error |
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:
{
"data": [
{}
],
"page": {}
}
POST /notifications/read
Mark read
Operation postNotificationsRead. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): IdList
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required |
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:
{
"ok": false
}
GET /partner/banners
Active banners for the partner
Operation getPartnerBanners. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/partner/banners' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
POST /partner/banners/{id}/dismiss
Dismiss a banner
Operation postPartnerBannersIdDismiss. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
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:
{
"ok": false
}
GET /partner/messages
Partner inbox
Operation getPartnerMessages. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/partner/messages' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
POST /partner/messages/{id}/read
Mark an inbox message read
Operation postPartnerMessagesIdRead. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
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:
{
"ok": false
}
GET /public/comms/c/{token}
Click redirect (public, signed)
Operation getPublicCommsCToken. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes | |
u | query | string | yes | |
s | query | string | yes |
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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
file | path | string | yes |
curl 'https://api.metrixed.com/v1/public/comms/o/<file>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /public/comms/unsub/{token}
Unsubscribe confirmation (public)
Operation getPublicCommsUnsubToken. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes |
curl 'https://api.metrixed.com/v1/public/comms/unsub/<token>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
POST /public/comms/unsub/{token}
One-click unsubscribe (public, RFC 8058)
Operation postPublicCommsUnsubToken. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes |
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:
{
"ok": false
}