# Email API

> Send, schedule, cancel, retry and forward transactional email with the Emailit REST API. SDKs for Node.js, PHP, Laravel, Python, Ruby, Go, Java, .NET and Rust. Start free.

The email API that gets out of your way. Send, schedule, cancel, retry and forward transactional email with one consistent REST API and SDKs for every major language.

## At a glance

- **1.67s** average time from request to inbox
- **40 MB** maximum message size, 25 MB per attachment
- **9** official SDKs and framework guides
- **24h** idempotency window for safe retries

## Send in one request

POST /v2/emails with HTML, plain text or a stored template. Attachments, inline images, CC, BCC, reply-to, custom headers and metadata are all first-class.

- Attachments as base64 or a URL, inline images with cid:
- Per-email open and click tracking overrides
- Idempotency-Key header to retry without duplicates

## Schedule, cancel and retry

Pass scheduled_at as ISO 8601, a Unix timestamp or plain English like “tomorrow at 9am”. Reschedule, cancel or retry failed sends from the API or the dashboard.

- Natural-language scheduling, converted to UTC
- Cancel scheduled or queued email before it leaves
- Retry bounced, failed or held email with one call

## Templates with real variables

Reference a published template by alias and pass variables. Temple supports nested paths, defaults and conditionals, so your code never concatenates HTML again.

- {{order.items.0.name}} nested paths
- {{first_name|"there"}} fallbacks for missing data
- {{#if plan}} … {{else}} … {{/if}} conditionals

## Features

- **Forward any email**: Resend a delivered email to a new recipient, as-is or with forwarded headers and a note.
- **Scoped API keys**: Full-access or send-only keys, optionally locked to a single sending domain.
- **Inspect everything**: Fetch the parsed body, raw MIME, attachments and metadata of any email.
- **Idempotent requests**: Retry network failures safely. Duplicate requests are ignored for 24 hours.
- **One filter syntax**: Filter and sort every list endpoint with the same predictable parameters.
- **Limits that grow with you**: Clear per-second and daily limits, raised automatically as your sending health improves.
- **SDKs for your stack**: Node.js, PHP, Laravel, Python, Ruby, Go, Java, .NET and Rust, plus cURL examples.
- **Events API**: Query every acceptance, delivery, open, click and bounce as structured events.
- **Compose in the dashboard**: Send a one-off email from any verified domain without writing a line of code.

## FAQ

### Which programming languages does the Emailit API support?

Any language that can make an HTTPS request. We maintain SDKs and guides for Node.js, PHP, Laravel, Python, Ruby, Go, Java, .NET and Rust, and every endpoint has a cURL example in the API reference.

### How fast are emails delivered?

Across all customers the average time from API request to the recipient’s inbox is about 1.7 seconds. You can see the exact timing of every delivery attempt in the email logs.

### What happens if I send the same request twice?

Send an Idempotency-Key header and Emailit returns the original response for repeated requests with the same key for 24 hours, so retries after a timeout never create duplicate emails.

### What are the API rate limits?

Workspaces start at 2 requests per second. The free Pay as you go plan can send 100 emails a day; Pro and Business start from 5,000 a day and are raised automatically as their sending health stays good. Any workspace can request a higher limit.

### Is there a free tier?

Yes. The Pay as you go plan includes 3,000 free credits every month, up to 100 emails a day. One API or SMTP email costs one credit.

## Links

- Documentation: https://emailit.com/docs/email-api/
- Pricing: https://emailit.com/pricing/
- Sign up: https://dash.emailit.com/register

---

Source: https://emailit.com/products/email-api/
