Email API for developers

Send transactional email with one API call. If something looks wrong, we review before we block, tell you why, and give you 72 hours to reply.

Starter is free, no card No domain cap A reason for every block
202 Accepted { "id": "em_8f2c…", "status": "queued" }0 ms
queued+0 ms
sent+180 ms
delivered+1.4 s
webhooksigned
Amazon SES deliveryNo domain capSMTP on 465 and 587Signed webhooksIdempotency keysBatch up to 100Plain-English bouncesCursor paginationNo seat charges72-hour appeals
The fair-review promise

No surprise bans. Ever.

An alarm opens a review, never a block. A person looks, writes down the reason, and you get time to answer.

UsualSuspended overnight. A form reply. No date to fix it by.
OursReview first, written reason, 72 hours, refund if we part ways.
01

We notice

Bounces or complaints climb. Our health check opens a review. Your account stays as it was.

Within 15 minutes
02

A person looks, you keep sending

Someone on our team reads the numbers. Your email keeps flowing while we look.

Within 24 hours
03

We explain in writing

If something must change, you get the reason, the figures behind it and what would fix it.

Always a written reason
04

You get 72 hours

Reply, fix the list, or appeal. Nothing closes before the clock runs out.

72 hours, every time
05

Refund if we close

If we do part ways, unused prepaid time comes back to your card. No argument.

Within 5 business days
Deliverability coach

Land in the inbox, and know why.

Most email problems are fixable before anyone gets blocked. The coach checks your setup, your content and your pace, and says what to do in plain words.

Check an email

Try it. Type a subject line.

The same kind of checks the dashboard runs before you send. Ours, said openly, and no promise about any inbox.

Likely to land in spam
    DNS and DMARC

    Every record, checked and explained.

    • DKIM 3 keysVerified
    • SPF send.acme.comVerified
    • Bounce MXVerified
    • DMARC p=noneTip

    DMARC is only watching. Move to p=quarantine once reports look clean.

    Bounces in plain words

    Not a code. A reason and a next step.

    550 5.1.1 <sam@exmaple.com>: Recipient address rejected: User unknown
    5.1.1Bounced for good

    This mailbox does not exist at that domain. We have stopped sending to it, so it cannot hurt your reputation.

    Warm-up plan

    A pace for a new domain, from 50 a day to 50,000.

    Advice, never a hidden limit. Go over and the coach tells you; your email still sends.

    Day 1 · 50Day 7 · 3,000Day 13 · 50,000
    The dashboard

    Every email, every step, in one log.

    Queued, sent, delivered, opened, bounced. Search, filter, replay a webhook, or ask the coach what went wrong.

    Example dashboard with sample data

    For developers

    The boring parts, done properly.

    One REST API and an SMTP relay. Everything you would otherwise build around them is already here.

    Webhooks

    Signed events, retried until you answer.

    Standard Webhooks signatures, eight retries, and a replay button for every delivery. Private and internal addresses are refused.

    webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=
    SMTP relay

    Any app that speaks SMTP.

    # same rules, limits and log as the API host smtp.mailcandor.com port 465 (TLS) or 587 (STARTTLS) user mailcandor pass mc_live_…
    Idempotency

    Send twice, deliver once.

    Idempotency-Key: order-1042-receipt # a retried request returns the # first response, not a second email
    Batch

    A hundred emails, one call.

    100per request
    Rate limits

    Limits you can read.

    ratelimit-limit: 10 ratelimit-remaining: 9 ratelimit-reset: 1
    Teams

    Invite everyone. No seat charges.

    Admins manage keys, domains and webhooks. Members see the log.

    Pricing

    Pay for what you send. We pick the cheaper plan.

    No monthly floor, no domain cap, no daily limit. Prices in US dollars.

    50,000emails
    01,0001M
    Pay as you goFirst 3,000 free, then $0.50 per 1,000
    $23.50
    Team$39 with 100,000 included
    $39.00
    You payPay as you go is cheaper here
    $23.50

    Starter

    For side projects and testing
    $0 / month
    3,000 emails a month
    • No daily cap
    • 3 domains
    • 30 days of logs
    • No card needed
    Start sending
    Most teams start here

    Pay as you go

    For apps that are growing
    $0 / month
    First 3,000 free, then $0.50 per 1,000
    • Unlimited domains
    • 30 days of logs
    • 10 requests a second
    • Never stops at a limit
    Start sending

    Team

    For teams sending at volume
    $39 / month
    100,000 included, then $0.40 per 1,000
    • Unlimited domains
    • 90 days of logs
    • 50 requests a second
    • Dedicated IP, $25 a month
    Start sending

    You never pay more than the cheapest plan for your month. Above 81,000 emails, Team costs less than Pay as you go, so we bill the Team price without you switching. Changed plan during a month? That month's emails are billed at the paid plan you used, and the Team fee only for the days you were on Team.

    Cancel in one clickFrom Settings. No email, no call.
    Warned at 80%We email you before you reach your included emails.
    No seat chargesInvite the whole team.
    Refunds if we close youUnused prepaid time, back within 5 business days.
    Questions

    Straight answers.

    What happens if my bounce rate spikes?

    We open a review and keep sending while a person looks. If something has to change, you get the reason in writing and 72 hours to reply or appeal before anything closes.

    Do you charge per domain or per seat?

    No. Pay as you go and Team have unlimited domains, and every plan lets you invite the whole team for free.

    Who actually delivers the email?

    Amazon SES. We add the review process, the coach, the log, webhooks, the relay and the billing on top.

    Can I use SMTP instead of the API?

    Yes. Point any SMTP client at smtp.mailcandor.com on port 465 or 587 with an API key as the password. It follows the same rules and shows up in the same log.

    Can I send before my domain is verified?

    New teams start in a sandbox: you can send to people on your own team. Verify a domain and you can send to anyone.

    How do I cancel?

    One click in Settings. Monthly plans stop at once; yearly plans stop renewing. If we ever close your account, unused prepaid time is refunded within 5 business days.

    Starter is free

    Send your first email today.

    One API key, one verified domain, one call. If anything ever looks wrong, you will hear from a person first.