Sender Addresses & Domain Rate Limits
Manage the local part of your sending address and configure per-domain recipient throttling.
Sender addresses
Each tenant has a sender address -- the localpart@domain from which email is sent. By default this is a system-assigned address on the shared agent.molted.email domain. Once you add and verify a custom domain, you can update the local part to match your brand.
List sender addresses
GET https://api.molted.email/v1/me/sender-addressescurl https://api.molted.email/v1/me/sender-addresses \
-H "Cookie: YOUR_SESSION_COOKIE"[
{
"id": "addr_abc123",
"localPart": "hello",
"domain": "notifications.yourcompany.com",
"isDefault": true,
"status": "active"
}
]Update the local part
PATCH https://api.molted.email/v1/me/sender-addresscurl -X PATCH https://api.molted.email/v1/me/sender-address \
-H "Cookie: YOUR_SESSION_COOKIE" \
-H "Content-Type: application/json" \
-d '{"localPart": "notifications"}'Local part requirements
- 2 to 64 characters
- Lowercase alphanumeric characters, dots (
.), and hyphens (-) - No leading or trailing dots/hyphens
- No consecutive dots or hyphens
- No reserved names (e.g.,
postmaster,abuse,noreply)
Domain rate limits
Per-domain rate limits throttle how many emails your tenant sends to any single recipient domain (e.g., gmail.com) within an hour. This protects your sender reputation when sending to large consumer domains.
Get domain rate limits
GET https://api.molted.email/v1/agent/domains/:domainId/rate-limitscurl "https://api.molted.email/v1/agent/domains/DOMAIN_UUID/rate-limits" \
-H "Authorization: Bearer YOUR_API_KEY"{
"domainHourlyLimit": 500,
"domainHourlyLimitTransactional": null
}| Field | Description |
|---|---|
domainHourlyLimit | Max emails per recipient domain per hour (all sends). |
domainHourlyLimitTransactional | Separate limit for transactional sends. null means no limit is applied. |
Update domain rate limits
PATCH https://api.molted.email/v1/agent/domains/:domainId/rate-limitscurl -X PATCH "https://api.molted.email/v1/agent/domains/DOMAIN_UUID/rate-limits" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domainHourlyLimit": 1000,
"domainHourlyLimitTransactional": 200
}'Set a field to null to remove that limit.
Portal endpoints
Domain rate limits can also be managed from the portal using cookie auth:
| Method | Path | Description |
|---|---|---|
GET | /v1/me/domains/:domainId/rate-limits | Get domain rate limits. |
PATCH | /v1/me/domains/:domainId/rate-limits | Update domain rate limits. |
What happens when a domain rate limit is exceeded
Sends blocked by a domain rate limit are rejected with reason domain_throttled:
{
"requestId": "req_abc123",
"status": "blocked",
"reason": "domain_throttled"
}Transactional sends with no transactional limit set are exempt from domain throttling.
Related reading
- Rate Limits -- tenant-level monthly, daily, and hourly send quotas
- Sending Domains -- adding and verifying custom domains
- Domain Warmup -- warmup schedule for new domains