# Sendmux > The intelligent email layer ## Docs - [Get current balance](https://docs.sendmux.ai/api-reference/billing/get-current-balance.md): Returns the current team balance and auto top-up configuration. - [Get spend summary](https://docs.sendmux.ai/api-reference/billing/get-spend-summary.md): Returns a spend summary over a configurable lookback period. - [List transactions](https://docs.sendmux.ai/api-reference/billing/list-transactions.md): Returns paginated credit transaction history with optional type filter. Uses cursor-based pagination ordered by created_at descending — pass `cursor=` from the previous response to fetch the next page. - [Get domain-wide sender filters](https://docs.sendmux.ai/api-reference/domain-filters/get-domain-wide-sender-filters.md): Returns the current sender-filter mode and rule set applied to every mailbox under this domain. Per-mailbox rules take precedence at match time. - [Replace domain-wide sender filters](https://docs.sendmux.ai/api-reference/domain-filters/replace-domain-wide-sender-filters.md): Atomically replaces the sender-filter mode and rule set for an entire domain. Applies to every mailbox under the domain unless that mailbox has its own per-mailbox rules (which take precedence). Maximum 1000 rules per request. - [Add a mailbox domain](https://docs.sendmux.ai/api-reference/domains/add-a-mailbox-domain.md): Creates a new sending domain and returns the DNS records the customer must place before verification can succeed. Provisioning touches both our mail platform and Amazon SES — on any failure the partial state is automatically rolled back. - [Delete a mailbox domain](https://docs.sendmux.ai/api-reference/domains/delete-a-mailbox-domain.md): Removes a domain from our mail platform, Amazon SES, and Sendmux. Blocked if any active mailbox still uses the domain — delete those mailboxes first. - [Get a mailbox domain](https://docs.sendmux.ai/api-reference/domains/get-a-mailbox-domain.md): Returns a single domain including its DNS records and latest verification state. Responses carry a weak `ETag` header — send it back as `If-None-Match` on the next request and the server will return `304 Not Modified` (no body) when the resource has not changed. - [List mailbox domains](https://docs.sendmux.ai/api-reference/domains/list-mailbox-domains.md): Returns a cursor-paginated list of sending domains configured for the team, ordered by `created_at` descending. Each entry includes the DNS records the customer must place, the current verification status, and the SES DKIM state. Pass `cursor=` from the previous response to fetch the ne… - [Verify a mailbox domain](https://docs.sendmux.ai/api-reference/domains/verify-a-mailbox-domain.md): Runs an immediate DNS-over-HTTPS check of the domain's MX, SPF, DMARC and ownership TXT records, then asks SES for the latest DKIM status. If every check passes the domain is marked verified. Domains automatically re-verify every 6 hours — this endpoint is only needed to trigger a check on demand. - [Get delivery log](https://docs.sendmux.ai/api-reference/emails/get-delivery-log.md): Returns a single delivery log by its public ID. Responses carry a weak `ETag` header — send it back as `If-None-Match` on the next request and the server will return `304 Not Modified` (no body) when the log has not changed. Logs in a terminal status (sent/failed/rejected) stop changing, so 304 repl… - [Get email metrics](https://docs.sendmux.ai/api-reference/emails/get-email-metrics.md): Returns aggregated email delivery counts with flexible time windowing and comparison period. - [List delivery logs](https://docs.sendmux.ai/api-reference/emails/list-delivery-logs.md): Returns paginated delivery logs with cursor-based pagination and filters. - [Send a batch of emails](https://docs.sendmux.ai/api-reference/emails/send-a-batch-of-emails.md): Queue up to 100 emails for delivery in a single request. Uses partial success model — individual message failures do not fail the entire batch. Requires `email.send` permission. - [Send a single email](https://docs.sendmux.ai/api-reference/emails/send-a-single-email.md): Queue a single email for delivery. Requires `email.send` permission. - [Errors](https://docs.sendmux.ai/api-reference/errors.md): Error codes and handling for the Sendmux API. - [Introduction](https://docs.sendmux.ai/api-reference/introduction.md): Programmatic access to your Sendmux email infrastructure. - [Get mailbox sender filters](https://docs.sendmux.ai/api-reference/mailbox-filters/get-mailbox-sender-filters.md): Returns the current sender-filter mode and rule set for a mailbox. Mailbox-scoped rules override any domain-wide rules set on the parent domain. - [Replace mailbox sender filters](https://docs.sendmux.ai/api-reference/mailbox-filters/replace-mailbox-sender-filters.md): Atomically replaces the sender-filter mode and rule set for a mailbox. The entire rule set is swapped in a single operation — there is no intermediate state where the mailbox has a partial ruleset. A maximum of 1000 rules per request is enforced. - [Self-introspect the calling mailbox](https://docs.sendmux.ai/api-reference/mailbox/self-introspect-the-calling-mailbox.md): Returns the mailbox the bearer token is scoped to, including live storage usage. Intended for SDK auto-discovery — call once on startup to resolve the mailbox ID. Requires a mailbox-scoped API key; root keys receive 403. - [Create a mailbox](https://docs.sendmux.ai/api-reference/mailboxes/create-a-mailbox.md): Provisions a new mailbox plus an initial bearer token and matching IMAP/SMTP app password. The domain portion of the email must already be verified via POST /domains. Creation provisions resources on our mail platform and, for `@myagent.mx` addresses, on Amazon SES — any failure rolls the partial st… - [Create a mailbox API key](https://docs.sendmux.ai/api-reference/mailboxes/create-a-mailbox-api-key.md): Mints an additional bearer token plus IMAP/SMTP app password for an existing mailbox. The plaintext key and password are shown exactly once — store them immediately. - [Delete a mailbox](https://docs.sendmux.ai/api-reference/mailboxes/delete-a-mailbox.md): Removes a mailbox from our mail platform, Amazon SES (for `@myagent.mx` addresses), and Sendmux. All associated API keys are revoked. - [Get a mailbox](https://docs.sendmux.ai/api-reference/mailboxes/get-a-mailbox.md): Returns a single mailbox, tenant-scoped to the caller's team. Responses carry a weak `ETag` header — send it back as `If-None-Match` on the next request and the server will return `304 Not Modified` (no body) when the resource has not changed. The same ETag is the value to use in `If-Match` on PATCH… - [List mailboxes](https://docs.sendmux.ai/api-reference/mailboxes/list-mailboxes.md): Returns a cursor-paginated list of mailboxes configured for the team, ordered by `created_at` descending. Pass `cursor=` from the previous response to fetch the next page. - [Revoke a mailbox API key](https://docs.sendmux.ai/api-reference/mailboxes/revoke-a-mailbox-api-key.md): Revokes a specific bearer token + matching app password. Idempotent on already-revoked keys. - [Update a mailbox](https://docs.sendmux.ai/api-reference/mailboxes/update-a-mailbox.md): Updates any combination of display_name, quota_bytes, and send_scope on a mailbox. The display_name and send_scope changes land in a single transaction; quota_bytes is applied afterwards because it also updates external state on our mail platform. Quota cannot be shrunk below the mailbox's current u… - [Get provider statistics](https://docs.sendmux.ai/api-reference/providers/get-provider-statistics.md): Returns aggregate counts of configured email providers with breakdowns by type and status. - [List providers](https://docs.sendmux.ai/api-reference/providers/list-providers.md): Returns a paginated list of configured email providers with safe fields (no encrypted credentials). Uses cursor-based pagination ordered by created_at descending — pass `cursor=` from the previous response to fetch the next page. - [Create a webhook subscription](https://docs.sendmux.ai/api-reference/webhooks/create-a-webhook-subscription.md): Creates a new webhook subscription and returns the signing secret ONCE in the response body. Store it securely — it cannot be retrieved later. Use `POST /webhooks/{id}/rotate-secret` to issue a new one. - [Delete a webhook subscription](https://docs.sendmux.ai/api-reference/webhooks/delete-a-webhook-subscription.md): Permanently removes the subscription. In-flight retries are dropped. - [Get a webhook subscription](https://docs.sendmux.ai/api-reference/webhooks/get-a-webhook-subscription.md): Returns a single webhook subscription. The signing secret is never included. Responses carry a weak `ETag` header — send it back as `If-None-Match` on the next request and the server will return `304 Not Modified` (no body) when the resource has not changed. The same ETag is the value to use in `If-… - [List webhook subscriptions](https://docs.sendmux.ai/api-reference/webhooks/list-webhook-subscriptions.md): Returns a cursor-paginated list of webhook subscriptions configured for the team, ordered by `created_at` descending. The signing secret is never included. Pass `cursor=` from the previous response to fetch the next page. - [Rotate the signing secret](https://docs.sendmux.ai/api-reference/webhooks/rotate-the-signing-secret.md): Generates a fresh signing secret and returns it ONCE. The old secret is immediately invalidated — the next event delivery is signed with the new secret. Store the new value securely; it cannot be retrieved later. - [Send a synthetic test event](https://docs.sendmux.ai/api-reference/webhooks/send-a-synthetic-test-event.md): Publishes a synthetic `sendmux.test` event scoped to this team. The event is fanned out to every subscription whose `event_types` list contains `"sendmux.test"` — including this one if you want to test delivery to yourself, add `sendmux.test` to its event types first. Returns the generated `event_id… - [Update a webhook subscription](https://docs.sendmux.ai/api-reference/webhooks/update-a-webhook-subscription.md): Updates the URL, event types, or enabled flag. Any field omitted from the request body is left unchanged. The signing secret is unaffected — use `POST /webhooks/{id}/rotate-secret` to rotate it. - [Attachments](https://docs.sendmux.ai/guides/attachments.md): Sending file attachments via the Sendmux HTTP API. - [Domain management](https://docs.sendmux.ai/guides/domain-management.md): Add, verify, and manage the sending domains behind your Sendmux mailboxes. - [Idempotency](https://docs.sendmux.ai/guides/idempotency.md): Make mutating requests safe to retry by attaching an Idempotency-Key header. - [Model Context Protocol (MCP)](https://docs.sendmux.ai/guides/mcp.md): Give Claude, Cursor, and VS Code direct access to Sendmux docs and API references through our hosted MCP server. - [Quickstart](https://docs.sendmux.ai/guides/quickstart.md): Verify a domain, create a mailbox, and send your first email through Sendmux in five steps. - [Sending via HTTP API](https://docs.sendmux.ai/guides/sending-via-http.md): Quick start guide for sending emails via the Sendmux REST API. - [Sending via SMTP](https://docs.sendmux.ai/guides/sending-via-smtp.md): Connect your application to Sendmux via standard SMTP. - [Webhooks setup](https://docs.sendmux.ai/guides/webhooks-setup.md): Subscribe to Sendmux delivery events, verify signatures, and handle retries. - [Verify webhook signatures](https://docs.sendmux.ai/guides/webhooks-verify-signatures.md): Verify the HMAC-SHA256 signature Sendmux attaches to every webhook delivery, with ready-to-paste Node, Python, and Go examples. - [Welcome to Sendmux](https://docs.sendmux.ai/index.md): Documentation for the Sendmux email infrastructure platform. - [Errors](https://docs.sendmux.ai/sending-api/errors.md): Error codes and handling for the Sendmux Sending API. - [Introduction](https://docs.sendmux.ai/sending-api/introduction.md): Send emails programmatically via the Sendmux Sending API. ## OpenAPI Specs - [openapi](https://app.sendmux.ai/api/v1/openapi.json) ## Optional - [App](https://app.sendmux.ai) - [Website](https://sendmux.ai)