Doxie Dokumentation (1.0.0)

Download OpenAPI specification:

This is the API documentation for the Doxie API.

MPM

API for consent management

Mailer

API for sending emails

Triggers all message templates of an event

Triggers all message templates (emails, SMS, RCS) configured for the given event in a single call. If the event has multiple templates, all of them are sent. Use this endpoint when you want to send transactional messages without creating a journey.

Authorizations:
basic_auth_api_user
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_slug
required
string
Example: welcome_email

The event slug

Request Body schema: application/json
required

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.

Responses

Request samples

Content type
application/json
{
  • "any_keys": "any value"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
  • "sent_email_templates": [
    ],
  • "sent_sms_templates": [
    ]
}

Injector

API for creating injections

Creates a pre-filled order flow

Creates a pre-filled embedded journey (Bestellstrecke) for the recipient. Use this endpoint when a recipient should be directed into a pre-populated order or checkout flow. If you only want to send the event's message templates (emails, SMS, RCS), use POST /{tenant}/api/v1/send_mail/{event_slug} instead.

Authorizations:
basic_auth_api_user
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_slug
required
string
Example: event_slug

The event slug

Request Body schema: application/json
required

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.

Responses

Request samples

Content type
application/json
{
  • "any_keys": "any value"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "error_message": null,
  • "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
  • "data": null
}

Shared

API for general features

Cancel a process

Cancel a process.

Authorizations:
basic_auth_api_user
path Parameters
tenant
required
string
Example: ts

The tenant slug

process_uuid
required
string
Example: 1234567890

The UUID of the process

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "error_message": null,
  • "process_uuid": "1234567890"
}

Show event details

Show event details.

Authorizations:
basic_auth_api_user
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
string
Example: 1234567890

The ID of the event

query Parameters
type
required
string
Enum: "mailer" "survey" "qr_code" "injector"
Example: type=mailer

The type of the event

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "error_message": null,
  • "type": "mailer",
  • "event": {
    }
}

Survey

API for creating surveys

Creates an inquiry for a survey response

Creates an inquiry for a survey response

Authorizations:
basic_auth_api_user
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_slug
required
string
Example: event_slug

The event slug of the survey campaign

Request Body schema: application/json
required

Survey payload

email
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.

Responses

Request samples

Content type
application/json
{
  • "email": "test@example.com",
  • "phone": "+491771234567",
  • "any_keys": "any value"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "error_message": null,
  • "process_uuid": "9a5d8c73-fcb4-4a8a-9fd2-fbabb3c99838",
  • "data": null
}

QR Code

API for creating QR codes

Creates a QR code for an event

Creates a QR code for a QR code event.

Authorizations:
basic_auth_api_user
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_slug
required
string
Example: event_slug

The event slug

Request Body schema: application/json
required

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.

Responses

Request samples

Content type
application/json
{
  • "any_keys": "any value"
}

Response samples

Content type
application/json
{}

Webhooks

Webhook documentation

Message sent Webhook

Notify the registered URL with details of a sent email or SMS

Authorizations:
basic_auth_webhook
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "process_id": "123e4567-e89b-12d3-a456-426614174000",
  • "message_type": "email",
  • "message_id": 1234567890,
  • "recipient_specific_message_ids": [
    ],
  • "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": {
    }
}

Message status update Webhook

Notify the registered URL with details of a message status update

Authorizations:
basic_auth_webhook
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": {
    }
}

DOI confirmation Webhook

Notify the registered URL with details of a DOI confirmation

Authorizations:
basic_auth_webhook
Request Body schema: application/json
required
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

Request samples

Content type
application/json
{
  • "identifier": "123e4567",
  • "timestamp": "2021-01-01T00:00:00Z",
  • "ipAddress": "123.123.123.123"
}

Process cancelled Webhook

Notify the registered URL with details of a process cancellation

Authorizations:
basic_auth_webhook
Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "process_uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "cancellation_timestamp": "2021-01-01T00:00:00Z",
  • "original_payload": {
    }
}

QR code visited Webhook

Notify the registered URL when a QR code is scanned

Authorizations:
basic_auth_webhook
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": {}
}

RCS message response Webhook

Notify the registered URL when a RCS message is responded to. The process ID is the last process that was sent to the recipient.

Authorizations:
basic_auth_webhook
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": {
    },
  • "original_payload": {}
}

Admin

General Admin API for foundational resources. OAuth2 bearer authentication only.

Setup options for foundational configuration:

  1. Configure the tenant to set general account settings.
    • Configuration of the storage for sent webhook interactions.
  2. Set up brands
    • Configuration of messaging providers. Available providers for email: Mailjet, SES, SMTP. Available providers for SMS: SMS77/Seven.io. Available providers for RCS: RCS/Seven.io.
    • Configuration of available sender addresses for messaging providers.
    • Configuration of the base URL for DOI confirmation links. Uses Doxie host if not provided.
    • Configuration of the storage for sent messages.
    • General brand styling for emails and pages
  3. Create API users so that external systems can send messages through the tenant API.

List brands

List brands for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create a brand

Create a brand for the given tenant. Requires write permission. Secret fields are masked in the response.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object (brand_input_schema)

