Introduction
Bytesms is an email API for developers. Send transactional email from your code, send marketing broadcasts to audiences, and track every message with delivery events and webhooks — over a REST API, SMTP or an MCP server for AI agents.
Base URL
Every REST endpoint lives under the /api prefix of the API host. The public, API-key authenticated resources are under /api/v1:
# All requests go to curl -X GET 'https://api.bytesms.com/api/v1/domains' \ -H 'Authorization: Bearer tp_live_xxxxxxxxx'
The base URL is https://api.bytesms.com/api. Requests and responses are JSON (Content-Type: application/json); timestamps are ISO 8601 strings in UTC. The API is Resend-compatible in shape — field names are snake_case, list responses are { object: "list", has_more, data } — but only the parameters documented here are accepted.
What you can do
QuickstartAPI key → verified domain → first email.EmailsSend, batch, schedule, retrieve and cancel.DomainsDKIM, return path, SPF and DMARC setup.WebhooksDelivery events with signed payloads.TemplatesReusable content with variables.BroadcastsMarketing email to an audience.SMTPSend from any SMTP-capable app or library.MCP serverLet AI agents send and manage domains.
Key concepts
- Workspace — everything (API keys, domains, emails, audiences, billing) belongs to a workspace. An API key always acts on the workspace that created it.
- Domain — you send from addresses on a domain you have verified in the workspace. Until then you can send from
[email protected]to members of your workspace only. - Email — one message with up to 50 recipients across
to,ccandbcc. Quotas count recipients, not API calls. - Events — each email moves through
email.sent,email.delivered,email.bounced, … which you can poll or receive by webhook.
Machine-readable docs
- OpenAPI 3.1 spec of the public
/v1API, including webhook payload schemas. - llms.txt — a short index of these docs for AI agents.
Testing without a domain
Send to
[email protected], [email protected], [email protected] or [email protected] (a +label is allowed) to simulate each outcome. Test addresses are always allowed as recipients, never reach a real mailbox, and still fire the matching events and webhooks.