Skip to main content
Docs that lead with working code

Developer docs for the Senddio messaging API.

Every Senddio doc page starts with a working request you can paste directly into your terminal. Every error response tells you exactly what to do next. Every endpoint shows the call in cURL, Node and Python. The dashboard mirrors the docs, so anything you see in the documentation is one click away in the product.

● Free forever · No card · All 6 channels · AI credits
Quick start

One POST, six possible channels.

One endpoint covers all six channels. Use each channel’s required sender, recipient and content fields.

  • Bearer auth: sdo_live_ or sdo_mcp_
  • 202 Accepted (queued, not yet delivered)
  • Stable id format: sdo_msg_<cuid2>
  • Rate-limit headers on every response
POST /v1/send
202 Accepted
# curl
curl https://api.senddio.com/v1/send \
  -H "Authorization: Bearer sdo_live_…" \
  -H "Content-Type: application/json" \
  -d '{"channel":"email","messageType":"transactional","from":"…","to":"…","subject":"…","html":"…","trackOpens":true,"trackClicks":true}'

# node
import { Senddio } from 'senddio';
const senddio = new Senddio({ apiKey: process.env.SENDDIO_KEY });
await senddio.messages.send({
  channel: 'email', messageType: 'transactional', from: '…', to: '…',
  subject: '…', html: '…', trackOpens: true, trackClicks: true
});
The shift

Stop reading docs that do not actually ship code.

  • No more documentation chains that never show you a working request.
  • No more error messages that just say “something went wrong”.
  • No more sample code that would never pass your own code review.
  • No more documentation that drifts away from what the dashboard does.

Every page leads with a working command you can paste right away.

Suggested integration milestones

Your first 30 days as an integrator.

01
Day 1
First curl from the docs ships a real message
02
Day 3
Node SDK installed, tests passing in CI
03
Week 1
Webhook signature verification live in prod
04
Day 30
Onboarding new engineers takes one afternoon
●Every milestone above ships on the Free plan. No card, no upgrade gate.
FAQ

Developer FAQ

Dashboard → API keys → Create. You'll see the full sdo_live_… value exactly once — copy and store securely. We only persist the SHA-256 hash.

Daily quota per org, enforced via Redis with X-RateLimit-Limit / Remaining / Reset headers on every response. Over-quota returns 429 with a clear "wait until X or upgrade" body — never a silent drop.

Every error returns { error, message, code, …context }. message is human-readable instruction (what happened + what to do), code is a stable machine string. We'd rather you fix it than apologize.

Read once. Ship forever.

Every endpoint, error message and dashboard screen designed to make the next move obvious.

Get a key See pricing
● 300 emails/day · All 6 channels · AI credits · No card