API Overview
Dispatch exposes a REST API at /api/v1/. The developer API is authenticated with an API key; account management (billing, domain creation, creating API keys themselves) happens in the dashboard.
Base URL
| Environment | URL |
|---|---|
| Dev | https://dispatch-dev.techtranslab.com |
| Prod | https://dispatch.techtranslab.com |
Authentication
Authorization: Bearer {api_key}See Authentication for scopes and the domain allowlist.
Endpoints
| Endpoint | Scope |
|---|---|
POST /emails | email:send |
POST /emails/batch | email:send |
POST /campaigns | email:send |
POST /messages/:id/cancel | email:send |
GET /messages | email:read |
GET /messages/:id | email:read |
GET /messages/:id/events | email:read |
GET /messages/stats | email:read |
GET /domains | domain:read |
Health Check
GET /healthReturns 200 OK when the service is healthy.
Error Format
json
{ "error": "CODE", "message": "Human-readable detail" }| HTTP | Common codes |
|---|---|
| 400 | BAD_REQUEST, INVALID_FROM_ADDRESS, DOMAIN_NOT_FOUND, DOMAIN_NOT_VERIFIED, NOT_SCHEDULABLE, NOT_CANCELLABLE |
| 401 | UNAUTHORIZED |
| 403 | INSUFFICIENT_SCOPE, DOMAIN_NOT_ALLOWED, FORBIDDEN |
| 404 | NOT_FOUND |
| 409 | ALREADY_PROCESSED |
| 429 | Rate limited |
| 500 | INTERNAL_ERROR |
Pagination
List endpoints accept page and per_page:
GET /api/v1/messages?page=1&per_page=20Response includes total and matches the requested page.