Channels
+ Request (application/json)
Section:
Group Channels. Base URL:https://instance_name.meiro.io/api/.
Channels [/channels]
Retrieve Channels Basic Info [GET]
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"channels": [
{
"name": "push_notifications_channel",
"is_active": true
},
{
"name": "emails_channel",
"is_active": true
}
]
}Push Notifications Channel [/channels/push_notifications]
Retrieve Push Notifications Channel [GET]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notification_channel": {
"custom_data_schema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"title": "Category",
"default": "INFO",
"enum": ["INFO", "SPAM", "DISCOUNT"]
}
},
"required": ["category"]
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Push Notifications Channel Frequency Cap [/channels/push_notifications/frequency_cap]
Modify Push Notifications Channel Frequency Cap [POST]
Required feature: settings/channels
-
Attributes (ChannelFrequencyCap)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notification_channel": {
"custom_data_schema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"title": "Category",
"default": "INFO",
"enum": ["INFO", "SPAM", "DISCOUNT"]
}
},
"required": ["category"]
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Push Notifications Custom Data Schema Modification [/channels/push_notifications/custom_data_schema]
Modify Push Notifications Custom Data Schema [POST]
Required feature: settings/channels
-
Attributes
- custom_data_schema (object)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notification_channel": {
"custom_data_schema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"title": "Category",
"default": "INFO",
"enum": ["INFO", "SPAM", "DISCOUNT"]
}
},
"required": ["category"]
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Firebase Projects [/channels/push_notifications/firebase_projects]
Retrieve Firebase Projects [GET]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"firebase_projects": [
{
"id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Default",
"created": "2024-03-01T19:20:40.695031",
"modified": "2024-03-01T19:20:40.695031",
"modified_by": 1,
"firebase_account_data": "data_here",
"apps_available": True
}
]
}Create Firebase Project [POST]
Required feature: settings/channels
-
Attributes
- name:
project name(string) - firebase_account_data:
data_here(string, optional)
- name:
-
Request (multipart/form-data)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"firebase_project": {
"id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Default",
"created": "2024-03-01T19:20:40.695031",
"modified": "2024-03-01T19:20:40.695031",
"modified_by": 1,
"firebase_account_data": "data_here",
"apps_available": False
}
}Firebase Project [/channels/push_notifications/firebase_projects/{firebase_project_id}]
Retrieve Firebase Project [GET]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"firebase_project": {
"id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Default",
"created": "2024-03-01T19:20:40.695031",
"modified": "2024-03-01T19:20:40.695031",
"modified_by": 1,
"firebase_account_data": "data_here",
"apps_available": True
}
}Modify Firebase Project [PATCH]
Required feature: settings/channels
-
Attributes
- name:
project name(string, optional) - firebase_account_data:
data_here(string, optional)
- name:
-
Request (multipart/form-data)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"firebase_project": {
"id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Default",
"created": "2024-03-01T19:20:40.695031",
"modified": "2024-03-01T19:20:40.695031",
"modified_by": 1,
"firebase_account_data": "data_here",
"apps_available": True
}
}Firebase Apps [/channels/push_notifications/firebase_projects/{firebase_project_id}/firebase_apps]
Retrieve Available Firebase Apps [GET]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"firebase_apps": {
"android_apps": [
{
"app_id": "1234",
"name": "app name"
}
],
"ios_apps": [
{
"app_id": "1234",
"name": "app name"
}
]
}
}Push Notifications Apps [/channels/push_notifications/firebase_projects/{firebase_project_id}/apps]
Retrieve Push Notifications Apps [GET]
Required feature: push_notifications/view
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notifications_apps": [
{
"id": "41f2cc9a-f7df-4ef8-b2e1-1bd4e627639a",
"firebase_project_id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Mobile App",
"app_ids": ["1234"]
}
]
}Create Push Notifications App [POST]
Required feature: settings/channels
-
Attributes
- name:
app name(string) - app_ids:
["1234"](array[string])
- name:
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notifications_app": {
"id": "41f2cc9a-f7df-4ef8-b2e1-1bd4e627639a",
"firebase_project_id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Mobile App",
"app_ids": ["1234"]
}
}Push Notifications App [/channels/push_notifications/firebase_projects/{firebase_project_id}/{push_notifications_app_id}]
Modify Push Notifications App [PATCH]
Required feature: settings/channels
-
Attributes
- name:
app name(string) - app_ids:
["1234"](array[string])
- name:
-
Request (multipart/form-data)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notifications_app": {
"id": "41f2cc9a-f7df-4ef8-b2e1-1bd4e627639a"
"name": "Mobile App",
"firebase_project_id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"app_ids": ["1234"]
}
}Delete Push Notifications App [DELETE]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"message": "OK"
}All Push Notifications Apps [/channels/push_notifications/apps]
Retrieve Push Notifications Apps for all Firebase projects [GET]
Required feature: push_notifications/view
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"push_notifications_apps": [
{
"id": "41f2cc9a-f7df-4ef8-b2e1-1bd4e627639a",
"firebase_project_id": "4add1058-08cd-439c-a698-25d49d9e8e27",
"name": "Mobile App",
"app_ids": ["1234"]
}
]
}Emails Channel [/channels/emails]
Retrieve Emails Channel [GET]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_channel": {
"emails_stitching_category_id": "category_id",
"provider_config": {
"provider": "brevo",
"host": "smtp_host",
"port": 25,
"username": "smtp_user",
"password": "smtp_password",
"use_tls": true,
"provider_config": {
"api_key": "some_key"
}
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"opt_in_email_config": {
"subject": "subject",
"preheader": "preheader",
"from_email": {
"email_address": "we.are@meiro.io",
"name": "Mrs. Meiro"
},
"reply_to_email": "we.really.are@meiro.io",
"content_json": "json content",
"content_html": "html content"
},
"email_unsubscribe_block": {
"content_json": "json content",
"content_html": "html content"
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Email Addresses [/channels/emails/email_addresses{?verified}]
Retrieve Email Addresses [GET]
Required feature: settings/channels
-
Parameters
- verified (boolean, optional) - Filter verified email addresses
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_addresses": [
{
"email": "we.are@meiro.io",
"verified": true,
"default": false
},
{
"email": "you.are@meiro.io",
"verified": false,
"default": false
},
]
}Create Email Address [POST]
Required feature: settings/channels
-
Attributes
- email:
we.are@meiro.io(string)
- email:
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 201 (application/json)
{
"email_address": {
"email": "we.are@meiro.io",
"verified": false,
"default": false
}
}
Email Address [/channels/emails/email_addresses/{email}]
Modify Email Address - set/unset as default [PATCH]
Sets or unset email address as default. If there is currently any other address set as default it will be unset.
Required feature: settings/channels
-
Attributes
- default (boolean)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_address": {
"email": "we.are@meiro.io",
"verified": true,
"default": true
}
}Delete Email Address [DELETE]
Required feature: settings/channels
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"message": "OK"
}Email Address Verification [/channels/emails/email_addresses/verify{?email,verification_token}]
Verify Email Address [POST]
Required feature: settings/channels
-
Attributes
- email:
we.are@meiro.io(string)
- email:
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 201 (application/json)
{
"message": "OK"
}Confirm Email Address [GET]
Required feature: settings/channels
-
Parameters
- email:
we.are@meiro.io(string) - verification_token:
1234(string)
- email:
-
Response 200 (text/html)
Email Channel Frequency Cap [/channels/emails/frequency_cap]
Modify Emails Channel Frequency Cap [POST]
Required feature: settings/channels
-
Attributes (ChannelFrequencyCap)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_channel": {
"emails_stitching_category_id": "category_id",
"provider_config": {
"provider": "brevo",
"host": "smtp_host",
"port": 25,
"username": "smtp_user",
"password": "smtp_password",
"use_tls": true,
"provider_config": {
"api_key": "some_key"
}
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"opt_in_email_config": {
"subject": "subject",
"preheader": "preheader",
"from_email": {
"email_address": "we.are@meiro.io",
"name": "Mrs. Meiro"
},
"reply_to_email": "we.really.are@meiro.io",
"content_json": "json content",
"content_html": "html content"
},
"email_unsubscribe_block": {
"content_json": "json content",
"content_html": "html content"
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Opt-in Email Customization [/channels/emails/opt_in]
Modify Opt-in Email [POST]
Required feature: settings/channels
-
Attributes (OptInEmailConfiguration)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_channel": {
"emails_stitching_category_id": "category_id",
"provider_config": {
"provider": "brevo",
"host": "smtp_host",
"port": 25,
"username": "smtp_user",
"password": "smtp_password",
"use_tls": true,
"provider_config": {
"api_key": "some_key"
}
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"opt_in_email_config": {
"subject": "subject",
"preheader": "preheader",
"from_email": {
"email_address": "we.are@meiro.io",
"name": "Mrs. Meiro"
},
"reply_to_email": "we.really.are@meiro.io",
"content_json": "json content",
"content_html": "html content"
},
"email_unsubscribe_block": {
"content_json": "json content",
"content_html": "html content"
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Email Provider Configuration Modification [/channels/emails/provider_config]
Modify Email Provider Configuration [POST]
Required feature: settings/channels
-
Attributes (EmailProviderConfig)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_channel": {
"emails_stitching_category_id": "category_id",
"provider_config": {
"provider": "brevo",
"host": "smtp_host",
"port": 25,
"username": "smtp_user",
"password": "smtp_password",
"use_tls": true,
"provider_config": {
"api_key": "some_key"
}
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"opt_in_email_config": {
"subject": "subject",
"preheader": "preheader",
"from_email": {
"email_address": "we.are@meiro.io",
"name": "Mrs. Meiro"
},
"reply_to_email": "we.really.are@meiro.io",
"content_json": "json content",
"content_html": "html content"
},
"email_unsubscribe_block": {
"content_json": "json content",
"content_html": "html content"
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Emails Stitching Category Modification [/channels/emails/stitching_category]
Modify Emails Stitching Category [POST]
Required feature: settings/channels
-
Attributes
- stitching_category_id:
category_id(string)
- stitching_category_id:
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_channel": {
"emails_stitching_category_id": "category_id",
"provider_config": {
"provider": "brevo",
"host": "smtp_host",
"port": 25,
"username": "smtp_user",
"password": "smtp_password",
"use_tls": true,
"provider_config": {
"api_key": "some_key"
}
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"opt_in_email_config": {
"subject": "subject",
"preheader": "preheader",
"from_email": {
"email_address": "we.are@meiro.io",
"name": "Mrs. Meiro"
},
"reply_to_email": "we.really.are@meiro.io",
"content_json": "json content",
"content_html": "html content"
},
"email_unsubscribe_block": {
"content_json": "json content",
"content_html": "html content"
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Email Unsubscribe Block Customization [/channels/emails/unsubscribe_block]
Modify Unsubscribe Block [POST]
Required feature: settings/channels
-
Attributes (EmailUnsubscribeBlock)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"email_channel": {
"emails_stitching_category_id": "category_id",
"smtp_config": {
"host": "smtp_host",
"port": 25,
"username": "smtp_user",
"password": "smtp_password",
"use_tls": true
},
"frequency_cap": {
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"opt_in_email_config": {
"subject": "subject",
"preheader": "preheader",
"from_email": {
"email_address": "we.are@meiro.io",
"name": "Mrs. Meiro"
},
"reply_to_email": "we.really.are@meiro.io",
"content_json": "json content",
"content_html": "html content"
},
"email_unsubscribe_block": {
"content_json": "json content",
"content_html": "html content"
},
"is_active": true,
"modified_by": 1,
"modified": "2023-01-20T10:59:33.378784"
}
}Opt-in Email Test Activation [/channels/emails/opt_in_activation]
Run Manual Activation of email to testing emails [POST]
Required feature: settings/channels
-
Attributes (OptInEmailTest)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 201 (application/json)
{
"message": "ok"
}WhatsApp Channel [/channels/whatsapp]
Retrieve WhatsApp Channel Configuration [GET]
Required feature: settings/channels
Retrieves the current configuration for the WhatsApp channel.
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"whatsapp_channel": {
"is_active": false,
"modified": "2025-05-05T12:30:37.016271",
"modified_by": 1,
"whatsapp_business_accounts": [
{
"account_id": "1600535333979707",
"website": "website@example.io",
"phone_number_id": "668858762973438",
"phone_number": "15557561051",
"email": "example@meiro.io",
"name": "account1"
}
],
"whatsapp_ongoing_business_account_registration": {
"website": null,
"email": "example@meiro.io",
"created": "2025-05-15T08:49:33.280419+00:00",
"registration_token": "ea1269de-0bef-40c7-aa3f-62dcda567675",
"name": "account2",
"registration_url": "https://waba.smsmanager.com/registration?token=xxx"
},
"frequency_cap": {
"is_active": true,
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"delivery_time": {
"is_active": true,
"days": ["monday", "thursday"],
"start": "12:00",
"end": "14:00",
"time_zone": "Europe/Prague"
},
"whatsapp_stitching_category": {
"id": "category_id",
"name": "category_name"
}
}
}WhatsApp Stitching Category [/channels/whatsapp/stitching_category]
Set Stitching Category for WhatsApp Channel [POST]
Required feature: settings/channels
Sets the stitching category ID for the WhatsApp channel. This can only be done once.
-
Attributes
- stitching_category_id:
category_id(string)
- stitching_category_id:
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"whatsapp_channel": {
"is_active": false,
"modified": "2025-05-05T12:30:37.016271",
"modified_by": 1,
"whatsapp_business_accounts": [
{
"account_id": "1600535333979707",
"website": "website@example.io",
"phone_number_id": "668858762973438",
"phone_number": "15557561051",
"email": "example@meiro.io",
"name": "account1"
}
],
"whatsapp_ongoing_business_account_registration": {
"website": null,
"email": "example@meiro.io",
"created": "2025-05-15T08:49:33.280419+00:00",
"registration_token": "ea1269de-0bef-40c7-aa3f-62dcda567675",
"name": "account2",
"registration_url": "https://waba.smsmanager.com/registration?token=xxx"
},
"whatsapp_stitching_category": {
"id": "category_id",
"name": "category_name"
}
}
}- Response 400 (application/json)
{
"message": "Stitching category not found"
}- Response 400 (application/json)
{
"message": "WhatsApp channel stitching category is already set."
}
WhatsApp Business Account Registration [/channels/whatsapp/business_account/registration]
Initiate new WhatsApp business account registration [POST]
Required feature: settings/channels
-
Attributes (WhatsappBusinessAccount)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 201 (application/json)
{
"registration_link": "https://waba.smsmanager.com/registration/registration?token=..."
}- Response 400 (application/json)
{
"message": "WhatsApp Business registration is already in progress"
}
WhatsApp Business Account Confirmation [/channels/whatsapp/business_account/confirmation{?registration_token}]
Confirm ongoing WhatsApp business account registration [POST]
-
Parameters
- registration_token (string)
-
Attributes (WhatsappBusinessAccountConfirmation)
-
Request (application/json)
-
Response 201 (application/json)
{
"message": "ok"
}- Response 400 (application/json)
{
"message": "WhatsApp business account registration hasn't been initiated"
}- Response 400 (application/json)
{
"message": "WhatsApp business account registration token does not match"
}Whatsapp Global Settings [/channels/whatsapp/global_settings]
Modify Whatsapp Global Settings [POST]
Required feature: settings/channels
-
Attributes (WhatsappGlobalSettings)
-
Request (application/json)
-
Headers
X-Access-Token: 1234567890abcdef
-
-
Response 200 (application/json)
{
"whatsapp_channel": {
"is_active": false,
"modified": "2025-05-05T12:30:37.016271",
"modified_by": 1,
"whatsapp_business_accounts": [],
"frequency_cap": {
"is_active": true,
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"delivery_time": {
"is_active": true,
"days": ["monday", "thursday"],
"start": "12:00",
"end": "14:00",
"time_zone": "Europe/Prague"
},
"whatsapp_ongoing_business_account_registration": null,
"whatsapp_stitching_category": null
}
}- Response 200 (application/json)
{
"whatsapp_channel": {
"is_active": false,
"modified": "2025-05-05T12:30:37.016271",
"modified_by": 1,
"whatsapp_business_accounts": [],
"frequency_cap": {
"is_active": false,
"max_count": 1,
"period": {
"type": "days",
"size": 1
}
},
"delivery_time": null,
"whatsapp_ongoing_business_account_registration": null,
"whatsapp_stitching_category": null
}
}- Response 400 (application/json)
{
"errors": {
"delivery_time": {
"_schema": ["Start time must be less than or equal to end time"]
}
},
"message": "validation error"
}- Response 400 (application/json)
{
"errors": {
"delivery_time": {
"end": ["Must be 24-hour HH:MM format, 00:00-23:59"]
}
},
"message": "validation error",
}- Response 400 (application/json)
{
"errors": {
"delivery_time": {
"time_zone": ["Must be a valid IANA timezone identifier"]
}
},
"message": "validation error",
}