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

ActionWhat it does
Add suppressionStop all email to an address, with an optional reason.
Cancel scheduled emailCancel a scheduled email before it is sent.
Create templateSave a new email template from HTML, import one from a web page, or create a blank one to design in Maileroo's editor.
Delete templateDelete a template.
Get accountGet the account's owner, plan, subscription, and how much of the hourly and monthly sending limits is used.
Get daily statisticsGet the last month's delivered, bounced, opened, clicked and suppressed totals, one entry per day.
Get domainGet 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 emailGet a sent email from the logs: its sender, recipients, when it was collected, and its full raw source.
Get statistics summaryGet this calendar month's delivered, bounced, opened, clicked and suppressed totals, with opens and clicks by country.
Get templateGet a template with its HTML and plain-text content.
List domainsList the account's sending domains with whether each is verified and its delivered, bounced, opened and clicked counts.
List scheduled emailsList emails waiting to be sent at their scheduled time, with each one's reference id, subject, recipients and send time.
List suppressionsList the addresses Maileroo will not send to, with why each was suppressed.
List templatesList saved email templates, optionally only those matching a name.
Remove suppressionAllow email to a suppressed address again.
Resend logged emailSend an email from the logs again, exactly as it was.
Search email logsSearch 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 emailsSend 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 emailSend an email now or schedule it, with an HTML and/or plain-text body, Cc, Bcc, reply-to, attachments, tags and headers.
Send templated emailSend 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 addressemail_addresstextRequired
The address to stop sending to.
Reasonreasontext
Why, for your records, e.g. Asked to be removed.

Outputs

email_addresstext
idnumber
reasontext
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 IDreference_idtextRequired
The scheduled email's reference id, from the send step or List scheduled emails.

Outputs

cancelledtrue/false
messagetext
reference_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

NamenametextRequired
Up to 128 characters.
Sourcetemplate_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.
HTMLhtmltext
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 URLurltext
The web page to import the HTML from.Only when Source is Imported from a URL.

Outputs

htmltext
idnumber
plaintexttext
preview_imagetext
preview_urltext
processednumber
template_nametext
typetext
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

Templatetemplate_idtextRequired
The template to delete. Pick one, or type its id.

Outputs

deletedtrue/false
template_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_informationobject
current_planobject
emailtext
nametext
subscriptionobject
usagelist
user_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

countnumber
dayslist
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

Domaindomain_idtextRequired
The domain. Pick one, or type its numeric id.

Outputs

custom_hostname_trackingtrue/false
dns_recordsobject
domain_nametext
freetrue/false
idnumber
interaction_trackingtrue/false
return_pathtext
sandboxtrue/false
statisticsobject
statustrue/false
user_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 IDmessage_idtextRequired
The email's message_id, from Search email logs.

Outputs

collected_ontext
fromtext
message_idtext
raw_emailtext
totext
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

bouncednumber
clicksnumber
countrieslist
deliverednumber
opensnumber
suppressionsnumber
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

Templatetemplate_idtextRequired
The template. Pick one, or type its id.

Outputs

htmltext
idnumber
plaintexttext
preview_imagetext
preview_urltext
processednumber
template_nametext
typetext
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

Searchsearchtext
Only domains whose name contains this.
Sort bysort_bytext
How to order the domains.One of: id (Date added), domain_name (Domain name), delivered, bounced, opened, clicked.
Sort directionsort_dirtext
Ascending or descending.One of: asc (Ascending), desc (Descending).
Pagepagenumber
Which page to return, starting at 1.At least 1.
Page sizeper_pagenumber
How many to return per page (10 to 100).From 10 to 100.

Outputs

countnumber
domainslist
pagenumber
per_pagenumber
totalnumber
total_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

Domaindomaintext
Only this domain's emails. Required when the Sending Key was issued to an Application.
Pagepagenumber
Which page to return, starting at 1.At least 1.
Page sizeper_pagenumber
How many to return per page (1 to 100).From 1 to 100.

Outputs

countnumber
pagenumber
per_pagenumber
scheduled_emailslist
total_countnumber
total_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

Searchsearchtext
Only addresses containing this.
Pagepagenumber
Which page to return, starting at 1.At least 1.
Page sizeper_pagenumber
How many to return per page (10 to 100).From 10 to 100.

Outputs

countnumber
pagenumber
per_pagenumber
suppressionslist
totalnumber
total_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

Searchsearchtext
Only templates whose name contains this.

Outputs

countnumber
templateslist
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 IDidentifiertextRequired
The suppressed address, or the suppression's id.

Outputs

identifiertext
removedtrue/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 IDmessage_idtextRequired
The email's message_id, from Search email logs.

Outputs

