Send email from your code with one request
POST your email as JSON to https://api.iresendly.com/emails from your server. Batch, schedule and retry safely without sending anything twice.
Everything in sending api
- Everything a send needs
Set to, cc and bcc (up to 50 addresses each), reply-to, HTML up to 2 MB or plain text, and custom headers.
- Batches of 100
POST /emails/batch sends up to 100 emails in one request. Choose whether one invalid email fails the batch or is returned as an error.
- Attachments
Up to 50 files and 40 MB per email, as base64 or a public URL we download. Inline images work with content_id.
- Schedule up to 30 days ahead
Set scheduled_at to a time or to something like “in 2 hours”. Reschedule or cancel it, and a cancelled email goes back to your quota.
- Safe retries
Send an Idempotency-Key header and, for 24 hours, repeating the request returns the first response instead of sending again.
- Tags
Add up to 10 tags to each email to find it later. They come back in every webhook event for that email.
One REST API for every email you send
Send one email or a batch of 100, schedule it, retry it safely, and read what went wrong in plain words. Pick a call to see the exact request and response.
One call with from, to, subject and html. Tags label it for your own reports.
Sample ids, addresses and timings. Field names, headers and errors are the API's own.
- Rate limit on Pro10req/s
Free 2, Scale 25. Each response carries ratelimit headers.
- In one batch request100emails
Strict by default, or permissive to send the valid ones.
- Idempotency window24hours
A retry with the same key never sends twice.
- Schedule ahead30days
ISO 8601 or plain words, then move or cancel it.
- GET/emails
- GET/emails/:id
- POST/emails/:id/cancel
- POST/domains
- POST/domains/:id/verify
- PATCH/domains/:id
- POST/api-keys
- GET/api-keys
- DELETE/api-keys/:id
- POST/contacts
- POST/segments
- POST/contacts/:id/segments/:segmentId
- POST/broadcasts
- POST/broadcasts/:id/send
- POST/templates
- POST/templates/:id/publish
- POST/webhooks
- PATCH/webhooks/:id
- Base
- api.iresendly.com
- Auth
- Bearer irs_…
- Paging
- limit, after, before
From first step to done
- 1Verify a domainAdd the domain you send from and publish its three DNS records.
- 2Create an API keyStore it in your server's environment. It's shown once.
- 3Call POST /emailsSend JSON over HTTPS from any language, or any email SDK that lets you set its base URL. Calls from browsers are blocked.
- 4Follow what happenedWatch each email under Emails in the console, or get its events with a webhook.
- Emails per batch
- 100
- Recipients per field
- 50
- Attachments
- 50 files · 40 MB
- Schedule ahead
- 30 days
- Requests a second
- Free 2 · Pro 10 · Scale 25
- Emails a month
- Free 3,000 · Pro 50,000 · Scale 100,000
Ship email today
Start free with 3,000 emails a month. Upgrade only when you need more.
- 3,000 emails a month free
- No credit card needed
- Upgrade anytime
- 1Create your free accountGet an API key in seconds.
- 2Verify a sending domainAdd the DNS records we show you.
- 3Send with one requestcURL, Node.js, Python: plain HTTP.