Brand attributes for create and update. Nested objects depend on mail_provider. possible_sender_emails and rcs_possible_senders accept JSON arrays or comma-separated strings.

Responses

Request samples

Content type
application/json
{
  • "brand": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show a brand

Returns a single brand for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The brand ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update a brand

Update a brand. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The brand ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object (brand_input_schema)

Brand attributes for create and update. Nested objects depend on mail_provider. possible_sender_emails and rcs_possible_senders accept JSON arrays or comma-separated strings.

Responses

Request samples

Content type
application/json
{
  • "brand": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete a brand

Delete a brand. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The brand ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Show Mailjet notification webhook status for a brand

Returns whether Mailjet event webhooks are registered for the given brand and which event types are active. Requires read permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Register Mailjet notification webhooks for a brand

Registers Mailjet event webhooks for the given brand. Requires read and write permissions for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Remove Mailjet notification webhooks for a brand

Deletes all Mailjet event webhooks registered for the given brand. Requires read and write permissions for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Show RCS notification webhook status for a brand

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Register RCS notification webhook for a brand

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Remove RCS notification webhook for a brand

Deletes the RCS event webhook registered for the given brand. Requires read and write permissions for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Show SMS notification webhook status for a brand

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Register SMS notification webhook for a brand

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Remove SMS notification webhook for a brand

Deletes the SMS delivery report (DLR) webhook registered for the given brand. Requires read and write permissions for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Trigger SES setup for a brand

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Test SMTP connection for a brand

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

brand_id
required
string
Example: 1

The ID of the brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

List API users

List API users for the given tenant. API users can be used for API endpoints that use the basic_auth_api_user authentication.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an API user

Create an API user for the given tenant. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

API user attributes.

Responses

Request samples

Content type
application/json
{
  • "api_user": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Delete an API user

Delete an API user. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The API user ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "API-Zugang erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Show tenant settings

Returns tenant-wide configuration for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update tenant settings

Update tenant-wide configuration. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "tenant_params": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Mandant erfolgreich aktualisiert",
  • "error": null,
  • "data": {
    }
}

Show main dashboard statistics

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.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Admin / Mailer

Admin API for mailer and messaging resources. OAuth2 bearer authentication only.

Setup order to send messages (emails, SMS, RCS):

  1. Set up a brand and configure the providers and available senders for email, SMS, and RCS delivery according to your needs.
  2. Set up a mailer event and define the expected payload.
  3. Define placeholders for the event based on the expected payload.
  4. Create email layouts if emails are to be sent.
  5. Create templates for email, SMS, and RCS delivery.
  6. Set up filters for the templates to conditionally send the messages.
  7. Add attachments for emails if needed.
  8. Test preview with the configured payload if placeholders are used.
  9. API user needs to be created to send messages through the API.

Show mailer dashboard statistics

Returns messaging dashboard statistics for the given tenant. Includes per-channel (email, SMS, RCS) overview charts covering the last 4 weeks (one entry per day) and filtered statistics aggregated by month for the selected time range. The time range can be controlled via the time_range parameter. If omitted, the current month is used. Pass time_range=custom together with start_date and end_date to specify an arbitrary range. Optionally filter by event_id to restrict stats to a single mailer event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
time_range
string
Example: time_range=2024-01-01

Selects the time range for the filtered overview chart. Omit or leave blank for the current month. Pass a date string (e.g. 2024-01-01) to select that month. Pass custom to use start_date/end_date instead.

start_date
string <date>
Example: start_date=2024-01-01

Start date for a custom time range. Only used when time_range=custom.

end_date
string <date>
Example: end_date=2024-01-31

End date for a custom time range. Only used when time_range=custom.

event_id
integer
Example: event_id=42

Restricts filtered statistics to a specific mailer event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List events

List mailer events for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an event

Create a mailer event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an event

Show a mailer event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an event

Update a mailer event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete an event

Delete a mailer event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Download the import example file for an event

Returns an XLSX file containing the import template for the given event. The file includes one header column per placeholder defined on the event. A valid OAuth bearer token is required. Requires the format to be specified as .xlsx either via the URL suffix or the Accept header.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the event.

header Parameters
Accept
required
string
Example: application/xlsx

The accept header, only application/xlsx is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Create a placeholder for an event

Creates a new placeholder for the given event. Placeholders define the column headers for the import file and map to JSON paths in the import payload. Requires write permission for the tenant.

Placeholder can be used in email templates, SMS templates, RCS templates, and landing pages in the following format: {{ label }}.

Furthermore, they support liquid filters. Example: {{ label | upcase }}. See https://shopify.github.io/liquid/filters/ for more information.

Custom filters that are available are:

  • waehrung: formats a number as a currency string. Example: {{ amount | waehrung }}
  • waehrung_cent: formats a number as a currency string in cents. Example: {{ amount | waehrung_cent }}
  • datum_kurz: formats a date as a short date string. Example: {{ date | datum_kurz }}
  • datum_lang: formats a date as a long date string. Example: {{ date | datum_lang }}
  • sparte: formats a string as a sparte string. Example: {{ sparte | sparte }}
  • vertragsart: formats a string as a vertragsart string. Example: {{ vertragsart | vertragsart }}
Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
integer
Example: 1

The ID of the event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "shared_placeholder": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Update a placeholder

Updates the given placeholder on an event. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
integer
Example: 1

The ID of the event.

id
required
integer
Example: 5

The ID of the placeholder.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "shared_placeholder": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete a placeholder

Deletes the given placeholder from an event. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
integer
Example: 1

The ID of the event.

id
required
integer
Example: 5

The ID of the placeholder.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Duplicate a mailer event

Creates a deep clone of the given mailer event, including its placeholders. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
integer
Example: 1

The ID of the event to duplicate.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

List sent emails

List sent emails for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Show a sent email

Returns a single sent email record for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the sent email.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List sent SMS messages

List sent SMS messages for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Show a sent SMS message

Returns a single sent SMS message record for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the sent SMS message.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List sent RCS messages

List sent RCS messages for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Show a sent RCS message

Returns a single sent RCS message record for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the sent RCS message.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List email layouts

List email layouts for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an email layout

Create an email layout for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_email_layout": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an email layout

Show an email layout for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email layout.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an email layout

Update an email layout for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email layout.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_email_layout": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete an email layout

Delete an email layout for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email layout.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

List SMS templates

List SMS templates for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

show_inactive
boolean

Include inactive templates in the response.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an SMS template

Create an SMS template for the given tenant. Any free text field may use placeholders in the format {{ label }}.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_sms_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an SMS template

Show an SMS template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the SMS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an SMS template

Update an SMS template for the given tenant. Any free text field may use placeholders in the format {{ label }}.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the SMS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_sms_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete an SMS template

Delete an SMS template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the SMS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

List RCS templates

List RCS templates for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

show_inactive
boolean

Include inactive templates in the response.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an RCS template

Create an RCS template for the given tenant. Any free text field may use placeholders in the format {{ label }}.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_rcs_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an RCS template

Show an RCS template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an RCS template

Update an RCS template for the given tenant. Any free text field may use placeholders in the format {{ label }}.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_rcs_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete an RCS template

Delete an RCS template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

List email templates

List email templates for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=20

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an email template

Create an email template for the given tenant. Any free text field may use placeholders in the format {{ label }}. Placeholder format: Use {{ label }} (with spaces) in text fields such as subject. Variants without spaces ({{label}}) are not resolved.

HTML content: Do not set html_mail directly. Use the editor endpoint PUT /admin/api/v2/editor/email_templates/{id} to update the content state, then call the publish endpoint. Content set via html_mail will be overwritten when the template is published through the editor workflow.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_email_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an email template

Show an email template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an email template

Update an email template for the given tenant. Any free text field may use placeholders in the format {{ label }}. Placeholder format: Use {{ label }} (with spaces) in text fields such as subject. Variants without spaces ({{label}}) are not resolved.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_email_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete an email template

Delete an email template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Duplicate an email template

Creates a deep clone of the given email template, including its filters and attachments. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template to duplicate.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_email_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Generate an email preview for a template

Renders the email template using the event's preview_payload and returns the filled fields (subject, HTML body, plain text, sender, recipients). Returns 422 when no preview payload is configured for the event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Generate an SMS preview for a template

Renders the SMS template using the event's preview_payload and returns the filled fields (text, sender, recipient). Returns 422 when no preview payload is configured for the event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

sms_template_id
required
integer
Example: 1

The ID of the SMS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an abstract email attachment

Create an abstract email attachment for the given email template.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_abstract_email_attachment": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an abstract email attachment

Show an abstract email attachment for the given email template.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template.

id
required
integer
Example: 5

The ID of the attachment.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an abstract email attachment

Update an abstract email attachment for the given email template.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template.

id
required
integer
Example: 5

The ID of the attachment.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_abstract_email_attachment": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete an abstract email attachment

Delete an abstract email attachment for the given email template.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template.

id
required
integer
Example: 5

The ID of the attachment.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Create a filter for a template

Creates a new filter for the given email template, SMS template, or RCS template. Filters restrict which processes receive a given template based on placeholder values. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template (use this path for email template filters).

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_filter": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Destroy a filter for a template

Destroys the given filter belonging to the specified email template, SMS template, or RCS template. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

email_template_id
required
integer
Example: 1

The ID of the email template (use this path for email template filters).

id
required
integer
Example: 3

The ID of the filter to destroy.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Create a filter for a template

Creates a new filter for the given email template, SMS template, or RCS template. Filters restrict which processes receive a given template based on placeholder values. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

sms_template_id
required
integer
Example: 1

The ID of the SMS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_filter": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Destroy a filter for a template

Destroys the given filter belonging to the specified SMS template. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

sms_template_id
required
integer
Example: 1

The ID of the SMS template.

id
required
integer
Example: 3

The ID of the filter to destroy.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Create a filter for a template

Creates a new filter for the given email template, SMS template, or RCS template. Filters restrict which processes receive a given template based on placeholder values. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

rcs_template_id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "mailer_filter": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Destroy a filter for a template

Destroys the given filter belonging to the specified RCS template. Requires write permission for the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

rcs_template_id
required
integer
Example: 1

The ID of the RCS template.

id
required
integer
Example: 3

The ID of the filter to destroy.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Show mailer event details

Returns the event details including placeholders for use in the mailer editor. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the event

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "event_id": 1,
  • "event_name": "Order Confirmation",
  • "event_slug": "order_confirmation",
  • "event_preview_payload": { },
  • "event_placeholders": [
    ]
}

Admin / Shared

Admin API for shared resources used across modules (processes, messaging schedules, landing pages). OAuth2 bearer authentication only.

Resource overview:

  • Processes — every event execution creates a process for traceability. Use the process endpoints to inspect the outcome of any messaging, consent, or survey run: delivery results per channel, scheduled messages, webhook interactions, and cancellation details.
  • Messaging schedules — configure delay-based sending tied to an owning event (e.g. a DOI consent purpose). Define the delay value and unit (minutes, hours, days, weeks) and the mailer event to trigger.
  • Landing pages — create module-specific single pages (e.g. DOI confirmation, survey response, failure page) that reference a landing page layout for their structural frame.

Setup order before creating landing pages:

  1. Create a landing page layout (Admin / Pages) to define the structural frame (header/footer) that the landing page will use.
  2. Create the landing page and reference the layout via layout_id. Assign an owner (e.g. a DOI consent purpose) via owner_type and owner_id.

Setup order for messaging schedules:

  1. Create a messaging event that should be triggered by the messaging schedule.
  2. Create a messaging schedule and define the delay value and unit (minutes, hours, days, weeks) and the mailer event to trigger.
  3. Configure message templates for the messaging, see Admin / Mailer.

Show dashboard statistics

Returns dashboard statistics for the given tenant. Includes an overview chart covering the last 4 weeks (one entry per day) and filtered statistics aggregated by month for the selected time range. The time range can be controlled via the time_range parameter. If omitted, the current month is used. Pass time_range=custom together with start_date and end_date to specify an arbitrary range.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
time_range
string
Example: time_range=2024-01-01

Selects the time range for the filtered overview chart. Omit or leave blank for the current month. Pass a date string (e.g. 2024-01-01) to select that month. Pass custom to use start_date/end_date instead.

start_date
string <date>
Example: start_date=2024-01-01

Start date for a custom time range. Only used when time_range=custom.

end_date
string <date>
Example: end_date=2024-01-31

End date for a custom time range. Only used when time_range=custom.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List processes

Returns a paginated list of processes for the given tenant, ordered by creation date descending. Use the page parameter to navigate through pages. Use the limit parameter to set the number of processes per page.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
page
integer
Example: page=1

Page number for pagination. Defaults to 1.

limit
integer
Example: limit=200

Number of processes per page. Defaults to 200.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Show a process and its associated records

Returns the full details of a single process identified by its UUID, including all associated emails, SMS messages, RCS messages, scheduled messages, DOI consents, webhook interactions, and survey responses. Each nested collection returns up to the default page size (20). Use the collection-specific page parameters (e.g. successful_emails_page) to paginate.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

uuid
required
string
Example: 123e4567-e89b-12d3-a456-426614174000

The UUID of the process

query Parameters
successful_emails_page
integer
Example: successful_emails_page=1

Page number for successful emails.

unsuccessful_emails_page
integer
Example: unsuccessful_emails_page=1

Page number for unsuccessful emails.

successful_sms_messages_page
integer
Example: successful_sms_messages_page=1

Page number for successful SMS messages.

unsuccessful_sms_messages_page
integer
Example: unsuccessful_sms_messages_page=1

Page number for unsuccessful SMS messages.

successful_rcs_messages_page
integer
Example: successful_rcs_messages_page=1

Page number for successful RCS messages.

unsuccessful_rcs_messages_page
integer
Example: unsuccessful_rcs_messages_page=1

Page number for unsuccessful RCS messages.

scheduled_messages_page
integer
Example: scheduled_messages_page=1

Page number for scheduled messages.

confirmed_consents_page
integer
Example: confirmed_consents_page=1

Page number for confirmed DOI consents.

unconfirmed_consents_page
integer
Example: unconfirmed_consents_page=1

Page number for unconfirmed DOI consents.

webhook_interactions_page
integer
Example: webhook_interactions_page=1

Page number for webhook interactions.

survey_responses_page
integer
Example: survey_responses_page=1

Page number for survey responses.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Cancel a process

Cancels a process for the given tenant. This endpoint requires write permissions. If the process is already cancelled, the request returns 422.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

uuid
required
string
Example: 123e4567-e89b-12d3-a456-426614174000

The UUID of the process to cancel.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Prozessvorgang erfolgreich abgebrochen",
  • "error": null,
  • "data": {
    }
}