message_idtext
reference_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 IDreference_idtext
The reference id a send step returned.
Message IDmessage_idtext
The email's Message-ID header.
Recipientrecipienttext
Emails sent to this address.
Sendersendertext
Emails sent from this address.
Subjectsubjecttext
Emails with this subject.
Outcomelog_typetext
Only emails with this outcome.One of: Delivered, Deferred, Suppressed, Bounced, Complained.
Tagstagsobject
Emails carrying these tags, e.g. campaign = welcome.
Match tagstags_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 IDapplication_idnumber
Only emails sent by this Maileroo Application.At least 1.
Fromdatetime_fromdate and time
Only emails sent at or after this time.
Todatetime_todate and time
Only emails sent at or before this time.
Orderordertext
Newest or oldest first.One of: newest (Newest first), oldest (Oldest first). Default: newest.
Pagepagenumber
Which page to return, starting at 1.At least 1.

Outputs

countnumber
has_moretrue/false
itemslist
pagenumber
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 addressfrom_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 namefrom_nametext
The sender's name, shown in the inbox, e.g. Acme Support.
SubjectsubjecttextRequired
Up to 255 characters. It can use the template's variables, e.g. 'Your order {{ order_id }}'.
Recipientsrecipientstext
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 bodyhtmltext
The email as HTML. Give exactly one of this, a plain-text body or a template.
Plain-text bodyplaintext
The email as plain text. Give exactly one of this, an HTML body or a template.
Templatetemplate_idtext
A saved template instead of a body. Pick one, or type its id.
Attachmentsattachmentslist
Files to attach - upload them or pick files from earlier steps. Up to 32 files, 25 MB in all.
Open and click trackingtrackingtext
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.
Tagstagsobject
Labels to find this email by later in the logs, e.g. campaign = welcome.
Extra headersheadersobject
Additional email headers, e.g. X-Campaign-Id = 42.

Outputs

countnumber
messagetext
reference_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 addressfrom_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 namefrom_nametext
The sender's name, shown in the inbox, e.g. Acme Support.
TototextRequired
Recipients, separated by commas. Each can be an address or 'Name <address>'.
SubjectsubjecttextRequired
Up to 255 characters.
HTML bodyhtmltext
The email as HTML. Give this, a plain-text body, or both.
Plain-text bodyplaintext
The email as plain text. Leave it empty to have Maileroo make one from the HTML.
Cccctext
Copy recipients, separated by commas.
Bccbcctext
Hidden recipients, separated by commas.
Reply-toreply_totext
Where replies go, if not the sender.
Attachmentsattachmentslist
Files to attach - upload them or pick files from earlier steps. Up to 32 files, 25 MB in all.
Send atscheduled_atdate and time
Schedule the email for later, up to 21 days ahead. Leave empty to send now.
Open and click trackingtrackingtext
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.
Tagstagsobject
Labels to find this email by later in the logs, e.g. campaign = welcome.
Extra headersheadersobject
Additional email headers, e.g. X-Campaign-Id = 42.
Reference IDreference_idtext
Your own 24-character hexadecimal id for this email. Leave empty and Maileroo makes one.

Outputs

messagetext
reference_idtext
scheduled_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 addressfrom_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 namefrom_nametext
The sender's name, shown in the inbox, e.g. Acme Support.
TototextRequired
Recipients, separated by commas. Each can be an address or 'Name <address>'.
SubjectsubjecttextRequired
Up to 255 characters. It can use the template's variables, e.g. 'Your order {{ order_id }}'.
Templatetemplate_idtextRequired
The template. Pick one, or type its id from the Templates page.
Template variablestemplate_dataobject
Values for the template's {{ variables }}, e.g. name = Jane.
Cccctext
Copy recipients, separated by commas.
Bccbcctext
Hidden recipients, separated by commas.
Reply-toreply_totext
Where replies go, if not the sender.
Attachmentsattachmentslist
Files to attach - upload them or pick files from earlier steps. Up to 32 files, 25 MB in all.
Send atscheduled_atdate and time
Schedule the email for later, up to 21 days ahead. Leave empty to send now.
Open and click trackingtrackingtext
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.
Tagstagsobject
Labels to find this email by later in the logs, e.g. campaign = welcome.
Extra headersheadersobject
Additional email headers, e.g. X-Campaign-Id = 42.
Reference IDreference_idtext
Your own 24-character hexadecimal id for this email. Leave empty and Maileroo makes one.

Outputs

messagetext
reference_idtext
scheduled_attext
Example output
{
  "message": "The email has been scheduled for delivery.",
  "reference_id": "6512a4f8b2c9e01d4f3a7b21",
  "scheduled_at": null
}

On this page