Maileroo
App · 20 actions
Send transactional email from your own domain - single, templated, scheduled or in bulk - then follow it through the delivery logs, resend from them, manage templates and suppressions, and read your sending statistics.
Actions
| Action | What it does |
|---|---|
| Add suppression | Stop all email to an address, with an optional reason. |
| Cancel scheduled email | Cancel a scheduled email before it is sent. |
| Create template | Save a new email template from HTML, import one from a web page, or create a blank one to design in Maileroo's editor. |
| Delete template | Delete a template. |
| Get account | Get the account's owner, plan, subscription, and how much of the hourly and monthly sending limits is used. |
| Get daily statistics | Get the last month's delivered, bounced, opened, clicked and suppressed totals, one entry per day. |
| Get domain | Get one domain: the DKIM, SPF, DMARC, MX and tracking DNS records to publish and whether each is in place, its settings and its statistics. |
| Get logged email | Get a sent email from the logs: its sender, recipients, when it was collected, and its full raw source. |
| Get statistics summary | Get this calendar month's delivered, bounced, opened, clicked and suppressed totals, with opens and clicks by country. |
| Get template | Get a template with its HTML and plain-text content. |
| List domains | List the account's sending domains with whether each is verified and its delivered, bounced, opened and clicked counts. |
| List scheduled emails | List emails waiting to be sent at their scheduled time, with each one's reference id, subject, recipients and send time. |
| List suppressions | List the addresses Maileroo will not send to, with why each was suppressed. |
| List templates | List saved email templates, optionally only those matching a name. |
| Remove suppression | Allow email to a suppressed address again. |
| Resend logged email | Send an email from the logs again, exactly as it was. |
| Search email logs | Search the last 14 days of sent email by reference id, message id, subject, sender, recipient, outcome, tags or time, with each email's delivery events. |
| Send bulk emails | Send up to 500 separate emails in one request - one per recipient - from an HTML body, a plain-text body or a template, with per-recipient template variables. |
| Send email | Send an email now or schedule it, with an HTML and/or plain-text body, Cc, Bcc, reply-to, attachments, tags and headers. |
| Send templated email | Send an email built from a saved Maileroo template, filling its {{ variables }}. |
Add suppression
Stop all email to an address, with an optional reason.
Inputs
- Email address
email_addresstextRequired - The address to stop sending to.
- Reason
reasontext - Why, for your records, e.g. Asked to be removed.
Outputs
email_addresstextidnumberreasontext
Example output
{
"email_address": "jane@example.com",
"id": 994,
"reason": "Asked to be removed"
}Cancel scheduled email
Cancel a scheduled email before it is sent. This cannot be undone.
Inputs
- Reference ID
reference_idtextRequired - The scheduled email's reference id, from the send step or List scheduled emails.
Outputs
cancelledtrue/falsemessagetextreference_idtext
Example output
{
"cancelled": true,
"message": "The scheduled email has been deleted.",
"reference_id": "6512a4f8b2c9e01d4f3a7b21"
}Create template
Save a new email template from HTML, import one from a web page, or create a blank one to design in Maileroo's editor.
Inputs
- Name
nametextRequired - Up to 128 characters.
- Source
template_typetext - Where the template's content comes from.One of:
html,url(Imported from a URL),editor(Blank, for the drag-and-drop editor). Default:html. - HTML
htmltext - The template's HTML. Use {{ variable }} for values filled in when sending. A fragment such as <p>Hi</p> is wrapped in a full HTML document, which Maileroo requires.Only when Source is HTML.
- Page URL
urltext - The web page to import the HTML from.Only when Source is Imported from a URL.
Outputs
htmltextidnumberplaintexttextpreview_imagetextpreview_urltextprocessednumbertemplate_nametexttypetext
Example output
{
"html": "<p>Hello {{ name }}</p>",
"id": 4182,
"plaintext": "Hello {{ name }}",
"preview_image": "https://maileroo.com/previews/4182.png",
"preview_url": "https://maileroo.com/previews/4182",
"processed": 1,
"template_name": "Welcome",
"type": "html"
}Delete template
Delete a template. This cannot be undone.
Inputs
- Template
template_idtextRequired - The template to delete. Pick one, or type its id.
Outputs
deletedtrue/falsetemplate_idnumber
Example output
{
"deleted": true,
"template_id": 4182
}Get account
Get the account's owner, plan, subscription, and how much of the hourly and monthly sending limits is used.
Inputs
None.
Outputs
billing_informationobjectcurrent_planobjectemailtextnametextsubscriptionobjectusagelistuser_idnumber
Example output
{
"billing_information": null,
"current_plan": {
"id": 1,
"name": "Free",
"quantity": 3000
},
"email": "jane@example.com",
"name": "Jane Doe",
"subscription": null,
"usage": [
{
"available": 2880,
"name": "Monthly Outbound Usage",
"quantity": 3000,
"used": 120
}
],
"user_id": 51234
}Get daily statistics
Get the last month's delivered, bounced, opened, clicked and suppressed totals, one entry per day.
Inputs
None.
Outputs
countnumberdayslist
Example output
{
"count": 1,
"days": [
{
"bounced": 3,
"clicks": 95,
"countries": [
{
"clicks": 60,
"country_code": "US",
"opens": 400
}
],
"date": "2026-10-01",
"delivered": 1204,
"opens": 610,
"suppressions": 2
}
]
}Get domain
Get one domain: the DKIM, SPF, DMARC, MX and tracking DNS records to publish and whether each is in place, its settings and its statistics.
Inputs
- Domain
domain_idtextRequired - The domain. Pick one, or type its numeric id.
Outputs
custom_hostname_trackingtrue/falsedns_recordsobjectdomain_nametextfreetrue/falseidnumberinteraction_trackingtrue/falsereturn_pathtextsandboxtrue/falsestatisticsobjectstatustrue/falseuser_idnumber
Example output
{
"custom_hostname_tracking": false,
"dns_records": {
"dkim_record": {
"cname_fallback": "",
"created": true,
"host": "mail.example.com",
"record": "v=spf1 ..."
},
"dmarc_record": {
"created": true,
"host": "mail.example.com",
"record": "v=spf1 ..."
},
"mx_record": {
"created": true,
"host": "mail.example.com",
"priority": 10,
"record": "v=spf1 ..."
},
"spf_record": {
"created": true,
"host": "mail.example.com",
"record": "v=spf1 ..."
},
"tracking_record": {
"created": true,
"host": "mail.example.com",
"record": "v=spf1 ..."
}
},
"domain_name": "mail.example.com",
"free": false,
"id": 812,
"interaction_tracking": true,
"return_path": "bounce.mail.example.com",
"sandbox": false,
"statistics": {
"bounced": 3,
"clicked": 95,
"delivered": 1204,
"opened": 610
},
"status": true,
"user_id": 51234
}Get logged email
Get a sent email from the logs: its sender, recipients, when it was collected, and its full raw source.
Inputs
- Message ID
message_idtextRequired - The email's message_id, from Search email logs.
Outputs
collected_ontextfromtextmessage_idtextraw_emailtexttotext
Example output
{
"collected_on": "2026-10-09 08:53:21",
"from": "hello@mail.example.com",
"message_id": "b7e4c2f0a1d3@mail.example.com",
"raw_email": "From: hello@mail.example.com\r\nTo: jane@example.com",
"to": "jane@example.com"
}Get statistics summary
Get this calendar month's delivered, bounced, opened, clicked and suppressed totals, with opens and clicks by country.
Inputs
None.
Outputs
bouncednumberclicksnumbercountrieslistdeliverednumberopensnumbersuppressionsnumber
Example output
{
"bounced": 3,
"clicks": 95,
"countries": [
{
"clicks": 60,
"country_code": "US",
"opens": 400
}
],
"delivered": 1204,
"opens": 610,
"suppressions": 2
}Get template
Get a template with its HTML and plain-text content.
Inputs
- Template
template_idtextRequired - The template. Pick one, or type its id.
Outputs
htmltextidnumberplaintexttextpreview_imagetextpreview_urltextprocessednumbertemplate_nametexttypetext
Example output
{
"html": "<p>Hello {{ name }}</p>",
"id": 4182,
"plaintext": "Hello {{ name }}",
"preview_image": "https://maileroo.com/previews/4182.png",
"preview_url": "https://maileroo.com/previews/4182",
"processed": 1,
"template_name": "Welcome",
"type": "html"
}List domains
List the account's sending domains with whether each is verified and its delivered, bounced, opened and clicked counts. Search by name and sort.
Inputs
- Search
searchtext - Only domains whose name contains this.
- Sort by
sort_bytext - How to order the domains.One of:
id(Date added),domain_name(Domain name),delivered,bounced,opened,clicked. - Sort direction
sort_dirtext - Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - How many to return per page (10 to 100).From 10 to 100.
Outputs
countnumberdomainslistpagenumberper_pagenumbertotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"domains": [
{
"domain_name": "mail.example.com",
"id": 812,
"statistics": {
"bounced": 3,
"clicked": 95,
"delivered": 1204,
"opened": 610
},
"status": true
}
],
"page": 1,
"per_page": 10,
"total": 1,
"total_pages": 1
}List scheduled emails
List emails waiting to be sent at their scheduled time, with each one's reference id, subject, recipients and send time.
Inputs
- Domain
domaintext - Only this domain's emails. Required when the Sending Key was issued to an Application.
- Page
pagenumber - Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - How many to return per page (1 to 100).From 1 to 100.
Outputs
countnumberpagenumberper_pagenumberscheduled_emailslisttotal_countnumbertotal_pagesnumber
Example output
{
"count": 1,
"page": 1,
"per_page": 10,
"scheduled_emails": [
{
"from": "\"Acme\" <hello@mail.example.com>",
"headers": {},
"recipients": [
"jane@example.com"
],
"reference_id": "6512a4f8b2c9e01d4f3a7b21",
"scheduled_at": "2026-10-20T09:00:00Z",
"subject": "Your trial ends soon",
"tags": {
"campaign": "trial"
}
}
],
"total_count": 1,
"total_pages": 1
}List suppressions
List the addresses Maileroo will not send to, with why each was suppressed. Search by address.
Inputs
- Search
searchtext - Only addresses containing this.
- Page
pagenumber - Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - How many to return per page (10 to 100).From 10 to 100.
Outputs
countnumberpagenumberper_pagenumbersuppressionslisttotalnumbertotal_pagesnumber
Example output
{
"count": 1,
"page": 1,
"per_page": 10,
"suppressions": [
{
"email_address": "jane@example.com",
"id": 993,
"reason": "bounce"
}
],
"total": 1,
"total_pages": 1
}List templates
List saved email templates, optionally only those matching a name.
Inputs
- Search
searchtext - Only templates whose name contains this.
Outputs
countnumbertemplateslist
Example output
{
"count": 1,
"templates": [
{
"id": 4182,
"preview_image": "https://maileroo.com/previews/4182.png",
"preview_url": "https://maileroo.com/previews/4182",
"processed": 1,
"template_name": "Welcome",
"type": "html"
}
]
}Remove suppression
Allow email to a suppressed address again.
Inputs
- Email address or suppression ID
identifiertextRequired - The suppressed address, or the suppression's id.
Outputs
identifiertextremovedtrue/false
Example output
{
"identifier": "jane@example.com",
"removed": true
}Resend logged email
Send an email from the logs again, exactly as it was. Maileroo allows 1,000 resends a day.
Inputs
- Message ID
message_idtextRequired - The email's message_id, from Search email logs.
Outputs
message_idtextreference_idtext
Example output
{
"message_id": "b7e4c2f0a1d3@mail.example.com",
"reference_id": "6512a4f8b2c9e01d4f3a7b99"
}Search email logs
Search the last 14 days of sent email by reference id, message id, subject, sender, recipient, outcome, tags or time, with each email's delivery events.
Inputs
- Reference ID
reference_idtext - The reference id a send step returned.
- Message ID
message_idtext - The email's Message-ID header.
- Recipient
recipienttext - Emails sent to this address.
- Sender
sendertext - Emails sent from this address.
- Subject
subjecttext - Emails with this subject.
- Outcome
log_typetext - Only emails with this outcome.One of:
Delivered,Deferred,Suppressed,Bounced,Complained. - Tags
tagsobject - Emails carrying these tags, e.g. campaign = welcome.
- Match tags
tags_operatortext - Whether an email needs all of the tags or any.One of:
AND(All of the tags),OR(Any of the tags). Default:AND. - Application ID
application_idnumber - Only emails sent by this Maileroo Application.At least 1.
- From
datetime_fromdate and time - Only emails sent at or after this time.
- To
datetime_todate and time - Only emails sent at or before this time.
- Order
ordertext - Newest or oldest first.One of:
newest(Newest first),oldest(Oldest first). Default:newest. - Page
pagenumber - Which page to return, starting at 1.At least 1.
Outputs
countnumberhas_moretrue/falseitemslistpagenumber
Example output
{
"count": 1,
"has_more": false,
"items": [
{
"application_id": 0,
"datetime": "2026-10-09 08:53:20",
"events": [
{
"data": {},
"event_type": "delivered",
"message": "250 OK",
"timestamp": 1760000000
}
],
"instance_id": "mx-04",
"ip_address": "203.0.113.24",
"message_id": "b7e4c2f0a1d3@mail.example.com",
"recipients": [
"jane@example.com"
],
"reference_id": "6512a4f8b2c9e01d4f3a7b21",
"sender": "hello@mail.example.com",
"subject": "Welcome aboard",
"tags": [
{
"name": "campaign",
"value": "welcome"
}
]
}
],
"page": 1
}Send bulk emails
Send up to 500 separate emails in one request - one per recipient - from an HTML body, a plain-text body or a template, with per-recipient template variables. Bulk sends cannot be scheduled.
Inputs
- From address
from_addresstextRequired - The sender, on a domain this Sending Key belongs to, e.g. hello@mail.example.com. 'Acme <hello@mail.example.com>' also works.
- From name
from_nametext - The sender's name, shown in the inbox, e.g. Acme Support.
- Subject
subjecttextRequired - Up to 255 characters. It can use the template's variables, e.g. 'Your order {{ order_id }}'.
- Recipients
recipientstext - Each address gets its own email. Separate them with commas, or pass a list from an earlier step.
- Messages (advanced)
messageslist - One object per email, for per-recipient values: 'to', and optionally 'template_data', 'cc', 'bcc', 'reply_to', 'from' and 'reference_id'. Sent alongside any Recipients above.
- HTML body
htmltext - The email as HTML. Give exactly one of this, a plain-text body or a template.
- Plain-text body
plaintext - The email as plain text. Give exactly one of this, an HTML body or a template.
- Template
template_idtext - A saved template instead of a body. Pick one, or type its id.
- Attachments
attachmentslist - Files to attach - upload them or pick files from earlier steps. Up to 32 files, 25 MB in all.
- Open and click tracking
trackingtext - Whether to track opens and clicks for this email.One of:
account(Use my account setting),on(Track opens and clicks),off(Do not track). Default:account. - Tags
tagsobject - Labels to find this email by later in the logs, e.g. campaign = welcome.
- Extra headers
headersobject - Additional email headers, e.g. X-Campaign-Id = 42.
Outputs
countnumbermessagetextreference_idslist
Example output
{
"count": 2,
"message": "The emails have been scheduled for delivery.",
"reference_ids": [
"6512a4f8b2c9e01d4f3a7b21",
"6512a4f8b2c9e01d4f3a7b22"
]
}Send email
Send an email now or schedule it, with an HTML and/or plain-text body, Cc, Bcc, reply-to, attachments, tags and headers. Returns the reference id to track it by.
Inputs
- From address
from_addresstextRequired - The sender, on a domain this Sending Key belongs to, e.g. hello@mail.example.com. 'Acme <hello@mail.example.com>' also works.
- From name
from_nametext - The sender's name, shown in the inbox, e.g. Acme Support.
- To
totextRequired - Recipients, separated by commas. Each can be an address or 'Name <address>'.
- Subject
subjecttextRequired - Up to 255 characters.
- HTML body
htmltext - The email as HTML. Give this, a plain-text body, or both.
- Plain-text body
plaintext - The email as plain text. Leave it empty to have Maileroo make one from the HTML.
- Cc
cctext - Copy recipients, separated by commas.
- Bcc
bcctext - Hidden recipients, separated by commas.
- Reply-to
reply_totext - Where replies go, if not the sender.
- Attachments
attachmentslist - Files to attach - upload them or pick files from earlier steps. Up to 32 files, 25 MB in all.
- Send at
scheduled_atdate and time - Schedule the email for later, up to 21 days ahead. Leave empty to send now.
- Open and click tracking
trackingtext - Whether to track opens and clicks for this email.One of:
account(Use my account setting),on(Track opens and clicks),off(Do not track). Default:account. - Tags
tagsobject - Labels to find this email by later in the logs, e.g. campaign = welcome.
- Extra headers
headersobject - Additional email headers, e.g. X-Campaign-Id = 42.
- Reference ID
reference_idtext - Your own 24-character hexadecimal id for this email. Leave empty and Maileroo makes one.
Outputs
messagetextreference_idtextscheduled_attext
Example output
{
"message": "The email has been scheduled for delivery.",
"reference_id": "6512a4f8b2c9e01d4f3a7b21",
"scheduled_at": null
}Send templated email
Send an email built from a saved Maileroo template, filling its {{ variables }}. It can be scheduled, and takes Cc, Bcc, attachments, tags and headers.
Inputs
- From address
from_addresstextRequired - The sender, on a domain this Sending Key belongs to, e.g. hello@mail.example.com. 'Acme <hello@mail.example.com>' also works.
- From name
from_nametext - The sender's name, shown in the inbox, e.g. Acme Support.
- To
totextRequired - Recipients, separated by commas. Each can be an address or 'Name <address>'.
- Subject
subjecttextRequired - Up to 255 characters. It can use the template's variables, e.g. 'Your order {{ order_id }}'.
- Template
template_idtextRequired - The template. Pick one, or type its id from the Templates page.
- Template variables
template_dataobject - Values for the template's {{ variables }}, e.g. name = Jane.
- Cc
cctext - Copy recipients, separated by commas.
- Bcc
bcctext - Hidden recipients, separated by commas.
- Reply-to
reply_totext - Where replies go, if not the sender.
- Attachments
attachmentslist - Files to attach - upload them or pick files from earlier steps. Up to 32 files, 25 MB in all.
- Send at
scheduled_atdate and time - Schedule the email for later, up to 21 days ahead. Leave empty to send now.
- Open and click tracking
trackingtext - Whether to track opens and clicks for this email.One of:
account(Use my account setting),on(Track opens and clicks),off(Do not track). Default:account. - Tags
tagsobject - Labels to find this email by later in the logs, e.g. campaign = welcome.
- Extra headers
headersobject - Additional email headers, e.g. X-Campaign-Id = 42.
- Reference ID
reference_idtext - Your own 24-character hexadecimal id for this email. Leave empty and Maileroo makes one.
Outputs
messagetextreference_idtextscheduled_attext
Example output
{
"message": "The email has been scheduled for delivery.",
"reference_id": "6512a4f8b2c9e01d4f3a7b21",
"scheduled_at": null
}