Create a messaging schedule

Creates a new messaging schedule for an owning event (for example a consent purpose). This endpoint requires read and write permissions.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "shared_messaging_schedule": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Update a messaging schedule

Updates an existing messaging schedule. This endpoint requires read and write permissions.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 10

ID of the messaging schedule

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "shared_messaging_schedule": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich editiert",
  • "error": null,
  • "data": {
    }
}

Delete a messaging schedule

Deletes an existing messaging schedule. This endpoint requires read and write permissions.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 10

ID of the messaging schedule

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Create a landing page

Creates a single page assigned to another module (e.g. a DOI campaign, survey) as a confirmation or failure page. Not for standalone websites — use Microsites for that. This endpoint requires read and write permissions.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_landing_page": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Update a landing page

Updates an existing landing page. This endpoint requires read and write permissions.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 15

ID of the landing page

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_landing_page": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich aktualisiert",
  • "error": null,
  • "data": {
    }
}

Delete a landing page

Deletes a landing page. This endpoint requires read and write permissions.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 15

ID of the landing page

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Create an import

Creates a new event import and enqueues the import job. The import file must be uploaded as multipart/form-data. Requires write permission for the tenant. Available import types: Mailer::EventImport Injector::EventImport Survey::EventImport QrCode::EventImport

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: multipart/form-data
object

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an import

