API Overview
The SendOps Public API lets you read events, manage configuration, and inspect account state programmatically. It is the same data plane your dashboard uses, exposed under https://api.sendops.dev and authenticated with an API key you create from your account settings.
This is not a send API
SendOps is a control plane on top of your AWS SES infrastructure. To send mail, call SES directly with your own AWS credentials. The SendOps API lets you read events, manage configuration, and inspect account state — it never relays or sends email on your behalf.
What the API gives you
- Message-level observability — list, search, and trace individual messages and the SES events they emit.
- Reporting — deliverability and engagement aggregates, plus per-template performance.
- Suppressions — read the account-level suppression list and look up individual recipients.
- Configuration introspection — channels (SES configuration sets), templates, tracking domains, and SES identities.
- Account state — the calling org’s onboarding state, AWS connection status, plan, send quota, and SES production-access state.
Every endpoint is documented in the sidebar, grouped by resource. The catalogue is generated from the live OpenAPI spec.
What the API does not do (in v1)
- No sending. Mail is sent by your application against SES directly. The API never accepts a send.
- No browser-origin calls. CORS is closed; the API is server-to-server only.
- No writes. Every v1 endpoint is read-only. Configuration changes (channels, identities, tracking domains, suppressions) happen in the dashboard.
- No bulk or batch mutations. Out of scope for v1.
Authentication at a glance
Every request carries an Authorization: Bearer sk_<env>_<...> header. Keys are scoped to a single organization and granted a subset of permissions (scopes) chosen when the key was created. Live and test keys share the same scope vocabulary but live keys run at the full rate limit, while test keys run at 10% of it.
See Authentication for the full key lifecycle.
Conventions
- All endpoints are versioned under
/v1/and use JSON request/response bodies. There is no XML or form-encoded alternative. - Timestamps are ISO 8601 in UTC (
2026-05-17T19:00:00Z). - IDs are UUIDs in canonical hyphenated form.
- Errors follow RFC 7807
application/problem+json. - Lists are cursor-paginated; offsets and totals are not exposed.
- Rate-limit headers appear on every response. See Rate Limiting.
Getting your first response
You’ll need: a SendOps account, an API key with at least one scope (e.g., api.reports.view), and a terminal. Head to the Quickstart for a five-minute walk-through.