Skip to main content
The Sendmux API is a read-only REST API that gives you programmatic access to your email infrastructure data. Use it to build monitoring dashboards, alerting systems, and automated reporting workflows.

Base URL

All API requests should be made to:
https://app.sendmux.ai/api/v1

Authentication

Authenticate using an API key from your Sendmux dashboard. Pass it as a Bearer token in the Authorization header.
curl https://app.sendmux.ai/api/v1/providers \
  -H "Authorization: Bearer smx_root_your_key_here"
API keys are scoped to a team and carry specific permissions. Create and manage keys under Settings > API Keys in the dashboard.

Permissions

Each endpoint requires a specific permission. Keys with wildcard permissions (e.g. provider.*) satisfy any permission in that namespace.
Endpoint groupRequired permission
Providersprovider.read
Email metricsanalytics.read
Email logslogs.read
Billingbilling.read
Use the root:readonly role for monitoring integrations — it covers all read permissions.

Response format

All responses use a consistent JSON envelope.

Success

{
  "ok": true,
  "data": { ... },
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}

Paginated success

List endpoints include a pagination object alongside data.
{
  "ok": true,
  "data": [ ... ],
  "pagination": {
    "has_more": true,
    "next_cursor": "dlog_xxxxxxxx"
  },
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}

Error

{
  "ok": false,
  "error": {
    "code": "invalid_parameter",
    "message": "The 'from_date' parameter must be a valid ISO 8601 date.",
    "param": "from_date",
    "doc_url": "https://docs.sendmux.ai/api-reference/errors#invalid_parameter"
  },
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}

Errors

HTTP statusError codeDescription
400invalid_parameterBad query parameter format
400missing_parameterRequired parameter missing
401authentication_requiredNo or invalid API key
403insufficient_permissionsKey lacks required permission
404not_foundResource does not exist
429rate_limit_exceededRate limit hit
500internal_errorServer error

Rate limiting

Each API key is rate-limited to 600 requests per minute. Rate limit headers are included on every response:
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 594
X-RateLimit-Reset: 1679313700
When the limit is exceeded, the API returns a 429 status with a Retry-After header.

Conventions

  • snake_case fields in all JSON responses
  • UTC ISO 8601 timestamps in RFC 3339 format: 2026-03-19T10:30:00Z
  • Public IDs only — internal database IDs are never exposed
  • Cache-Control: no-store on all responses
  • JSON onlyContent-Type: application/json

OpenAPI specification

The full OpenAPI 3.1 specification is available at:
https://app.sendmux.ai/api/v1/openapi.json
Use it with any OpenAPI-compatible tool to generate client libraries or explore the API.