Returns the details of a specific event import, including its status, result rows, and the associated object. A valid OAuth bearer token is required.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the abstract event import.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Admin / Webhook

Admin API for webhook endpoint configuration. OAuth2 bearer authentication only.

Setup order to receive webhook notifications:

  1. Decide which system events you want to receive outgoing notifications for. Supported event types are: message sent, message status update, link clicked, DOI confirmed, process cancelled, QR code visited, and RCS message response.
  2. Create a webhook endpoint for each event type you want to receive, providing the target URL and optional basic authentication credentials.
  3. Refer to the Webhooks section of this documentation for the exact payload structure delivered for each event type.

List webhook endpoints

List webhook endpoints for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
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.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create a webhook endpoint

Create a webhook endpoint for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "webhook_abstract_endpoint": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Webhook erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show a webhook endpoint and its interactions

Show a webhook endpoint and its interactions for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

endpoint_id
required
string
Example: 1

The ID of the webhook endpoint

query Parameters
limit
integer
Example: limit=200

Number of interactions per page.

page
integer
Example: page=1

Interaction page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update a webhook endpoint

Update a webhook endpoint for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

endpoint_id
required
string
Example: 1

The ID of the webhook endpoint

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "webhook_abstract_endpoint": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Webhook endpoint updated successfully",
  • "error": null,
  • "data": {
    }
}

