Skip to Content
Build with AIAI Onboarding

AI Onboarding

Working with an AI coding assistant (Cursor, Claude Code, ChatGPT, Windsurf, etc.)? Paste this page’s URL into your assistant — we’ve formatted everything below for an LLM to ingest in one shot.

For Cursor / Claude Code / Windsurf, run:

https://partner-docs.splashifypro.com/getting-started/ai-onboarding

You are integrating: Splashify Pro Email API

You are a developer integration assistant. You are helping a user build against the Splashify Pro Email API. The API surface is AWS-SES-shaped — endpoint shapes, response field names, and event payloads are aligned with AWS SES so SES integrators feel at home.

Base URL

https://apis.splashifypro.com/api/v1/partner/email

Authentication

Every request requires a Bearer API key in the Authorization header. Keys are prefixed pk_live_. Generate from partner.splashifypro.com Settings → API Keys.

Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Core concepts

  • Identity: Verified domain or email address. Required before you can send From: that address. Domain identities cover any address at the domain. Verified via 3 DNS records (SPF + DKIM CNAME + DMARC).
  • Configuration Set: A logical grouping of sends. Attach event destinations (webhooks) to a config set; sends specify configuration_set_name to route events. AWS-style.
  • Event Destination: Webhook URL on a config set. Receives the AWS-SES-shaped JSON event payload signed with HMAC-SHA256.
  • Template: Reusable email body with {{variable}} placeholders. Send via POST /send-template or POST /send-bulk.
  • Suppression list: Account-level. Hard bounces + complaints + unsubscribes auto-add. Sends to suppressed addresses are rejected pre-SMTP.
  • Sandbox: Default state for new accounts. 200/day cap, 1 send/sec, recipient must be verified. Request production access to lift.
  • Wallet: Prepaid by default. ₹0.01 per email. First 200/day in sandbox are free. Recharge via the partner panel.

Most-used endpoints

Send transactional email

POST /api/v1/partner/email/send { "from": "hello@yourcompany.com", "to": ["user@example.com"], "subject": "Hello", "html_body": "<p>Hi</p>", "text_body": "Hi", "configuration_set_name": "production", "category": "transactional" }

Response: {"success":true,"results":[{"recipient":"user@example.com","message_id":"<uuid>","status":"queued"}]}

Send templated email

POST /api/v1/partner/email/send-template { "from": "hello@yourcompany.com", "to": ["user@example.com"], "template_name": "welcome", "variables": {"first_name": "Alex"} }

Bulk templated send (up to 50 recipients × 50 destinations / 500 total)

POST /api/v1/partner/email/send-bulk { "from": "hello@yourcompany.com", "template_name": "newsletter", "default_template_data": {"campaign": "june"}, "destinations": [ { "to": ["a@example.com"], "replacement_data": {"first_name": "Alex"} }, { "to": ["b@example.com"], "replacement_data": {"first_name": "Brett"} } ] }

Get message status

GET /api/v1/partner/email/emails/{message_id}

Verify a sending identity (domain)

POST /api/v1/partner/email/identities { "identity_type": "DOMAIN", "identity_value": "yourcompany.com" }

Response includes the 3 DNS records to publish (SPF TXT, DKIM CNAME, DMARC TXT). After publishing, trigger:

POST /api/v1/partner/email/identities/DOMAIN/yourcompany.com/verify

Create a configuration set

POST /api/v1/partner/email/configuration-sets { "name": "production", "suppression_options": "BOUNCE_AND_COMPLAINT" }

Add a webhook event destination

POST /api/v1/partner/email/configuration-sets/{config_set_id}/event-destinations { "name": "production-webhook", "destination_type": "WEBHOOK", "webhook_url": "https://yourapp.com/webhooks/splashify", "webhook_secret": "your-shared-secret", "matching_event_types": ["send", "delivered", "bounce", "complaint", "open", "click"] }

Suppression list

GET /api/v1/partner/email/suppression PUT /api/v1/partner/email/suppression/{email} DELETE /api/v1/partner/email/suppression/{email}

Quotas + reputation

GET /api/v1/partner/email/quotas # daily cap, sandbox, reputation_status GET /api/v1/partner/email/stats # day-by-day counters GET /api/v1/partner/email/reputation # 14d bounce/complaint rate GET /api/v1/partner/email/events # event log

Webhook payload shape (AWS-SES-style)

{ "eventType": "Delivery", "mail": { "timestamp": "2026-05-03T12:34:56Z", "messageId": "<uuid>", "source": "hello@yourcompany.com", "destination": ["user@example.com"] }, "delivery": { "timestamp": "2026-05-03T12:34:57Z", "recipients": ["user@example.com"], "smtpResponse": "250 OK" } }

Headers:

  • X-Splashify-EventSend|Delivery|Bounce|Complaint|Open|Click|Reject|RenderingFailure|DeliveryDelay
  • X-Splashify-Signaturesha256=<hex> HMAC-SHA256 of raw body, key = your webhook_secret
  • X-Splashify-Timestamp — Unix seconds
  • X-Splashify-Delivery-ID — UUID per delivery attempt (use for idempotency)

Verify the signature in constant time, dedupe on Delivery-ID, return 200 OK to ack. 4xx = no retry. 5xx + timeout = retry per {1min, 5min, 15min}.

Sandbox vs production

Sandbox limits:

  • 200 emails / day
  • 1 email / second
  • Can only send to addresses you’ve verified

Request production access:

POST /api/v1/partner/email/production-access { "use_case": "Transactional emails for our SaaS — signup confirms, password resets, payment receipts", "email_volume_estimate": "5000-15000 per day", "has_unsubscribe_method": true, "has_consent_proof": true }

Approval lifts sandbox + bumps daily cap to 50,000 + peak rate to 14/sec.

Pricing

  • ₹0.01 per email, flat
  • First 200/day free in sandbox
  • Per-partner overrides supported (admin-set)

Errors

All errors are {success: false, error: "<CODE>", message: "<human>"} with a 4xx or 5xx status:

  • 400 — bad request (read message)
  • 401 — invalid / missing API key
  • 402 — wallet balance insufficient (recharge)
  • 403 — sandbox cap, sending paused, IP blocked
  • 404 — not found
  • 429 — rate limit (back off)

Where to read more

That’s everything an AI agent needs to start integrating. If your assistant asks about something not covered here, link it to the relevant section above.