sendapi.email
Made for Europe, sent from Stockholm

Pay for emails, not months

Credits never expire. Send sign-in codes, receipts and alerts from your own domain, and follow every email from queued to delivered.

Launch offer1,000 free emails that never expire for the first 100 accounts100 places left
POST /v1/emails
curl -X POST https://sendapi.email/v1/emails \
  -H "Authorization: Bearer $SENDAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Your App <[email protected]>",
    "to": "[email protected]",
    "subject": "Your sign-in code",
    "text": "Your code is 482913"
  }'
const res = await fetch("https://sendapi.email/v1/emails", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SENDAPI_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "Your App <[email protected]>",
    to: "[email protected]",
    subject: "Your sign-in code",
    text: "Your code is 482913",
  }),
});
const { id } = await res.json();
import os, requests

res = requests.post(
    "https://sendapi.email/v1/emails",
    headers={"Authorization": f"Bearer {os.environ['SENDAPI_API_KEY']}"},
    json={
        "from": "Your App <[email protected]>",
        "to": "[email protected]",
        "subject": "Your sign-in code",
        "text": "Your code is 482913",
    },
)
email_id = res.json()["id"]
202 Accepted{ "id": "em_01JCB3Z4K7R2M9Q8T5V6W3X1", "status": "queued" }
em_01JCB3Z4K7R2M9Q8T5V6W3X1
Your sign-in code
Delivered
  1. queuedAPI key: Production
    10:00:00
  2. sentAccepted for delivery
    10:00:01
  3. delivery250 Message received
    10:00:02
  4. openCounted
    10:03:12
GET /v1/emails/{id}See the response
Features

What every account gets

Made for Europe

The body, attachments and header values are deleted once an email is sent.

  1. Your appPOST /v1/emails
  2. SendAPI.emailOur server in the EU
  3. Outgoing mailStockholm, Sweden
  4. InboxYour recipient

Your own domains

Add up to 5 domains free, or 10 once you buy any pack. Sending starts once their 3 DNS records are verified.

Every event, per email

Delivery, bounces, spam complaints, opens and clicks, on each email in the panel and through the API.

Suppression list built in

Hard bounces and spam complaints are recorded, and those addresses are skipped on later sends.

Safe retries

Send an Idempotency-Key, and a repeated request returns the first email instead of sending twice.

Attachments and headers

Up to 10 attachments and 10 custom headers per email, such as List-Unsubscribe.

Credits never expire

Buy a pack once and use it this month or next year. No monthly fee, and no unused emails lost.

One price per email

Each recipient uses one credit. No overage fees and no plan to outgrow.

How it works

From sign-up to first email

  1. 01

    Create an account

    Sign up with an email code or Google. No card needed.

  2. 02

    Add your domain

    Put the 3 DNS records the panel shows at your DNS provider.

  3. 03

    Create an API key and send

    Call POST /v1/emails from your server.

Pricing

From $0.40 per 1,000 emails

Prepaid packs from $5 to $100. The bigger the pack, the less each email costs.

Launch offer

1,000 free emails for the first 100 accounts

Instead of 100. Like every credit, they never expire.

100 of 100 leftClaim yours
5,000 emails
$1.00 per 1,000 emails
$5
$5$10$20$50$100
Try it free
  • Credits never expire. Use them this month or next year.
  • One credit per recipient. No monthly fee and no overage charges.
  • Up to 10 domains. 5 before your first pack.
  • Every feature in every pack. Events, suppressions, API keys and safe retries.
  • 1,000 free emails to start. For the first 100 accounts, then 100. No card needed.

Try first, then pay

Create an account, add your domain and send your first emails free. When you need more, buy a pack. Credits never expire.