Delete a webhook endpoint

Delete a webhook endpoint for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

endpoint_id
required
string
Example: 1

The ID of the webhook endpoint

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Webhook endpoint deleted successfully",
  • "error": null,
  • "data": {
    }
}

Admin / Editor

Admin API for the visual editor (email templates, landing pages, layouts, microsites, assets). OAuth2 bearer authentication only.

This API is used by the Doxie frontend editor. It provides low-level read/write access to editor content state and asset management.

Workflow for editing content:

  1. Upload assets (images, files) via the shared editor assets endpoint before referencing them in editor content.
  2. Fetch the current content state with a GET request to the relevant editor endpoint (email template, email layout, landing page, landing page layout, or microsite).
  3. Update the content state with a PUT request containing the new editor document.
  4. Publish the changes by calling the /publish endpoint to make the content live (applies to email templates, landing pages, and microsites; layouts take effect immediately on save).

Show editor email layout configuration

Returns the visual editor payload for an email layout. Supports both session-based and OAuth bearer token authentication.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email layout.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update email layout content state

Updates the content_state of an email layout. Requires write permission. Supports both session-based and OAuth bearer token authentication.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email layout.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

The new content state for the email layout.

Responses

Request samples

Content type
application/json
{
  • "content_state": { }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show editor email template configuration

Returns the visual editor payload for an email template. Supports both session-based and OAuth bearer token authentication.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update email template content state

Updates the content_state of an email template. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

The new content state for the email template.

Responses

Request samples

Content type
application/json
{
  • "content_state": { }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Publish an email template

Enqueues the email template for rendering and publishing. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the email template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show editor RCS template configuration

Returns the visual editor payload for an RCS template. Supports both session-based and OAuth bearer token authentication.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update RCS template content state

Updates the content_state of an RCS template. Requires write permission.

The content_state object must contain a roots array whose first element has type: "rcs-root". An rcs-root node typically wraps one child node of type rcs-richcard. A richcard that contains a file object (with fileUrl) is required for last_published_at to be updated when the template is published. Without a valid file, the publish endpoint returns success: true but last_published_at is not updated — verify last_published_at after publishing to confirm the template was actually published. If possible, fetch other templates first to find more examples for valid content states.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

The new content state for the RCS template. Must follow the editor node tree format. Minimum structure: a roots array containing one node of type: "rcs-root" with a child of type: "rcs-richcard". The richcard node must include a file object (containing at least fileUrl) for the template to be publishable. If possible, fetch other templates first to find more examples for valid content states. To get available files, please use the available editor assets endpoints.

Responses

Request samples

Content type
application/json
{
  • "content_state": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Publish an RCS template

Enqueues the RCS template for rendering and publishing. Requires write permission.

Important: This endpoint returns {"success": true} even when the template cannot actually be published (for example, when the content_state contains an rcs-richcard node without a valid file object). To confirm that publishing succeeded, fetch the template via GET /admin/mailer/rcs_templates/{id} and verify that last_published_at has been updated. The rendering and publishing process may take up to 1 minute.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the RCS template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show editor landing page configuration

Returns the editor payload for a landing page, including content state, brand, API endpoints, and editor configuration. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 15

ID of the landing page

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{ }

Update landing page content state

Updates the content_state of a landing page. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 15

ID of the landing page

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
content_state
required
object

Editor content state document.

Responses

Request samples

Content type
application/json
{
  • "content_state": { }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Publish a landing page

Enqueues rendering/publishing of the landing page. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 15

ID of the landing page

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show editor landing page layout configuration

Returns the editor payload for a landing page layout, including content state. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 4

ID of the landing page layout

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update landing page layout content state

Updates the content_state of a landing page layout. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 4

ID of the landing page layout

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
content_state
required
object

Editor content state document.

Responses

Request samples

Content type
application/json
{
  • "content_state": { }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show editor microsite configuration

Returns the editor payload for a microsite, including content state and API endpoints. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the microsite

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{}

Update microsite content state

Updates the content_state of a microsite. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the microsite

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
content_state
required
object

Editor content state document.

Responses

Request samples

Content type
application/json
{
  • "content_state": { }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Publish microsite

Publishes the microsite. Requires write permission. Returns an error if the microsite is not in a publishable state.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the microsite

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

List editor assets

Returns editor assets uploaded for the tenant. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload an editor asset

Uploads a file for use in the editor. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: multipart/form-data
required
filename
string

The filename to use for the uploaded asset.

file
string <binary>

The file to upload.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Delete an editor asset

Deletes an editor asset by UUID. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
string
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890

UUID of the editor asset

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Admin / Pages

Admin API for microsites (fully hosted, standalone websites) and landing page layouts (structural frames for module-internal single pages such as DOI confirmation, survey response, etc.). OAuth2 bearer authentication only.

Setup order for microsites:

  1. Create or select a brand for the microsite. The brand styling will define the visual frame for the microsite.
  2. Create a microsite and define the name and brand.
  3. Adding custom hostnames (optional) to the microsite.
    • To add a custom hostname, ensure the DNS configuration is set up correctly. The CNAME record must point to the microsite's canonical hostname.

List landing page layouts

Returns a paginated list of landing page layouts for the tenant. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
page
integer
Example: page=1

Page number.

limit
integer
Example: limit=200

Number of records per page.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Create a landing page layout

Creates a landing page layout. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_landing_page_layout": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show a landing page layout

Returns a single landing page layout. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 4

The landing page layout ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update a landing page layout

Updates name or brand of a landing page layout. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 4

The landing page layout ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_landing_page_layout": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Delete a landing page layout

Deletes a landing page layout. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 4

The landing page layout ID

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

List microsites

Returns a paginated list of microsites for the tenant. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
page
integer
Example: page=1

Page number.

limit
integer
Example: limit=200

Number of records per page.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create a microsite

Creates a fully hosted, standalone website (microsite) for the tenant. Microsites are independent web presences with their own editor and publish workflow — the correct starting point when you want to create a new website, web page, or hosted page. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_microsite": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Show a microsite

Returns a single microsite. Requires read permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The microsite ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update a microsite

Updates a microsite. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The microsite ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_microsite": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Delete a microsite

Deletes a microsite. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The microsite ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Duplicate a microsite

Creates a deep clone of the given microsite. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

microsite_id
required
integer
Example: 1

The source microsite ID to duplicate.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
optional
object

Responses

Request samples

Content type
application/json
{
  • "pages_microsite": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Create a hostname

Enqueues a job to add a hostname to the microsite via Bunny CDN. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

microsite_id
required
integer
Example: 1

The microsite ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "pages_hostname": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Set canonical hostname

Sets the specified hostname as the canonical hostname for the microsite. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

microsite_id
required
integer
Example: 1

The microsite ID.

id
required
integer
Example: 3

The hostname ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Delete a hostname

Enqueues a job to remove a hostname from the microsite via Bunny CDN. Requires write permission.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

microsite_id
required
integer
Example: 1

The microsite ID.

id
required
integer
Example: 3

The hostname ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Admin / QR Code

Admin API for QR code resources. OAuth2 bearer authentication only.

Setup order to create QR codes:

  1. Create a QR code event (template) and define placeholders to parameterize individual codes. Use the target_url purpose placeholder to set the URL each code points to, and optionally a valid_until placeholder to set an expiry date.
  2. Generate QR codes from the event template by providing values for the defined placeholders. Each code receives a UUID that can be used to retrieve its QR image.
  3. Optionally configure webhooks (Admin / Webhook) to receive notifications whenever a QR code is visited.

List QR code events

List QR code event templates for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create a QR code event

Create a QR code event template for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "qr_code_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show a QR code event

Return a single QR code event template including its imports.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the QR code event.

query Parameters
limit
integer
Example: limit=200

Number of imports per page.

page
integer
Example: page=1

Page number for imports.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update a QR code event

Update a QR code event template.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the QR code event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "qr_code_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete a QR code event

Delete a QR code event template.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

ID of the QR code event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Download the import example file for a QR code event

Returns an XLSX file containing the import template for the given QR code event. The file includes one header column per placeholder defined on the event. A valid OAuth bearer token is required. Requires the format to be specified as .xlsx either via the URL suffix or the Accept header.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the QR code event.

header Parameters
Accept
required
string
Example: application/xlsx

The accept header, only application/xlsx is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "success": false,
  • "message": null,
  • "error": "No read permission",
  • "data": null
}

Update QR code style

Update the visual style configuration for a QR code event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
integer
Example: 1

ID of the QR code event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "style": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Upload a QR code logo

Upload a logo image (PNG, JPEG, or SVG) to use in a QR code style. Returns a signed_id that can be passed to the style update endpoint as logo_signed_id. SVG files must have explicit numeric width and height attributes.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

event_id
required
integer
Example: 1

ID of the QR code event.

Request Body schema: multipart/form-data
required
logo
required
string <binary>

Image file (PNG, JPEG, or SVG with explicit width/height).

Responses

Response samples

Content type
application/json
{
  • "signed_id": "eyJfcmFpbHMiOnsibWVzc2FnZSI6Ii..."
}

List QR codes

List QR codes for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create a QR code

Create a QR code for the given tenant. The QR code is attached to a QR code event (template) and a process is created for traceability.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show a QR code

Returns a single QR code for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the QR code

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update a QR code

Update a QR code for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the QR code

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete a QR code

Delete a QR code for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the QR code

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

Admin / MPM / DOI

Admin API for DOI (double opt-in) consent and marketing permission management resources. OAuth2 bearer authentication only.

Setup order to create a DOI campaign:

  1. Set up a brand and configure the providers and available senders for email, SMS, and RCS delivery according to your needs.
  2. Set up a DOI consent purpose and define the consent purpose text.
  3. Create a landing page layout for the DOI campaign landing pages.
  4. Create a page templates for the confirmation and success pages.
  5. Create a landing page for the failure page.
  6. Create a messaging schedule for the DOI campaign. Setup the messaging event. The following placeholders are mandatory on the top level of the payload:
    • email — the email address of the recipient
    • phone — the phone number of the recipient
    • confirmation_url — the URL to the confirmation page
    • confirmation_request_url — the URL to the confirmation request page
    • consented_text — the text of the consent purpose

See detailed documentation for events and templates in Admin / Mailer. The templates should always have a filter to ensure the recipient is present.

Show DOI dashboard statistics

Returns DOI dashboard statistics for the given tenant. Includes an overview chart covering the last 4 weeks (one entry per day) and filtered statistics aggregated by month for the selected time range. The time range can be controlled via the time_range parameter. If omitted, the current month is used. Pass time_range=custom together with start_date and end_date to specify an arbitrary range. Optionally filter by brand_id to restrict stats to a single brand.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
time_range
string
Example: time_range=2024-01-01

Selects the time range for the filtered overview chart. Omit or leave blank for the current month. Pass a date string (e.g. 2024-01-01) to select that month. Pass custom to use start_date/end_date instead.

start_date
string <date>
Example: start_date=2024-01-01

Start date for a custom time range. Only used when time_range=custom.

end_date
string <date>
Example: end_date=2024-01-31

End date for a custom time range. Only used when time_range=custom.

brand_id
integer
Example: brand_id=42

Restricts filtered statistics to a specific brand.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List DOI consents

List confirmed DOI consents for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

search
string
Example: search=some-identifier

Search term to filter consents by cross-system identifier or MPM contact ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an MPM DOI page template

Create a new DOI page template for the given consent purpose.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

consent_purpose_id
required
integer
Example: 1

The ID of the consent purpose.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "doi_page_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Update an MPM DOI page template

Update a DOI page template for the given consent purpose.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

consent_purpose_id
required
integer
Example: 1

The ID of the consent purpose.

id
required
integer
Example: 1

The ID of the page template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "doi_page_template": {}
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gespeichert",
  • "error": null,
  • "data": {
    }
}

Delete an MPM DOI page template

Delete a DOI page template for the given consent purpose.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

consent_purpose_id
required
integer
Example: 1

The ID of the consent purpose.

id
required
integer
Example: 1

The ID of the page template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": {
    }
}

List MPM imports

List abstract imports for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an MPM import

Create a new abstract import (opt-in or opt-out) for the given tenant and enqueue the import job.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: multipart/form-data
required
required
object

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Get MPM import error report

Returns the error report for a finished import as JSON (parsed error rows) or XLSX. Requires export permission on the tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

Import ID.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List MPM contacts

List contacts for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

search
string
Example: search=customer-123

Search by customer identification number or consent channel.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an MPM contact

Create a new contact with an associated consent for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "mpm_contact": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show an MPM contact

Return a single contact for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the contact.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an MPM contact

Update an existing contact and initiate a new consent for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the contact.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "mpm_contact": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Admin / Survey

Admin API for survey event resources. OAuth2 bearer authentication only.

Setup order before creating a survey campaign:

  1. Set up landing page layouts so that landing pages for the survey can be created.

    Landing-page layouts define only the structural frame (header/footer). Both vote_landing_page_attributes and response_landing_page_attributes can reference the same layout_id if the visual frame is identical — which is the common case. Only create separate layouts if the pages need distinct headers or footers.

  2. Set up a messaging event and define the expected payload. The following placeholders are required and must be present at the top level of the payload (e.g. json_path: $.email):

    • survey_question — the survey question text
    • survey_link — the link to the survey landing page
    • email — the respondent's email address
    • phone — the respondent's phone number

    Always create a dedicated messaging event per survey campaign. Reusing an existing event risks triggering its existing email/SMS/RCS templates, which are likely written for a different purpose and will produce wrong message content for the survey audience.

  3. To send out the survey, create email/sms/rcs templates for the messaging event. See Admin / Mailer for more information.

List survey events

List survey events for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

show_inactive
boolean

Include inactive events when true.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create a survey event

Create a survey event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "survey_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich erstellt",
  • "error": null,
  • "data": {
    }
}

Show a survey event

Return a single survey event with its imports for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1
query Parameters
limit
integer
Example: limit=200

Number of imports per page.

page
integer
Example: page=1

Page number for imports.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update a survey event

Update a survey event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1
header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "survey_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich bearbeitet",
  • "error": null,
  • "data": {
    }
}

Delete a survey event

Delete a survey event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1
header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Erfolgreich gelöscht",
  • "error": null,
  • "data": { }
}

