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

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, cc and bcc. 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 /v1 API, 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.