Download OpenAPI specification:
This is the API documentation for the Doxie MPM API.
Initiate consent for a contact. Initiates a new consent if the contact is known or creates a new contact.
| tenant required | string Example: ts The tenant slug |
Initiate consent payload
| customer_id required | string The ID of the contact |
| consent_slug required | string The slug of the consent purpose |
| phone | string The phone number for the consent. Only one contact channel is allowed. |
string The email for the consent. Only one contact channel is allowed. |
{- "customer_id": "1234567890",
- "consent_slug": "marketing",
- "phone": "+491234567890",
- "email": null
}{- "success": true,
- "error_message": null,
- "process_uuid": "1234567890",
- "data": {
- "customer_id": "1234567890",
- "consent_slug": "marketing",
- "contact_channel": "+491234567890",
- "process_uuid": "1234567890"
}
}Revokes one or all consents for a contact.
| tenant required | string Example: ts The tenant slug |
Revoke consent payload
| customer_id required | string The ID of the contact |
| consent_slug | string The slug of the consent purpose |
| revoke_all | boolean Whether to revoke all consents for the contact or only the consent for the consent slug |
{- "customer_id": "1234567890",
- "consent_slug": "marketing",
- "revoke_all": false
}{- "success": true,
- "error_message": null,
- "data": {
- "revoked_consents": [
- {
- "customer_id": "1234567890",
- "consent_slug": "marketing",
- "contact_channel": "+491234567890",
- "process_uuid": "1234567890"
}
]
}
}Sends a mail.
| tenant required | string Example: ts The tenant slug |
| event_slug required | string Example: welcome_email The event slug |
Email payload
| any_keys | string The needed payload for the event. The payload is free to choose. The parameters should fit the configured event parameters in the application. |
{- "any_keys": "any value"
}{- "success": true,
- "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
- "sent_email_templates": [
- {
- "template_name": "Willkommensmail",
- "success": true,
- "message_id": 1234,
- "error_message": "Error message"
}
], - "sent_sms_templates": [
- {
- "template_name": "Willkommenssms",
- "success": true,
- "message_id": 1234,
- "error_message": "Error message"
}
]
}Creates an injection for an embedded journey event.
| tenant required | string Example: ts The tenant slug |
| event_slug required | string Example: event_slug The event slug |
Email payload
| any_keys | string The needed payload for the injection event. The payload is free to choose. The parameters should fit the configured event parameters in the application. |
{- "any_keys": "any value"
}{- "success": true,
- "error_message": null,
- "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
- "data": null
}Creates an inquiry for a survey response
| tenant required | string Example: ts The tenant slug |
| event_slug required | string Example: event_slug The event slug of the survey campaign |
Survey payload
string The email of the respondent, required if phone is not provided | |
| phone | string The phone number of the respondent, required if email is not provided |
| any_keys | string The needed payload for the survey event. The payload is free to choose. The parameters should fit the configured messaging event parameters in the application. |
{- "email": "test@example.com",
- "phone": "+491771234567",
- "any_keys": "any value"
}{- "success": true,
- "error_message": null,
- "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
- "data": null
}Creates a QR code for a QR code event.
| tenant required | string Example: ts The tenant slug |
| event_slug required | string Example: event_slug The event slug |
QR code payload
| any_keys | string Additional payload parameters for the QR code event. The payload is free to choose. The parameters should fit the configured event parameters (target_url, valid_until) in the application. |
{- "any_keys": "any value"
}{- "success": true,
- "error_message": "null",
- "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
- "data": {
- "uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
- "valid_until": "2024-12-31T23:59:59Z",
}
}Notify the registered URL with details of a sent email or SMS
| process_id | string The UUID of the process |
| message_type | string Enum: "email" "sms" The type of message (email or sms) |
| message_id | string The ID of the message |
| recipient_specific_message_ids | Array of arrays The IDs of the recipient specific messages |
| recipient | string The recipient of the message |
| subject | string The subject of the message |
| text | string The text of the message |
| html | string The HTML of the message |
| original_brand_slug | string The slug of the brand |
| original_tenant_slug | string The slug of the tenant |
| original_event_slug | string The slug of the event |
| timestamp | string The timestamp of the message |
| original_payload | object The original payload sent for the event, that belongs to the sent message |
{- "process_id": "123e4567-e89b-12d3-a456-426614174000",
- "message_type": "email",
- "message_id": 1234567890,
- "recipient_specific_message_ids": [
- 1234567890,
- 1234567891
], - "recipient": "john.doe@example.com",
- "subject": "Hello, world!",
- "text": "Hello, world!",
- "html": "<p>Hello, world!</p>",
- "original_brand_slug": "ts",
- "original_tenant_slug": "ts",
- "original_event_slug": "concert",
- "timestamp": "2021-01-01T00:00:00Z",
- "original_payload": {
- "email": "john.doe@example.com",
- "event_slug": "concert",
- "phone": "0123456789"
}
}Notify the registered URL with details of a message status update
| process_id | string The UUID of the process |
| message_type | string Enum: "email" "sms" The type of message (email or sms) |
| message_id | string The ID of the message |
| recipient_specific_message_id | string The ID of the recipient specific message |
| recipient | string The recipient of the message |
| status | string The status of the message |
| timestamp | string The timestamp of the message |
| original_payload | object The original payload sent for the event, that belongs to the sent message |
{- "process_id": "123e4567-e89b-12d3-a456-426614174000",
- "message_type": "email",
- "message_id": 1234567890,
- "recipient_specific_message_id": 1234567890,
- "recipient": "john.doe@example.com",
- "status": "sent",
- "timestamp": "2021-01-01T00:00:00Z",
- "original_payload": {
- "email": "john.doe@example.com",
- "event_slug": "concert",
- "phone": "0123456789"
}
}Notify the registered URL with details of a link clicked
| process_id | string The UUID of the process |
| url | string The URL that was clicked |
| recipients | string The recipients who received the link and could have clicked it |
| original_tenant_slug | string The slug of the tenant |
| original_event_slug | string The slug of the event |
| timestamp | string The timestamp of the link clicked |
| original_payload | object The original payload sent for the event, that belongs to the clicked link |
{- "process_id": "123e4567-e89b-12d3-a456-426614174000",
- "recipients": "john.doe@example.com, jane.doe@example.com, 0123456789",
- "original_tenant_slug": "ts",
- "original_event_slug": "concert",
- "timestamp": "2021-01-01T00:00:00Z",
- "original_payload": {
- "email": "john.doe@example.com",
- "event_slug": "concert",
- "phone": "0123456789"
}
}Notify the registered URL with details of a DOI confirmation
| identifier | string The identifier of the DOI consent |
| timestamp | string The timestamp of the DOI confirmation |
| ipAddress | string The IP address which consented to the DOI |
{- "identifier": Infinity,
- "timestamp": "2021-01-01T00:00:00Z",
- "ipAddress": "123.123.123.123"
}Notify the registered URL with details of a process cancellation
| process_uuid | string The UUID of the process |
| cancellation_timestamp | string The timestamp of the process cancellation |
| original_payload | object The original payload sent for the event, that belongs to the process (optional) |
{- "process_uuid": "123e4567-e89b-12d3-a456-426614174000",
- "cancellation_timestamp": "2021-01-01T00:00:00Z",
- "original_payload": {
- "email": "john.doe@example.com",
- "event_slug": "concert",
- "phone": "0123456789"
}
}Notify the registered URL when a QR code is scanned
| process_id | string The UUID of the process |
| target_url | string The target URL the QR code redirects to |
| valid_until | string or null <date-time> The expiration date of the QR code |
| qr_code_uuid | string The UUID of the QR code that was scanned |
| timestamp | string <date-time> The timestamp when the QR code was scanned and opened in the browser |
| status | string Enum: "active" "expired" The status of the QR code when it was scanned |
| original_payload | object or null The original payload sent for the event, that belongs to the scanned QR code |
{- "process_id": "123e4567-e89b-12d3-a456-426614174000",
- "valid_until": "2024-12-31T23:59:59Z",
- "qr_code_uuid": "123e4567-e89b-12d3-a456-426614174000",
- "timestamp": "2021-01-01T00:00:00Z",
- "status": "active",
- "original_payload": {
- "valid_until": "2024-12-31T23:59:59Z"
}
}Notify the registered URL when a RCS message is responded to. The process ID is the last process that was sent to the recipient.
| process_id | string The UUID of the process |
| message_id | string The ID of the RCS message that was (most likely) responded to |
| agent_id | string The agent ID of the RCS message that was (most likely) responded to |
| sender | string The sender of the response |
| timestamp | string <date-time> The timestamp when the RCS message was responded to |
| message_content | object The content of the RCS message that was responded to. It only includes one of the keys. |
| original_payload | object or null The original payload sent for the event, that belongs to the scanned QR code |
{- "process_id": "123e4567-e89b-12d3-a456-426614174000",
- "message_id": 1234567890,
- "agent_id": "doxie_agent",
- "sender": "491234567890",
- "timestamp": "2026-03-26T13:17:43+01:00",
- "message_content": {
- "text": "This is a test RCS message.",
- "suggestion_response": {
- "postback_data": "1234567890",
- "text": "This is a test suggestion response.",
- "type": "button"
}, - "user_file": {
- "thumbnail": {
- "mime_type": "image/jpeg",
- "file_size": 1000,
}, - "payload": {
- "mime_type": "image/jpeg",
- "file_size": 1000,
- "file_name": "test.jpg",
}
}, - "location": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "original_payload": {
- "valid_until": "2024-12-31T23:59:59Z"
}
}List brands for the given tenant.
| tenant required | string Example: ts The tenant slug |
| limit | integer Example: limit=200 Number of records per page. |
| page | integer Example: page=1 Page number. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "brands": [
- {
- "id": 1,
- "name": "Example Brand",
- "slug": "example-brand",
- "possible_sender_emails": [
- "noreply@example.com"
], - "sender_phone_number": "+491234567890",
- "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "********",
- "rcs_api_key": "********",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z",
- "mailjet_api_user": {
- "id": 1,
- "public_api_key": "mailjet-public-key",
- "private_api_key": "********"
}, - "ses_api_user": {
- "id": 1,
- "access_key_id": "AKIAIOSFODNN7EXAMPLE",
- "region": "eu-central-1",
- "secret_access_key": "********"
}, - "smtp_config": {
- "id": 1,
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": false,
- "openssl_verify_mode": null,
- "domain": "example.com",
- "envelope_from": "noreply@example.com",
- "password": "********"
}, - "style": {
- "id": 1,
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "fallback_font_family": "sans-serif",
- "pages_font_family": "Poppins",
- "pages_font_family_path": "poppins",
- "pages_font_family_weight": [
- "400",
- "700"
], - "pages_headline_font_family": "Poppins",
- "pages_headline_font_family_path": "poppins",
- "pages_headline_font_family_weight": [
- "400",
- "700"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
], - "pagination": {
- "current_page": 1,
- "items_per_page": 200,
- "total_pages": 1,
- "total_count": 1
}
}
}Create a brand for the given tenant. Requires write permission. Secret fields are masked in the response.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
required | object (brand_input_schema) Brand attributes for create and update. Nested objects depend on |
{- "brand": {
- "name": "Example Brand",
- "slug": "example-brand",
- "sender_phone_number": "+491234567890",
- "possible_sender_emails": [
- "noreply@example.com"
], - "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "1234567890",
- "rcs_api_key": "1234567890",
- "mailjet_api_user_attributes": {
- "public_api_key": "1234567890",
- "private_api_key": "1234567890"
}, - "ses_api_user_attributes": {
- "access_key_id": "1234567890",
- "secret_access_key": "1234567890",
- "region": "eu-central-1"
}, - "smtp_config_attributes": {
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "password": "1234567890",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": true,
- "openssl_verify_mode": "none",
- "domain": "example.com",
- "envelope_from": "string"
}, - "style_attributes": {
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "pages_font_family": "poppins",
- "pages_font_family_path": "poppins",
- "pages_headline_font_family": "poppins",
- "pages_headline_font_family_path": "poppins"
}
}
}{- "success": true,
- "message": "Erfolgreich erstellt",
- "error": null,
- "data": {
- "id": 1,
- "name": "Example Brand",
- "slug": "example-brand",
- "possible_sender_emails": [
- "noreply@example.com"
], - "sender_phone_number": "+491234567890",
- "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "********",
- "rcs_api_key": "********",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z",
- "mailjet_api_user": {
- "id": 1,
- "public_api_key": "mailjet-public-key",
- "private_api_key": "********"
}, - "ses_api_user": {
- "id": 1,
- "access_key_id": "AKIAIOSFODNN7EXAMPLE",
- "region": "eu-central-1",
- "secret_access_key": "********"
}, - "smtp_config": {
- "id": 1,
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": false,
- "openssl_verify_mode": null,
- "domain": "example.com",
- "envelope_from": "noreply@example.com",
- "password": "********"
}, - "style": {
- "id": 1,
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "fallback_font_family": "sans-serif",
- "pages_font_family": "Poppins",
- "pages_font_family_path": "poppins",
- "pages_font_family_weight": [
- "400",
- "700"
], - "pages_headline_font_family": "Poppins",
- "pages_headline_font_family_path": "poppins",
- "pages_headline_font_family_weight": [
- "400",
- "700"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
}Returns a single brand for the given tenant.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 1 The brand ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "id": 1,
- "name": "Example Brand",
- "slug": "example-brand",
- "possible_sender_emails": [
- "noreply@example.com"
], - "sender_phone_number": "+491234567890",
- "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "********",
- "rcs_api_key": "********",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z",
- "mailjet_api_user": {
- "id": 1,
- "public_api_key": "mailjet-public-key",
- "private_api_key": "********"
}, - "ses_api_user": {
- "id": 1,
- "access_key_id": "AKIAIOSFODNN7EXAMPLE",
- "region": "eu-central-1",
- "secret_access_key": "********"
}, - "smtp_config": {
- "id": 1,
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": false,
- "openssl_verify_mode": null,
- "domain": "example.com",
- "envelope_from": "noreply@example.com",
- "password": "********"
}, - "style": {
- "id": 1,
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "fallback_font_family": "sans-serif",
- "pages_font_family": "Poppins",
- "pages_font_family_path": "poppins",
- "pages_font_family_weight": [
- "400",
- "700"
], - "pages_headline_font_family": "Poppins",
- "pages_headline_font_family_path": "poppins",
- "pages_headline_font_family_weight": [
- "400",
- "700"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
}Update a brand. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 1 The brand ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
required | object (brand_input_schema) Brand attributes for create and update. Nested objects depend on |
{- "brand": {
- "name": "Example Brand",
- "slug": "example-brand",
- "sender_phone_number": "+491234567890",
- "possible_sender_emails": [
- "noreply@example.com"
], - "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "1234567890",
- "rcs_api_key": "1234567890",
- "mailjet_api_user_attributes": {
- "public_api_key": "1234567890",
- "private_api_key": "1234567890"
}, - "ses_api_user_attributes": {
- "access_key_id": "1234567890",
- "secret_access_key": "1234567890",
- "region": "eu-central-1"
}, - "smtp_config_attributes": {
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "password": "1234567890",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": true,
- "openssl_verify_mode": "none",
- "domain": "example.com",
- "envelope_from": "string"
}, - "style_attributes": {
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "pages_font_family": "poppins",
- "pages_font_family_path": "poppins",
- "pages_headline_font_family": "poppins",
- "pages_headline_font_family_path": "poppins"
}
}
}{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "id": 1,
- "name": "Example Brand",
- "slug": "example-brand",
- "possible_sender_emails": [
- "noreply@example.com"
], - "sender_phone_number": "+491234567890",
- "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "********",
- "rcs_api_key": "********",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z",
- "mailjet_api_user": {
- "id": 1,
- "public_api_key": "mailjet-public-key",
- "private_api_key": "********"
}, - "ses_api_user": {
- "id": 1,
- "access_key_id": "AKIAIOSFODNN7EXAMPLE",
- "region": "eu-central-1",
- "secret_access_key": "********"
}, - "smtp_config": {
- "id": 1,
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": false,
- "openssl_verify_mode": null,
- "domain": "example.com",
- "envelope_from": "noreply@example.com",
- "password": "********"
}, - "style": {
- "id": 1,
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "fallback_font_family": "sans-serif",
- "pages_font_family": "Poppins",
- "pages_font_family_path": "poppins",
- "pages_font_family_weight": [
- "400",
- "700"
], - "pages_headline_font_family": "Poppins",
- "pages_headline_font_family_path": "poppins",
- "pages_headline_font_family_weight": [
- "400",
- "700"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
}Delete a brand. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 1 The brand ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich gelöscht",
- "error": null,
- "data": {
- "id": 1,
- "name": "Example Brand",
- "slug": "example-brand",
- "possible_sender_emails": [
- "noreply@example.com"
], - "sender_phone_number": "+491234567890",
- "rcs_possible_senders": [
- "SenderName"
], - "pseudonymization_duration_of_sent_messages_in_days": 7,
- "storage_duration_of_sent_messages_in_days": 90,
- "mail_provider": "mailjet",
- "mailjet_sandbox_mode": true,
- "sms77_api_key": "********",
- "rcs_api_key": "********",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z",
- "mailjet_api_user": {
- "id": 1,
- "public_api_key": "mailjet-public-key",
- "private_api_key": "********"
}, - "ses_api_user": {
- "id": 1,
- "access_key_id": "AKIAIOSFODNN7EXAMPLE",
- "region": "eu-central-1",
- "secret_access_key": "********"
}, - "smtp_config": {
- "id": 1,
- "address": "smtp.example.com",
- "port": 587,
- "user_name": "smtp-user",
- "authentication": "plain",
- "enable_starttls_auto": true,
- "enable_ssl": false,
- "openssl_verify_mode": null,
- "domain": "example.com",
- "envelope_from": "noreply@example.com",
- "password": "********"
}, - "style": {
- "id": 1,
- "primary_color": "#111111",
- "secondary_color": "#222222",
- "light_accent_color": "#333333",
- "dark_accent_color": "#444444",
- "border_radius": "6px",
- "font_family": "Arial",
- "fallback_font_family": "sans-serif",
- "pages_font_family": "Poppins",
- "pages_font_family_path": "poppins",
- "pages_font_family_weight": [
- "400",
- "700"
], - "pages_headline_font_family": "Poppins",
- "pages_headline_font_family_path": "poppins",
- "pages_headline_font_family_weight": [
- "400",
- "700"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
}Returns whether Mailjet event webhooks are registered for the given brand and which event types are active. Requires read permission for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": true,
- "registered_event_types": [
- "sent",
- "open",
- "bounce",
- "spam",
- "blocked",
- "unsub"
], - "error_message": null
}
}Registers Mailjet event webhooks for the given brand. Requires read and write permissions for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": true,
- "registered_event_types": [
- "sent",
- "open",
- "bounce",
- "spam",
- "blocked",
- "unsub"
], - "error_message": null
}
}Deletes all Mailjet event webhooks registered for the given brand. Requires read and write permissions for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": false,
- "registered_event_types": [ ],
- "error_message": null
}
}Returns whether an RCS event webhook is registered for the given brand. Requires read permission for the tenant. RCS webhooks give information about the status of the RCS messages as well as allow to receive responses from the recipient.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": true
}
}Registers an RCS event webhook for the given brand. Requires read and write permissions for the tenant. RCS webhooks give information about the status of the RCS messages as well as allow to receive responses from the recipient.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": true
}
}Deletes the RCS event webhook registered for the given brand. Requires read and write permissions for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": false
}
}Returns whether an SMS delivery report (DLR) webhook is registered for the given brand. Requires read permission for the tenant. SMS webhooks provide delivery status updates for SMS messages sent via seven.io.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": true
}
}Registers an SMS delivery report (DLR) webhook for the given brand. Requires read and write permissions for the tenant. SMS webhooks provide delivery status updates for SMS messages sent via seven.io.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": true
}
}Deletes the SMS delivery report (DLR) webhook registered for the given brand. Requires read and write permissions for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "webhooks_present": false
}
}Runs the AWS SES configuration setup for the given brand. This creates or updates the SES configuration set, SNS topic, topic policy, SNS subscription, and event destination. Requires write permission for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "setup_success": true
}
}Runs a live SMTP connection test for the given brand using its configured SMTP credentials. Returns whether the connection succeeded along with the connection settings used. Requires write permission for the tenant.
| tenant required | string Example: ts The tenant slug |
| brand_id required | string Example: 1 The ID of the brand. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Erfolgreich bearbeitet",
- "error": null,
- "data": {
- "brand_id": 1,
- "connection_success": true,
- "settings": {
- "address": "smtp.example.com",
- "port": 587,
- "enable_ssl": false,
- "authentication": "plain",
- "enable_starttls_auto": true,
- "open_timeout": 10,
- "read_timeout": 10,
- "user_name": "smtp-user",
- "password": "[REDACTED]",
- "domain": "example.com",
- "openssl_verify_mode": "none",
- "envelope_from": "noreply@example.com",
- "ssl": false
}
}
}List API users for the given tenant. API users can be used for API endpoints that use the basic_auth_api_user authentication.
| tenant required | string Example: ts The tenant slug |
| limit | integer Example: limit=200 Number of records per page. |
| page | integer Example: page=1 Page number. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "api_users": [
- {
- "id": 1,
- "username": "api-client",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z"
}
], - "pagination": {
- "current_page": 1,
- "items_per_page": 200,
- "total_pages": 1,
- "total_count": 1
}
}
}Create an API user for the given tenant. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
required | object API user attributes. |
{- "api_user": {
- "username": "api-client",
- "password": "TestPassword12!",
- "password_confirmation": "TestPassword12!"
}
}{- "success": true,
- "message": "Erfolgreich erstellt",
- "error": null,
- "data": {
- "id": 1,
- "username": "api-client",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z"
}
}Delete an API user. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 1 The API user ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "API-Zugang erfolgreich gelöscht",
- "error": null,
- "data": {
- "id": 1,
- "username": "api-client",
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z"
}
}Returns tenant-wide configuration for the given tenant.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "slug": "ts",
- "activated_at": "2026-05-08T08:00:00.000Z",
- "webhook_interaction_storage_duration_in_days": 7,
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z"
}
}Update tenant-wide configuration. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
required | object |
{- "tenant_params": {
- "webhook_interaction_storage_duration_in_days": 14
}
}{- "success": true,
- "message": "Mandant erfolgreich aktualisiert",
- "error": null,
- "data": {
- "slug": "ts",
- "activated_at": "2026-05-08T08:00:00.000Z",
- "webhook_interaction_storage_duration_in_days": 14,
- "created_at": "2026-05-08T08:00:00.000Z",
- "updated_at": "2026-05-08T08:00:00.000Z"
}
}Returns overview chart statistics for all product areas on the main admin dashboard. Each chart covers the last 4 weeks (one entry per calendar day), ordered chronologically.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "doi_chart_stats": [
- {
- "label": "07.05.2023",
- "data": { }
}
], - "injector_chart_stats": [
- {
- "label": "07.05.2023",
- "data": { }
}
], - "survey_chart_stats": [
- {
- "label": "07.05.2023",
- "data": { }
}
], - "email_chart_stats": [
- {
- "label": "07.05.2023",
- "data": { }
}
], - "sms_chart_stats": [
- {
- "label": "07.05.2023",
- "data": { }
}
], - "rcs_chart_stats": [
- {
- "label": "07.05.2023",
- "data": { }
}
], - "shared_chart_stats": [
- {
- "label": "07.05.2023",
- "data": {
- "total": 42,
- "successful": 40,
- "failed": 2
}
}
]
}
}List webhook endpoints for the given tenant.
| tenant required | string Example: ts The tenant slug |
| show_inactive | boolean Example: show_inactive=true Whether to show inactive endpoints. If not provided, only active endpoints are returned. |
| limit | integer Example: limit=200 Number of records per page. |
| page | integer Example: page=1 Page number. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "endpoints": [
- {
- "id": "1",
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "********",
- "is_active": true,
- "send_original_payload": false
}
], - "pagination": {
- "current_page": 1,
- "items_per_page": 200,
- "total_pages": 1,
- "total_count": 2
}
}
}Create a webhook endpoint for the given tenant.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
object |
{- "webhook_abstract_endpoint": {
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "password",
- "is_active": true,
- "send_original_payload": false
}
}{- "success": true,
- "message": "Webhook erfolgreich erstellt",
- "error": null,
- "data": {
- "id": "1",
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "********",
- "is_active": true,
- "send_original_payload": false
}
}Show a webhook endpoint and its interactions for the given tenant.
| tenant required | string Example: ts The tenant slug |
| endpoint_id required | string Example: 1 The ID of the webhook endpoint |
| limit | integer Example: limit=200 Number of interactions per page. |
| page | integer Example: page=1 Interaction page number. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": null,
- "error": null,
- "data": {
- "id": "1",
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "********",
- "is_active": true,
- "send_original_payload": false,
- "interactions": {
- "list": [
- {
- "id": "1",
- "created_at": "2021-01-01T00:00:00Z",
- "process_id": "123e4567-e89b-12d3-a456-426614174000",
- "requested_method": "POST",
- "response_code": 200,
- "retry_count": 0,
- "sent_payload": {
- "event": "message_sent",
- "data": {
- "message_id": "1234567890",
- "recipient": "john.doe@example.com",
- "subject": "Hello, world!",
- "text": "Hello, world!"
}
}, - "transaction_payload": {
- "message_id": "1234567890",
- "recipient": "john.doe@example.com",
- "subject": "Hello, world!",
- "text": "Hello, world!"
}, - "response_payload": {
- "response": true
}
}
], - "pagination": {
- "current_page": 1,
- "items_per_page": 200,
- "total_pages": 1,
- "total_count": 2
}
}
}
}Update a webhook endpoint for the given tenant.
| tenant required | string Example: ts The tenant slug |
| endpoint_id required | string Example: 1 The ID of the webhook endpoint |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
object |
{- "webhook_abstract_endpoint": {
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "password",
- "is_active": true,
- "send_original_payload": false
}
}{- "success": true,
- "message": "Webhook endpoint updated successfully",
- "error": null,
- "data": {
- "id": "1",
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "********",
- "is_active": true,
- "send_original_payload": false
}
}Delete a webhook endpoint for the given tenant.
| tenant required | string Example: ts The tenant slug |
| endpoint_id required | string Example: 1 The ID of the webhook endpoint |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": true,
- "message": "Webhook endpoint deleted successfully",
- "error": null,
- "data": {
- "id": "1",
- "type": "Webhook::MessageSentEndpoint",
- "basic_auth_username": "username",
- "basic_auth_password": "********",
- "is_active": true,
- "send_original_payload": false
}
}Admin API for the visual editor (landing pages, layouts, assets). OAuth2 bearer authentication only.
Returns the editor payload for a landing page, including content state, brand, API endpoints, and editor configuration. Requires read permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 15 ID of the landing page |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{ }Updates the content_state of a landing page. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 15 ID of the landing page |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
| content_state required | object Editor content state document. |
{- "content_state": { }
}{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Enqueues rendering/publishing of the landing page. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 15 ID of the landing page |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Returns the editor payload for a landing page layout, including content state. Requires read permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 4 ID of the landing page layout |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Updates the content_state of a landing page layout. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 4 ID of the landing page layout |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
| content_state required | object Editor content state document. |
{- "content_state": { }
}{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Returns editor assets uploaded for the tenant. Requires read permission.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
[- {
- "type": "file",
- "id": "string",
- "directory": "/",
- "src": "string",
- "previewSrc": "string",
- "mimeType": "string"
}
]Uploads a file for use in the editor. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
| filename | string The filename to use for the uploaded asset. |
| file | string <binary> The file to upload. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Deletes an editor asset by UUID. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | string Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 UUID of the editor asset |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Admin API for pages resources (landing page layouts). OAuth2 bearer authentication only.
Returns a paginated list of landing page layouts for the tenant. Requires read permission.
| tenant required | string Example: ts The tenant slug |
| page | integer Example: page=1 Page number. |
| limit | integer Example: limit=200 Number of records per page. |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Creates a landing page layout. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
required | object |
{- "pages_landing_page_layout": {
- "name": "Default layout",
- "brand_id": 3
}
}{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Returns a single landing page layout. Requires read permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 4 The landing page layout ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Updates name or brand of a landing page layout. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 4 The landing page layout ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
required | object |
{- "pages_landing_page_layout": {
- "name": "string",
- "brand_id": 0
}
}{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}Deletes a landing page layout. Requires write permission.
| tenant required | string Example: ts The tenant slug |
| id required | integer Example: 4 The landing page layout ID |
| Accept required | string Example: application/json The accept header, only application/json is supported. |
{- "success": false,
- "message": null,
- "error": "No read permission",
- "data": null
}