Getting started
How do I get an API key?
How do I get an API key?
In the dashboard → API keys → create a key. It looks like
sv_live_…. Pass it as Authorization: Bearer sv_live_… on every request. Keys are
workspace-scoped; create one per service or environment and revoke freely.How do I create my first inbox?
How do I create my first inbox?
POST /inboxes { "local_part": "support-bot" } returns an address on the shared
mail.sentvia.ai domain, live immediately — no DNS setup. See Inboxes.How do I handle inbound email?
How do I handle inbound email?
Two options: register a webhook for
message.received (push,
recommended), or poll GET /messages?inbox_id=…. For low-latency agents, stream events over
the realtime WebSocket.How do I keep replies in the same conversation?
How do I keep replies in the same conversation?
Use
POST /messages/{id}/reply — Sentvia derives the recipient and sets the
In-Reply-To/References headers automatically. See Threads.How do I block or allow specific senders?
How do I block or allow specific senders?
Add rules with
POST /lists (kind: allow/block, direction, pattern). See
Allow & block lists. Bounces and complaints are auto-suppressed
separately.Errors
What does a 401 mean?
What does a 401 mean?
Missing or invalid API key. Check the
Authorization: Bearer … header and that the key
hasn’t been revoked.What does a 402 (with upgrade: true) mean?
What does a 402 (with upgrade: true) mean?
A plan limit was hit. The
error tells you which: inbox_limit_reached,
custom_domains_require_paid_plan, dedicated_subdomain_requires_scale, or
storage_limit_reached. Upgrade from Billing.Why do I get 409 "address_taken"?
Why do I get 409 "address_taken"?
That inbox address is already in use (addresses are globally unique on the shared domain).
Pick a different
local_part.Why do I get 413 "attachment_too_large"?
Why do I get 413 "attachment_too_large"?
A single email’s attachments must fit within ~7 MB (the encoded message stays under the 10 MB
provider limit). Split large files or share a link instead. See Attachments.
Why do I get 422 on send?
Why do I get 422 on send?
Every recipient was suppressed (a prior bounce/complaint) or on your block list, so there was
no one deliverable. The response lists the blocked addresses.
Deliverability
Why are my emails bouncing?
Why are my emails bouncing?
Hard bounces add the address to your automatic suppression list so you don’t keep sending to
it. Check the recipient is valid; subsequent sends to a suppressed address are dropped.
Why isn't my custom domain verifying?
Why isn't my custom domain verifying?
Publish all returned DNS records (DKIM, SPF, DMARC, MAIL-FROM) exactly, with no extra quoting,
and give DNS a few minutes to propagate. See the DNS guides and
Deliverability.
How do I prevent duplicate sends?
How do I prevent duplicate sends?
Pass a unique
client_id on POST /messages. A repeated client_id returns the original
message instead of sending again — safe to retry after a timeout.Why are my emails going to spam?
Why are my emails going to spam?
Authenticate with a verified custom domain (SPF/DKIM/DMARC), warm up volume gradually, and keep
bounce/complaint rates low. Full guidance in Deliverability.