ZapSMTP / Email API

An email API that fits your code.

Send transactional and broadcast email with a familiar API. From a single request to the event that follows, keep your email workflow in your application.

Create your API key

Verify a sending domain and create a server-side API key. Use a test key while building.

Make your first request

Send directly over HTTP or connect a compatible SDK to your account’s API endpoint.

Follow the event

Verify signed webhooks and keep your application in sync with email events.

POST/v1/emailsNode.js
const response = await fetch(
  process.env.ZAPSMTP_API_URL, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer zap_your_api_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    from: 'hello@yourdomain.com',
    to: ['delivered@simulator.zapsmtp.com'],
    subject: 'You’re all set.',
    html: '<p>Your next big thing starts here.</p>'
  })
});
Set ZAPSMTP_API_URL to your account’s send endpoint.
Try a delivery scenario.Local simulation. No real email is sent.

Batch sending

Up to 100 emails per request, with strict or permissive validation.

Scheduled sending

Prepare email in advance. Cancel or reschedule before it goes out.

Transactional & broadcast streams

Separate streams keep marketing traffic from affecting your password resets.

One-click unsubscribe

RFC 8058 one-click unsubscribe on broadcast email, as Gmail and Yahoo require.

Open & click tracking

Enable tracking per domain. Both are off by default.

Tags & metadata

Attach your own IDs and find them in every event.

Attachments by URL

Attach a file by URL instead of including its content in the request.

Sender name per domain

Set a default display name for each sending domain.

Reusable templates

Keep email content separate from application logic.

Idempotent requests

Retry an interrupted request without duplicating email sends.

The right key for each job.

Test without delivery.

Test keys (zap_test_…) run the full pipeline and never deliver.

Keep access specific.

Restrict a key to one domain and one stream, and set an expiry date.

Know what happened.
And what happens next.

Signed events keep your app in sync. Replay any event, inspect the delivery log for every attempt, and rotate signing secrets without downtime. Failing endpoints are disabled automatically.

Explore webhooks

A view of your sending.

Review statistics over time and by mailbox provider. Connect delivery, bounce, and complaint events to the messages your application sends.

Plan limits

API and SMTP are included in every plan. Free includes 3,000 emails per month, one domain, and three days of logs. Pro includes ten domains and 30 days of logs; Scale includes unlimited domains and 90 days of logs.

Compare plans

Good to know

Verify your domain before production sending. Keep API keys and SMTP passwords on your backend. Delivery depends on content, reputation, authentication, and the receiving provider; an accepted request does not guarantee inbox placement.

Send your first email.

Your next email starts with a few lines of code.

Start building 3,000 emails / month free