Resend Compatibility
SMTPfast is API-compatible with Resend. Switch by changing two values.
Overview
#The SMTPfast email API accepts the same request format as Resend. If you are already using Resend, you can switch to SMTPfast by updating the base URL and API key. No other code changes are needed.
/contacts endpoints.How to Switch
#Create an SMTPfast account and verify your sending domain
Create an API key in the SMTPfast dashboard
Replace the Resend base URL with https://smtpfa.st/api/v1 and swap your API key
Before and After
#Before (Resend)
import { Resend } from "resend";
const resend = new Resend("re_your_api_key");
await resend.emails.send({
from: "[email protected]",
to: "[email protected]",
subject: "Welcome!",
html: "<h1>Hello!</h1>",
});After (SMTPfast)
const res = await fetch("https://smtpfa.st/api/v1/emails", {
method: "POST",
headers: {
Authorization: "Bearer sf_live_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
from: "[email protected]",
to: "[email protected]",
subject: "Welcome!",
html: "<h1>Hello!</h1>",
}),
});
const { id } = await res.json();curl -X POST https://smtpfa.st/api/v1/emails \
-H "Authorization: Bearer sf_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"from": "[email protected]",
"to": "[email protected]",
"subject": "Welcome!",
"html": "<h1>Hello!</h1>"
}'import requests
res = requests.post(
"https://smtpfa.st/api/v1/emails",
headers={"Authorization": "Bearer sf_live_your_api_key"},
json={
"from": "[email protected]",
"to": "[email protected]",
"subject": "Welcome!",
"html": "<h1>Hello!</h1>",
},
)
data = res.json()Contacts
#SMTPfast supports Resend-style global contacts for subscriber state and personalization fields.
curl -X POST https://smtpfa.st/api/v1/contacts \
-H "Authorization: Bearer sf_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"firstName": "Steve",
"lastName": "Wozniak",
"unsubscribed": false,
"properties": { "company": "Acme" }
}'Compatible Fields
#| Field | Type | Notes |
|---|---|---|
| from | string | Sender address (required) |
| to | string | string[] | Accepts both formats |
| cc | string | string[] | Accepts both formats |
| bcc | string | string[] | Accepts both formats |
| reply_to | string | string[] | Accepts both formats |
| subject | string | Email subject line |
| html | string | HTML body |
| text | string | Plain text fallback |
| tags | array | Array of { name, value } pairs |
| headers | object | Custom email headers |
| scheduled_at | string | ISO 8601 date, up to 30 days ahead |
Key Differences
#API key prefix
Resend keys start with re_. SMTPfast keys start with sf_live_ or sf_test_.
Base URL
Resend uses https://api.resend.com. SMTPfast uses https://smtpfa.st/api/v1.
Open and click tracking
Resend turns tracking on or off per domain. SMTPfast uses account settings, which a single email can override with track_clicks and track_opens, the matching X-SMTPfast-Track-* headers, or a per-link opt-out. Code written for Resend sends the same request and needs no change. See Tracking per email.
No SDK required
SMTPfast is a simple REST API. You do not need an SDK or client library. Just use fetch, axios, requests, or any HTTP client.