Skip to content

Developers

Send email from your app with one API call

Send receipts, OTPs, alerts and statements from your own systems. They get the same templates, suppression lists and deliverability checks as your campaigns.

  • REST API with API keys per workspace
  • Templates with variables
  • Delivery, bounce and complaint tracking
  • 300 free emails every month to build and test
// Send an e-statement notice
const res = await fetch("https://api.mailnitio.com/v1/emails", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.MAILNITIO_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    from: "statements@acmebank.com",
    to: "ada@example.com",
    template: "october-statement",
    data: { name: "Ada", balance: "₦250,000.00" }
  })
});
// → 202 { "id": "em_01JB8Q…", "status": "queued" }

What you can send

The email your app sends every day

Transactional email is the message your customer is expecting. Mailnitio sends it quickly and reports what happened to it.

Receipts and statements

Send a branded receipt or e-statement the moment a payment clears, with the customer's own figures filled in.

One-time passcodes

Deliver sign-in and verification codes quickly, from an address your customers recognise.

Alerts and notices

Warn customers about account activity, security changes or service updates as they happen.

Anything from a template

If your app can fill in a template, it can send it. Keep the layout in Mailnitio and the data in your code.

REST API

One endpoint, one key per workspace

Authenticate with a Bearer key, post a small JSON body and you are done. No SDK is required.

  • POST JSON to /v1/emails and get a 202 straight back
  • One API key per workspace, revoked in a click
  • Send from your own verified domain
  • Errors return a clear code and message
Request and responsePOST /v1/emails
Endpoint
https://api.mailnitio.com/v1/emails
Header
Authorization: Bearer mn_live_…
Body
{
  "from": "statements@acmebank.com",
  "to": "ada@example.com",
  "template": "october-statement",
  "data": { "name": "Ada" }
}
Response202 Accepted
{ "id": "em_01JB8Q…", "status": "queued" }
october-statementTemplate

Your October statement is ready

Hello {{name}}, your balance on 31 October was {{balance}}.

Filled in for Ada: "Hello Ada, your balance on 31 October was ₦250,000.00."

Templates

Design once, fill in from your code

Your team builds the template with reusable brand blocks. Your app only sends the variables, so a change to the design never needs a deploy.

  • Variables for names, amounts, links and codes
  • Shared with Reach, so your brand stays consistent
  • Preview before you publish

Tracking and webhooks

Know what happened to every email

Delivery, bounce and complaint events appear in your workspace and can be sent to your own endpoint as webhooks.

  • Delivered, bounced and complained events per email
  • Webhooks to your own HTTPS endpoint
  • Search any email by its id
EventsLive
  • email.delivered

    em_01JB8Q4K

    Delivered
  • email.bounced

    em_01JB8Q4M

    Bounced
  • email.complained

    em_01JB8Q4N

    Complained
  • email.delivered

    em_01JB8Q4P

    Delivered

One suppression list for everything you send

An address that bounces from an alert is also skipped by your next campaign, and the other way round. Your sender reputation is protected without any extra work.

Suppression lists

Shared with Reach

Hard bounces and complaints are suppressed automatically. Add your own opt-outs and they apply to the API and to campaigns alike.

See how Reach handles campaigns

Quick start

From zero to first email in three steps

  1. Step 1

    Create an API key

    Ask for access, then create a key for your workspace and store it as a secret in your app.

  2. Step 2

    Verify your domain

    Add the SPF, DKIM and DMARC records Mailnitio gives you, so your email lands in the inbox.

  3. Step 3

    Send your first email

    Pick a template, POST the data and watch it arrive. Delivery appears in your workspace straight away.

Pricing

Pay for what you send

Start free, then buy blocks of emails as you grow. Prices exclude VAT.

  • Free

    Freea month

    300 emails every month to build and test.

    • REST API and API keys
    • Templates with variables
    • Delivery and bounce tracking
  • Pay as you go

    Most chosen

    $13per 25,000 emails

    Buy blocks of 25,000 emails when you need them.

    • Everything in Free
    • Suppression lists shared with Reach
    • Dedicated IP on request
    • Email support

Compare all plans

FAQ

Questions developers ask

What does the API return?

A 202 response with an id and a status of "queued". The email is sent in the background, and delivery, bounce and complaint events follow by webhook or in your workspace.

Can I send from my own domain?

Yes. Verify your domain with SPF, DKIM and DMARC records and send from any address on it, such as statements@yourcompany.com.

How do templates and variables work?

You build a template once in Mailnitio, with placeholders such as name and balance. Each API call names the template and passes the values to fill in.

What happens when an address bounces or complains?

Mailnitio adds it to your suppression list automatically, so you stop sending to it. The same list protects your Reach campaigns.

What does it cost?

The first 300 emails every month are free. After that you buy blocks of 25,000 emails as you need them. See the plans below for current prices.

Do I need a marketing plan to use the API?

No. Developers is billed only by what you send. Add Reach later if you also want to run campaigns.

Get started

Send your first email today.

Get an API key and send 300 emails a month for free while you build.