Requests and responses match Resend's API reference unless a note says otherwise. This page lists our limits and every route we serve.
Base URL
https://manzo.dev
Limits
API limits
Limit
Value
Emails in a batch
100
Recipients in to, cc or bcc
50
Custom headers
10
Subject length
998 characters
Files attached to one email
20
Attachments on one email
25 MB in total
How far ahead you can schedule
30 days
Addresses in a suppression batch
1,000
Webhooks per brand
10
Batch items can't carry attachments or scheduled_at. Set x-batch-validation to permissive to send the valid items and get errors for the rest. The default, strict, rejects the whole batch.
Pagination
List routes take limit, from 1 to 100, with a default of 20. To page, pass an object's ID as after or before, but not both. Lists return {"object": "list", "has_more": false, "data": []}.
Idempotency
Send Idempotency-Key on POST /emails and POST /emails/batch, 1 to 256 characters. The same key with the same body returns the first response for 24 hours.
Emails
GET /emails/:id/events is our addition. Resend's email object carries only the last event.
Emails routes
Route
What it does
POST/emails
Send one email
POST/emails/batch
Send up to the batch limit in one request
GET/emails
List emails, newest first
GET/emails/:id
Get one email. html and text are always null
GET/emails/:id/events
List an email's events, oldest first
PATCH/emails/:id
Change scheduled_at
POST/emails/:id/cancel
Cancel a scheduled email
Domains
Domains routes
Route
What it does
POST/domains
Add a domain. Takes name, stream and custom_return_path
GET/domains
List domains
GET/domains/:id
Get a domain and its DNS records
POST/domains/:id/verify
Check the DNS records now
DELETE/domains/:id
Remove a domain
API keys
API keys routes
Route
What it does
POST/api-keys
Create a key. Takes name, permission and domain_id
GET/api-keys
List keys
DELETE/api-keys/:id
Revoke a key
Templates
Templates routes
Route
What it does
POST/templates
Create a template
GET/templates
List templates
GET/templates/:ref
Get a template by ID or alias
PATCH/templates/:ref
Update a template
DELETE/templates/:ref
Delete a template
POST/templates/:ref/publish
Publish the current draft
POST/templates/:ref/duplicate
Copy a template
GET/templates/:ref/versions
List published versions
POST/templates/:ref/versions/:version/rollback
Go back to a published version
Webhooks
The test, event, attempt and replay routes are our additions.
Webhooks routes
Route
What it does
POST/webhooks
Create an endpoint. Returns signing_secret once
GET/webhooks
List endpoints
GET/webhooks/:id
Get an endpoint
PATCH/webhooks/:id
Update an endpoint
DELETE/webhooks/:id
Remove an endpoint
POST/webhooks/:id/signing-secret/rotate
Replace the signing secret
POST/webhooks/:id/test
Send a test event
GET/webhooks/:id/events
List deliveries
GET/webhooks/:id/events/:eventId
Get one delivery
GET/webhooks/:id/events/:eventId/attempts
List a delivery's attempts
POST/webhooks/:id/events/:eventId/replay
Send a delivery again
Suppressions
Suppressions routes
Route
What it does
POST/suppressions
Add one address
GET/suppressions
List addresses. Filter with origin: bounce, complaint or manual
GET/suppressions/:idOrEmail
Get one entry
DELETE/suppressions/:idOrEmail
Remove one entry
POST/suppressions/batch/add
Add many addresses
POST/suppressions/batch/remove
Remove many addresses
Contacts
Contacts routes
Route
What it does
POST/contacts
Create a contact
GET/contacts
List contacts
GET/contacts/:ref
Get a contact by ID or email
PATCH/contacts/:ref
Update a contact
DELETE/contacts/:ref
Delete a contact
GET/contacts/:ref/segments
List a contact's segments
POST/contacts/:ref/segments/:segmentId
Add a contact to a segment
DELETE/contacts/:ref/segments/:segmentId
Remove a contact from a segment
POST/contacts/imports
Import contacts, with a consent confirmation
GET/contacts/imports
List imports
GET/contacts/imports/:id
Get one import
Segments
Segments routes
Route
What it does
POST/segments
Create a segment
GET/segments
List segments
GET/segments/:id
Get a segment
PATCH/segments/:id
Rename a segment
DELETE/segments/:id
Delete a segment
GET/segments/:id/contacts
List a segment's contacts
Audiences
The older name for segments, kept so that existing Resend code still works.