Show survey dashboard

Return aggregated survey statistics for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
event_id
integer
Example: event_id=1

Filter stats by a specific survey event ID.

time_range
string
Example: time_range=2024-01

Time range filter (e.g. "2024-01", "custom"). Defaults to current month.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Admin / Injector

Admin API for injector (prefilled order journeys usind the Experience Engine or epilot) resources. OAuth2 bearer authentication only.

Setup order to create an injector campaign:

  1. Set up a mailer event and define the expected payload. The following placeholders are required and must be present at the top level of the payload (e.g. json_path: $.email):
    • landing_page_link - the link to the landing page that features the prefilled order journey. The JSON path must be landing_page_link.
  2. Configure the injector event. For an Experience Engine order journey you need the Experience Engine type, for an epilot order journey you need the placeholder prefilled type.
    • If the password is required and set by a placeholder, the placeholder must be present in the mailer event payload and must be configured as a placeholder for the mailer event.
  3. Create a landing page
    • Unlike other modules, the landing pages DOES NOT use the landing pages from Admin / Shared and Admin / Pages. Instead, you need to create the specific injector landing page template with raw html. For an Experience Engine journey, the html must contain the Experience Engine snippet.

Show injector dashboard

Show aggregated injector stats for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
event_id
integer
Example: event_id=1

