PristineSend.ai
Get started
API Reference

Send email

Send a transactional email through your workspace's connected Resend account. The send is logged and the Resend message ID is returned.

Endpoint

POST/api/v1/send

Request headers

HeaderValue
AuthorizationBearer ps_live_YOUR_API_KEY — required
Content-Typeapplication/json — required

Request body

JSON object with the following fields:

FieldTypeRequiredDescription
tostringrequiredRecipient email address.
subjectstringrequiredEmail subject line.
htmlstringrequiredHTML body of the email.
fromstringoptionalSender address. Defaults to noreply@pristinesend.com. Use a verified domain address for best deliverability.

Example request body:

{
  "to": "recipient@example.com",
  "subject": "Your order has shipped!",
  "html": "<h1>It's on the way</h1><p>Track your order at...</p>",
  "from": "orders@yourdomain.com"
}

Response

On success the API returns 200 with:

{
  "success": true,
  "id": "re_abc123xyz",
  "message": "Email sent successfully"
}

On validation failure the API returns 400:

{
  "error": "Missing required fields: to, subject, html"
}

See Error codes for the full list of possible errors.

Code examples

"color:#79c0ff">curl "color:#ff7b72">-X POST https://pristinesend.com/api/v1/send \
  "color:#ff7b72">-H "Authorization: Bearer ps_live_YOUR_API_KEY" \
  "color:#ff7b72">-H "Content">-Type: application/json" \
  "color:#ff7b72">-d "color:#a5d6ff">'{
    "to": "recipient@example.com",
    "from": "orders@yourdomain.com",
    "subject": "Your order has shipped!",
    "html": "<h1>It\'s on the way</h1>"
  }'

Rate limits

Rate limits are inherited from your Resend plan. PristineSend imposes no additional per-request limits, but bulk sends should use the campaign API (coming soon) rather than looping over individual /send calls.