Qsendyx
API v1

Qsendyx API documentation

The public API is REST over JSON, versioned in the path. Requests and responses are JSON, timestamps are UTC in ISO 8601, identifiers are UUIDs you can store as opaque strings. Everything below works in both the test and live environments — the token prefix decides which.

Copy, paste, run

Send your first email in the language you already use.

curl -X POST https://api.qsendyx.com/api/v1/email/messages \
  -H "Authorization: Bearer $QSENDYX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "from":    { "email": "you@yourcompany.com", "name": "Your Company" },
    "to":      [{ "email": "user@example.com" }],
    "subject": "Welcome aboard",
    "html":    "<h1>You are in.</h1>"
  }'

Response: 202 Accepted · { "id": "…", "status": "queued" }

When something fails

Every error returns the same shape — an HTTP status and a stable code you can branch on.

codeStatusWhen
invalid_token401Missing, malformed or revoked token.
insufficient_scope403Token lacks the scope for this call.
not_found404Resource does not exist in your tenant.
idempotency_conflict409Same key reused with a different payload.
unprocessable422Unverified sender or suppressed recipient.
rate_limited429Too many requests — back off and retry.

See the full error reference →

Frequently asked questions

Test freely

Use a test token while you integrate — it runs the full pipeline on isolated data, never emails a real recipient and never spends balance. Switch to a live token when you go to production.