API Reference

Complete REST API documentation for Transmit.

Authentication

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Generate API keys in your dashboard under Settings → API Keys.

Base URL

https://api.xmit.sh/v1

Endpoints

Email

POST
/send

Send a transactional email

POST
/send/batch

Send up to 50 emails in one request

GET
/messages

List sent messages

GET
/messages/:id

Get message details

Contacts

GET
/contacts

List all contacts

POST
/contacts

Create a contact

PUT
/contacts/:id

Update a contact

DELETE
/contacts/:id

Delete a contact

Domains

GET
/domains

List verified domains

POST
/domains

Add a domain

POST
/domains/:id/verify

Verify domain DNS

Campaigns

GET
/campaigns

List campaigns

POST
/campaigns

Create a campaign

POST
/campaigns/:id/send

Send a campaign

Example: Send Email

curl -X POST https://api.xmit.sh/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourdomain.com",
    "to": "user@example.com",
    "subject": "Welcome!",
    "templateId": "tmpl_12345",
    "variables": {
      "firstName": "John",
      "actionUrl": "https://example.com/verify"
    }
  }'

Batch Sending

Use the /batch endpoint to send multiple individual emails in a single request. Up to 50 emails per request.

curl -X POST https://api.xmit.sh/v1/send/batch \
  -d '{
    "emails": [
      { "to": "one@example.com", "subject": "Hi", "html": "..." },
      { "to": "two@example.com", "subject": "Hey", "html": "..." }
    ]
  }'

Filtering & Pagination

All GET list endpoints support standard filtering and pagination:

  • limit - Number of records (default 50, max 1000)
  • offset - Number of records to skip
  • q - Search query (searches names and subjects)