Migration from Resend
Also migrating from other providers?
If you are moving an existing Resend integration, the Ranla send flow maps closely:
- Bearer API keys
POST /emailswith a familiar JSON body- Webhooks / activity for delivery outcomes
The main migration steps are:
- swap the base URL
- swap your API key to
rnl_... - verify a sending domain in Ranla
- update any provider-specific optional fields
Quick mapping
| Resend | Ranla |
|---|---|
https://api.resend.com |
https://api.ranla.ai |
re_... API key |
rnl_... API key |
POST /emails |
POST /emails |
from must be verified |
from must be verified |
| dashboard activity | dashboard activity + deliverability summary |
Minimal curl diff
curl -X POST https://api.ranla.ai/emails \
-H "Authorization: Bearer $RANLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "[email protected]",
"to": "[email protected]",
"subject": "Hello",
"html": "<p>It works.</p>"
}'Accepted payload aliases
Ranla accepts a few migration-friendly aliases on the HTTP send API:
htmlBodyorhtml_body->htmltextBody,text_body, orplain_body->textreplyTo->reply_toscheduledAt->scheduled_at
Attachment aliases are also accepted:
filename->namecontentType->content_typecontent->datacontentId->content_id
These aliases are meant to make low-friction migrations easier; new code should still prefer the canonical field names in docs/examples.
Domain verification differences
Unlike provider-managed sandbox products, Ranla expects you to verify your own sending domain for production traffic.
Before DNS is ready, you can still self-test with the shared sandbox sender:
{
"from": "[email protected]",
"to": "[email protected]",
"subject": "Sandbox check",
"html": "<p>Sandbox works.</p>"
}Sandbox restriction:
- the sandbox
fromdomain is only allowed when all recipients match the account email on the API key owner
Once your own domain is verified, switch from back to your branded domain.
DNS apply
Ranla can write DNS for you in two ways:
- Cloudflare: save a token once under Settings -> Integrations
- GoDaddy: paste one-time API credentials on the domain detail page, or pass them through the SDK/CLI locally
See docs/api/domains.md.
SMTP
If your old integration still depends on SMTP, create credentials in the dashboard (SMTP) or via POST /smtp-credentials, then connect to smtp.supersendtx.com:587 with username supersendtx. Same verified domains and plan limits as the HTTP API. Prefer POST /emails for new app code. Details: docs/api/smtp.md.