Filter stats by a specific injector event ID.

time_range
string
Example: time_range=2023-05-01

Time range for filtered stats (e.g. "2023-05-01" for a specific month, or "custom").

start_date
string <date>
Example: start_date=2023-05-01

Start date for custom time range (requires time_range=custom).

end_date
string <date>
Example: end_date=2023-05-31

End date for custom time range (requires time_range=custom).

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

List injector abstract events

List injector abstract events for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

query Parameters
limit
integer
Example: limit=200

Number of records per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Create an injector abstract event

Create an injector abstract event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "injector_abstract_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Successfully created",
  • "error": null,
  • "data": { }
}

Show an injector abstract event

Show an injector abstract event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the injector abstract event.

query Parameters
limit
integer
Example: limit=200

Number of imports per page.

page
integer
Example: page=1

Page number.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update an injector abstract event

Update an injector abstract event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the injector abstract event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "injector_abstract_event": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Successfully edited",
  • "error": null,
  • "data": { }
}

Delete an injector abstract event

Delete an injector abstract event for the given tenant.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

id
required
integer
Example: 1

The ID of the injector abstract event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Successfully deleted",
  • "error": null,
  • "data": { }
}

Create a landing page template

Create a landing page template for the given injector event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

abstract_event_id
required
integer
Example: 1

The ID of the injector abstract event.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "injector_landing_page_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Successfully created",
  • "error": null,
  • "data": {
    }
}

Show a landing page template

Show the landing page template for the given injector event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

abstract_event_id
required
integer
Example: 1

The ID of the injector abstract event.

id
required
integer
Example: 1

The ID of the landing page template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": null,
  • "error": null,
  • "data": {
    }
}

Update a landing page template

Update the landing page template for the given injector event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

abstract_event_id
required
integer
Example: 1

The ID of the injector abstract event.

id
required
integer
Example: 1

The ID of the landing page template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "injector_landing_page_template": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Successfully edited",
  • "error": null,
  • "data": { }
}

Delete a landing page template

Delete the landing page template for the given injector event.

Authorizations:
bearer_auth
path Parameters
tenant
required
string
Example: ts

The tenant slug

abstract_event_id
required
integer
Example: 1

The ID of the injector abstract event.

id
required
integer
Example: 1

The ID of the landing page template.

header Parameters
Accept
required
string
Example: application/json

The accept header, only application/json is supported.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Successfully deleted",
  • "error": null,
  • "data": { }
}