Skip to Content
Public APISend Email

Send Email

Send a transactional email — order confirmations, password resets, OTPs, receipts — to a single recipient. Same sk_live_… API key as the WhatsApp send endpoints.

Prefer SMTP? Most CMS / eCommerce platforms (WordPress, Magento, Shopify) and frameworks (Django, Laravel, Rails) integrate with email via SMTP rather than a REST API. See SMTP Setup for drop-in credentials — same pricing, same pipeline, same DKIM signing.

Marketing vs transactional: this endpoint is transactional only (₹0.05/email beyond the daily-100 free tier). For marketing blasts to a list, use the in-app /email/campaigns flow which carries a per-campaign analytics shape (open rate, click rate, unsubscribes).

Prerequisites

  1. Plan with email_marketing enabled — free during trial; paid plans need the Email Marketing feature flag set by the platform admin.
  2. A verified sender domain at Settings → Email Domain . The from_email you pass must be on a verified domain (or mail.splashifypro.com for transitional sends without your own DKIM).
  3. A sk_live_… API key from Settings → Developer .

Endpoint

POST https://apis.splashifypro.com/api/v1/public/email/send

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/json

Request body

{ "to": "alice@example.com", "subject": "Your order #1234 is confirmed", "html": "<p>Hi Alice,</p><p>Thanks for your order.</p>", "text": "Hi Alice,\nThanks for your order.", "from_name": "Acme Store", "from_email": "orders@acme-store.com", "reply_to": "support@acme-store.com" }
FieldRequiredNotes
toyesRecipient email address
subjectyesSubject line (UTF-8 supported, MIME-encoded automatically)
htmlone of html/textHTML body. Use absolute URLs for images so they render in all clients
textone of html/textPlaintext fallback. Recommended even when html is provided — improves deliverability
from_namerecommendedDisplay name (e.g., “Acme Store”). Falls back to the local-part of from_email if omitted
from_emailyesMust be on a domain verified for your account
reply_tooptionalWhere customer replies should go (often your support inbox)

Example

curl -X POST https://apis.splashifypro.com/api/v1/public/email/send \ -H "Authorization: Basic YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "alice@example.com", "subject": "Your order #1234 is confirmed", "html": "<h1>Order confirmed</h1><p>Thank you, Alice — your order ships in 2 business days.</p>", "text": "Order confirmed\\n\\nThank you, Alice — your order ships in 2 business days.", "from_name": "Acme Store", "from_email": "orders@acme-store.com", "reply_to": "support@acme-store.com" }'

Successful response — 200 OK

{ "result": true, "status": "queued", "message_id": "0190ed42-1234-7c8e-9f0a-abcdef012345" }

The email is queued — actual delivery happens within seconds. Use the message_id to poll the status endpoint for delivery confirmation.

Common errors

Statusmessage bodyMeaning
400to must be a valid email addressMissing or malformed recipient
400from_email domain '<x>' is not verified.Verify the domain at /settings/email-domain first
400subject is requiredSubject must be non-empty
400html or text body requiredProvide at least one body format
401Invalid API key.Key revoked, wrong, or expired
402email_marketing not enabled on your planPlan flag is off; ask admin to upgrade
429Rate limit exceededPer-plan rate limit; check Retry-After header
500Failed to enqueue: …Transient — retry with the same payload

Billing

  • First 100 emails per UTC day are free across both the public API + in-app campaigns combined.
  • Beyond that, transactional sends cost ₹0.05/email + reseller markup (if any). Charges appear in Settings → Track Expenses  under category email_transactional.
  • Hard bounces are billed (the SMTP attempt happened); soft bounces that retry are billed once on final acceptance.

Delivery notes

  • DKIM signed with d=<your-verified-domain> so recipients see dkim=pass against your brand.
  • List-Unsubscribe + List-Unsubscribe-Post headers are added automatically. Some inbox providers (Gmail, Outlook) require these on bulk transactional too — they don’t show the native Unsubscribe button on a single send, but headers don’t hurt.
  • Suppression list is checked at send-time. Recipients who unsubscribed from any of your past campaigns won’t receive transactional sends either unless you explicitly remove them via Settings → Email Domain → Manage Suppression .

Status endpoint

Poll for delivery confirmation:

GET https://apis.splashifypro.com/api/v1/public/email/status/{message_id}

Returns:

{ "result": true, "message_id": "0190ed42-1234-7c8e-9f0a-abcdef012345", "to": "alice@example.com", "from": "orders@acme-store.com", "subject": "Your order #1234 is confirmed", "status": "delivered", "category": "email_transactional", "attempt_count": 1, "created_at": "2026-04-30T12:34:56Z", "sent_at": "2026-04-30T12:34:58Z", "delivered_at": "2026-04-30T12:35:01Z" }

status is one of: queued, sending, sent, delivered, bounced, failed, suppressed.

See also