Transactional emailyour users actually get

Send login codes, receipts and invites from your code or over SMTP. Every delivery, open and bounce lands in one timeline.

Get Started

One key,API or SMTP.

Use an SDK, plain HTTP or any SMTP client. Same key, same logs and the same webhooks.

const { id } = await inboxjot.emails.send({
  from: 'Acme <hello@acme.dev>',
  to: 'riti@example.com',
  subject: 'Your receipt from Acme',
  html: '<p>Thanks for your order.</p>',
});
202 Accepted{ "id": "em_01JB7Q4R" }84 ms

Official SDKs

Node.js, Python and Go, or plain HTTP from anything else.

Host
smtp.inboxjot.com
Port
587, 2525 or 465
Username
inboxjot
Password
Your API key
Encryption
STARTTLS or TLS
Authentication
PLAIN or LOGIN
Max size
40 MB

Plug in SMTP

Point any SMTP client at Inboxjot and use your API key as the password.

Every email,traced to the inbox.

Each send gets a timeline: when it was accepted, delivered, opened and clicked, and by whom.

  • Every Event, in OrderQueued, sent, delivered, opened and clicked, each with its own time.
  • Device and PlaceSee the mail app, device and city behind every open and click.
  • The Server’s Own ReplyRead the exact answer from Gmail or Outlook when a send goes wrong.

Your receipt from Acme

DeliveredClicked

1 Oct 2026 at 12:04 PM via API

DeliveredView SourceResend
Inboxjotus-east-1

Clicked 5 minutes after sending

Delivered in 0.8s, first opened 2m 27s later on Apple Mail.

Queued12:04:12
Sent12:04:12
Delivered12:04:13
Opened12:06:40
Clicked12:09:05
Sent withacme-dev
Accepted bygmail-smtp-in.l.google.com
TimelineAll Events

Today

Riti clicked acme.dev/receipts/1078

12:09 pm
Apple MailiPhoneDhaka, BD

Riti opened the email again

12:08 pm

Riti opened the email

12:06 pm
Apple MailiPhoneDhaka, BD

Gmail accepted the email for riti@example.com

12:04 pm

250 2.0.0 OK 1727784240 d75a77b69052e-gsmtp

Remote MTA gmail-smtp-in.l.google.com · 0.8s

Inboxjot sent the email from acme.dev

12:04 pm
Show details

The Production API key queued this email

12:04 pm

Retry all you like,it sends once.

Send an Idempotency-Key, and a retry gets the first response back, not a second email.

  • Keys are kept for 24 hours
  • A retry replays the first success
  • A different body with the same key is refused
  1. POST /v1/emails10:42:07
    Idempotency-Key: order-1078
    Sending
  2. POST /v1/emails10:42:09
    Idempotency-Key: order-1078
    Checking key
  3. POST /v1/emails10:42:12
    Idempotency-Key: order-1078
    Checking key
  4. POST /v1/emails10:42:20
    Idempotency-Key: order-1078
    Checking key
Production APIhttps://api.acme.dev/webhooks/inboxjot
200email.deliveredDelivered in 84 ms11:47 AM
200email.sentDelivered in 84 ms11:46 AM
200email.clickedDelivered in 84 ms11:45 AM
500email.bouncedRetrying in 30 s11:44 AM
200contact.updatedDelivered in 84 ms11:43 AM
200email.openedDelivered in 84 ms11:42 AM
200email.deliveredDelivered in 84 ms11:41 AM

Every event,right in your app.

A signed webhook for each delivery, open, click and bounce, so your app can react the moment it happens.

  • Signed with your endpoint’s secret
  • Retried when your app is down
  • Every attempt kept in the logs

Keep your domaintrusted by every inbox.

We check your DNS records as you add them, and skip anyone who bounced, complained or unsubscribed.

send.acme.co.uk

0 of 6 verified

Type

Name

Status

CNAME

k7x._domainkey

Pending
CNAME

p2m._domainkey

Pending
CNAME

w9d._domainkey

Pending
MX

send

Pending
TXT

send

Pending
TXT

_dmarc

Pending

Verify Domains Fast

SPF, DKIM and DMARC checked as you go, with what is missing.

  • kamran@example.orgBounced
  • sukhamoy@example.comComplained
  • iris.vale@example.netUnsubscribed
  • akhi@example.comBounced
  • sam.chen@example.comUnsubscribed
  • ada@example.ioComplained

Stop Bad Sends for You

Bounces, complaints and unsubscribes are skipped next time.

And everything elseyou expect from an email API.

  • Scheduled Sends

    Pick a time, then move or cancel it before it goes out.

  • Batch Sends

    Send many emails in one call, each with its own result.

  • Templates

    Send a saved template and fill it with your own data.

  • Attachments

    Add files to any email, from the API or SMTP.

  • Tags

    Label each send so you can find it in the logs later.

  • Custom Headers

    Set your own headers, like List-Unsubscribe or a reply ID.

  • Open and Click Tracking

    On your own tracking domain, turned on per domain.

  • Logs for Every Call

    Every API request and response, kept and searchable.

Questionsabout transactional email

More fromInboxjot

Your first emailis one prompt away

We review every new account, usually within a day.