# Sendmux > The intelligent email layer ## Docs - [Welcome to Sendmux](https://sendmux.ai/docs/index.md): Learn what Sendmux does, where to start, and which guides or API references to use next. - [Quickstart](https://sendmux.ai/docs/guides/quickstart.md): Create a team, add a mailbox, send a test email, and watch the result in Sendmux. - [Postman collections](https://sendmux.ai/docs/guides/postman-collection.md): Import Sendmux API collections into Postman and configure your API key. - [Team limits](https://sendmux.ai/docs/guides/team-limits.md): Default Sendmux team limits, when increase requests appear, and what happens at the hard limit. - [SDKs](https://sendmux.ai/docs/sdks/index.md): Choose a Sendmux SDK package and the API surface it should use. - [TypeScript SDK](https://sendmux.ai/docs/sdks/typescript.md): Install and configure the Sendmux TypeScript SDK packages. - [Python SDK](https://sendmux.ai/docs/sdks/python.md): Install and configure the Sendmux Python SDK packages. - [Go SDK](https://sendmux.ai/docs/sdks/go.md): Install and configure the Sendmux Go module. - [PHP SDK](https://sendmux.ai/docs/sdks/php.md): Install and configure the Sendmux PHP SDK packages. - [Ruby SDK](https://sendmux.ai/docs/sdks/ruby.md): Install and configure the Sendmux Ruby SDK gems. - [Versioning and support](https://sendmux.ai/docs/sdks/versioning-support.md): Understand Sendmux SDK package releases, compatibility, and support expectations. - [CLI](https://sendmux.ai/docs/cli/index.md): Install and configure the Sendmux CLI for management, mailbox, and sending workflows. - [Cold email outreach and GTM from your own inboxes](https://sendmux.ai/docs/use-cases/cold-email-outreach.md): Sendmux is an email layer that routes cold outreach through inboxes you own. Add sending accounts, set per-account caps, and run your GTM motion from an AI tool. - [Use Sendmux with MailWizz for cold email outreach](https://sendmux.ai/docs/integrations/email-marketing/mailwizz.md): Connect MailWizz to Sendmux, set humanised sending limits, and run cold email outreach campaigns with scheduled follow-ups and signed feedback. - [Agent access](https://sendmux.ai/docs/guides/agent-access.md): Let an AI agent pass registration checks, create a constrained Sendmux mailbox, and invite its human owner. - [Agent skills](https://sendmux.ai/docs/guides/agent-skills.md): Install Sendmux Agent Skills so AI coding tools choose the right Sendmux API, CLI, MCP, or SDK workflow. - [MCP](https://sendmux.ai/docs/guides/mcp.md): Connect AI tools to Sendmux documentation and product tools. - [MCP client setup](https://sendmux.ai/docs/guides/mcp-clients.md): Configure Sendmux MCP in supported AI clients. - [Teams and access](https://sendmux.ai/docs/guides/teams-access.md): Create teams, invite members, assign roles, and schedule team deletion. - [Account settings](https://sendmux.ai/docs/guides/account-settings.md): Update your profile, review active sessions, change your password, and manage passkeys. - [API keys](https://sendmux.ai/docs/guides/api-keys.md): Create, scope, rotate, and revoke Sendmux API keys. - [Billing](https://sendmux.ai/docs/guides/billing.md): Top up team balance, configure auto top-up, set low-balance alerts, and review transactions. - [Sending by HTTP](https://sendmux.ai/docs/guides/sending-via-http.md): Send single or batch email requests through the Sendmux Sending API. - [Sending via SMTP](https://sendmux.ai/docs/guides/sending-via-smtp.md): Connect an SMTP-compatible app or mail client to Sendmux. - [Sending accounts](https://sendmux.ai/docs/guides/sending-accounts.md): Add, import, route, and monitor the accounts Sendmux uses to deliver email. - [Google and Microsoft setup](https://sendmux.ai/docs/guides/connect-google-microsoft-accounts.md): Prepare your organisation, import accounts, and authorise Google Workspace or Microsoft 365 mailboxes for sending. - [Delivery groups](https://sendmux.ai/docs/guides/delivery-groups.md): Group sending providers and route selected keys or mailboxes through them. - [HTTP provider](https://sendmux.ai/docs/guides/http-provider.md): What the coming-soon HTTP provider option means in Accounts. - [Attachments](https://sendmux.ai/docs/guides/attachments.md): Send, upload, and download attachments with Sendmux. - [Idempotency](https://sendmux.ai/docs/guides/idempotency.md): Use the Idempotency-Key header to make mutating requests safe to retry. - [Domains](https://sendmux.ai/docs/guides/domain-management.md): Add, verify, and manage custom domains for sending and receiving. - [Mailboxes](https://sendmux.ai/docs/guides/mailboxes.md): Create mailboxes, manage passwords, set sender identity, and control inbound sender rules. - [Domain settings](https://sendmux.ai/docs/guides/domain-settings.md): Understand domain-level inbound settings for sending and receiving domains. - [Mailbox push delivery](https://sendmux.ai/docs/guides/mailbox-push-delivery.md): Understand the coming-soon push URL option shown when creating a mailbox. - [Dashboard and logs](https://sendmux.ai/docs/guides/dashboard-logs.md): Monitor sending activity, filter delivery logs, and export log data. - [Deliverability](https://sendmux.ai/docs/guides/deliverability.md): Use deliverability views to monitor bounce rates, complaint rates, and provider health. - [Webhooks setup](https://sendmux.ai/docs/guides/webhooks-setup.md): Subscribe to Sendmux events, verify signatures, and review delivery attempts. - [Verify webhook signatures](https://sendmux.ai/docs/guides/webhooks-verify-signatures.md): Verify the HMAC-SHA256 signature on every Sendmux webhook delivery. - [Webhook replay](https://sendmux.ai/docs/guides/webhook-replay.md): Understand the coming-soon replay action on webhook delivery attempts. - [Introduction](https://sendmux.ai/docs/api/introduction.md): Programmatic access to your Sendmux email infrastructure. - [Errors](https://sendmux.ai/docs/api/errors.md): Error codes and handling for the Sendmux API. - [List mailbox domains](https://sendmux.ai/docs/api/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… - [Add a mailbox domain](https://sendmux.ai/docs/api/domains/add-a-mailbox-domain.md): Creates a new domain and returns the DNS records the customer must place before verification can succeed. `send_only` configures outbound sending without changing MX records. `send_receive` also configures the domain for hosted mailboxes. Provisioning touches our email platform and Amazon SES; on an… - [Get a mailbox domain](https://sendmux.ai/docs/api/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. - [Update a mailbox domain](https://sendmux.ai/docs/api/domains/update-a-mailbox-domain.md): Upgrades a send-only domain to sending and receiving. Downgrades are rejected. After upgrade, the domain returns to `pending` until the required MX record verifies. - [Download a domain as a zone file](https://sendmux.ai/docs/api/domains/download-a-domain-as-a-zone-file.md): Returns the domain's DNS records formatted as a BIND-style zone file fragment. Suitable for direct paste into a DNS provider that accepts zone-file imports. - [Verify a mailbox domain](https://sendmux.ai/docs/api/domains/verify-a-mailbox-domain.md): Checks the domain's published DNS records and latest Amazon SES DKIM and MAIL FROM statuses. If every required check passes, the domain is marked verified. A previously failed domain remains failed until a complete check succeeds. Domains automatically re-verify every 6 hours — this endpoint is only… - [Delete a mailbox domain](https://sendmux.ai/docs/api/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 domain-wide sender filters](https://sendmux.ai/docs/api/domain-filters/get-domain-wide-sender-filters.md): Returns the current sender-filter mode and rule set applied to every mailbox under this domain. Only sending and receiving domains support domain-wide filters. Per-mailbox rules take precedence at match time. - [Replace domain-wide sender filters](https://sendmux.ai/docs/api/domain-filters/replace-domain-wide-sender-filters.md): Atomically replaces the sender-filter mode and rule set for an entire sending and receiving 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. - [List mailboxes](https://sendmux.ai/docs/api/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. - [Create a mailbox](https://sendmux.ai/docs/api/mailboxes/create-a-mailbox.md): Provisions a new mailbox plus an initial bearer token and matching IMAP/SMTP mailbox password. The domain portion of the email must already be verified via POST /domains. If supplied, `quota_bytes` must be one of the current storage tiers: 1073741824 (1 GB), 5368709120 (5 GB), or 53687091200 (50 GB)… - [Get a mailbox](https://sendmux.ai/docs/api/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… - [Update a mailbox](https://sendmux.ai/docs/api/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 can only be set to 1073741824 (1 GB), 53687091… - [Delete a mailbox](https://sendmux.ai/docs/api/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. - [Suspend a mailbox](https://sendmux.ai/docs/api/mailboxes/suspend-a-mailbox.md): Suspends a mailbox without deleting messages, credentials, or settings. Suspended mailboxes cannot receive mail, authenticate to mailbox protocols, or send from the mailbox address. The operation is idempotent and accepts `Idempotency-Key` for safe retries. - [Resume a mailbox](https://sendmux.ai/docs/api/mailboxes/resume-a-mailbox.md): Restores a suspended mailbox so it can authenticate, receive mail, and send from the mailbox address again. The operation is idempotent and accepts `Idempotency-Key` for safe retries. - [Get mailbox sender filters](https://sendmux.ai/docs/api/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://sendmux.ai/docs/api/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. - [Create a mailbox API key](https://sendmux.ai/docs/api/mailboxes/create-a-mailbox-api-key.md): Mints an additional bearer token plus IMAP/SMTP mailbox password for an existing mailbox. The plaintext key and password are shown exactly once — store them immediately. - [Revoke a mailbox API key](https://sendmux.ai/docs/api/mailboxes/revoke-a-mailbox-api-key.md): Revokes a specific bearer token + matching mailbox password. Idempotent on already-revoked keys. - [List incoming logs](https://sendmux.ai/docs/api/inboxes/list-incoming-logs.md): Returns paginated incoming message logs for billing accountability. - [Get incoming log](https://sendmux.ai/docs/api/inboxes/get-incoming-log.md): Returns one incoming message log by public ID. - [Get sending account statistics](https://sendmux.ai/docs/api/sending-accounts/get-sending-account-statistics.md): Returns aggregate counts of configured sending accounts with breakdowns by type and status. - [Get sending account limits](https://sendmux.ai/docs/api/sending-accounts/get-sending-account-limits.md): Returns custom-account capacity and shared Amazon SES daily sending limit state. - [Request a sending account limit increase](https://sendmux.ai/docs/api/sending-accounts/request-a-sending-account-limit-increase.md): Creates a request to increase the number of custom or connected sending accounts allowed for the team. - [Get shared Amazon SES limit request state](https://sendmux.ai/docs/api/sending-accounts/get-shared-amazon-ses-limit-request-state.md): Returns the shared Amazon SES daily limit state and any pending increase request. - [Request a shared Amazon SES daily limit increase](https://sendmux.ai/docs/api/sending-accounts/request-a-shared-amazon-ses-daily-limit-increase.md): Creates a review request for the shared Amazon SES daily sending limit. This does not modify the limit directly. - [Cancel a shared Amazon SES daily limit request](https://sendmux.ai/docs/api/sending-accounts/cancel-a-shared-amazon-ses-daily-limit-request.md): Cancels a pending shared Amazon SES daily limit increase request for the caller's team. Approved or denied requests cannot be cancelled. - [Get sending account usage](https://sendmux.ai/docs/api/sending-accounts/get-sending-account-usage.md): Returns per-account delivery-log counts for today and the trailing 7-day window. - [List sending accounts](https://sendmux.ai/docs/api/sending-accounts/list-sending-accounts.md): Returns a cursor-paginated list of sending accounts. Credentials are never returned. The shared Amazon SES account is included and marked with `is_shared: true`. - [Create an SMTP sending account](https://sendmux.ai/docs/api/sending-accounts/create-an-smtp-sending-account.md): Creates a custom SMTP sending account. Supply an `Idempotency-Key` header to safely retry on network errors. The SMTP password is stored securely and is never returned. - [Get a sending account](https://sendmux.ai/docs/api/sending-accounts/get-a-sending-account.md): Returns one sending account. Responses include an ETag for conditional GET and optimistic PATCH. - [Update a sending account](https://sendmux.ai/docs/api/sending-accounts/update-a-sending-account.md): Updates a custom sending account. The shared Amazon SES account cannot be edited here; use activate/deactivate and the limit-request endpoint for the allowed shared-account actions. - [Delete a sending account](https://sendmux.ai/docs/api/sending-accounts/delete-a-sending-account.md): Deletes a custom or connected sending account. The shared Amazon SES account cannot be deleted. - [Activate a sending account](https://sendmux.ai/docs/api/sending-accounts/activate-a-sending-account.md): Enables a sending account. OAuth accounts without an active connection are moved to pending until reconnected in the dashboard. The shared Amazon SES account can be activated. - [Deactivate a sending account](https://sendmux.ai/docs/api/sending-accounts/deactivate-a-sending-account.md): Disables a sending account. The shared Amazon SES account can be deactivated. - [Test an SMTP sending account](https://sendmux.ai/docs/api/sending-accounts/test-an-smtp-sending-account.md): Runs a connection test for a custom SMTP account. The shared Amazon SES account and OAuth accounts cannot be tested through this endpoint. - [Get email metrics](https://sendmux.ai/docs/api/emails/get-email-metrics.md): Returns aggregated email delivery counts with flexible time windowing and comparison period. - [List delivery logs](https://sendmux.ai/docs/api/emails/list-delivery-logs.md): Returns paginated delivery logs with cursor-based pagination and filters. - [Get delivery log](https://sendmux.ai/docs/api/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 current balance](https://sendmux.ai/docs/api/billing/get-current-balance.md): Returns the current team balance and auto top-up configuration. - [Get spend summary](https://sendmux.ai/docs/api/billing/get-spend-summary.md): Returns a spend summary over a configurable lookback period. - [List transactions](https://sendmux.ai/docs/api/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. - [List webhook subscriptions](https://sendmux.ai/docs/api/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. - [Create a webhook subscription](https://sendmux.ai/docs/api/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. - [Get a webhook subscription](https://sendmux.ai/docs/api/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 delivery attempts](https://sendmux.ai/docs/api/webhooks/list-webhook-delivery-attempts.md): Returns recent delivery attempts for one webhook subscription, ordered by `created_at` descending. Delivery metadata is retained for 7 days. Use the payload endpoint while `payload_available` is true to inspect the exact JSON request body that was delivered. - [Get a webhook delivery payload](https://sendmux.ai/docs/api/webhooks/get-a-webhook-delivery-payload.md): Returns the retained JSON request body for one delivery attempt. Payloads are retained for 7 days and may no longer be available after `payload_expires_at`. - [Update a webhook subscription](https://sendmux.ai/docs/api/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. - [Delete a webhook subscription](https://sendmux.ai/docs/api/webhooks/delete-a-webhook-subscription.md): Permanently removes the subscription. In-flight retries are dropped. - [Rotate the signing secret](https://sendmux.ai/docs/api/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://sendmux.ai/docs/api/webhooks/send-a-synthetic-test-event.md): Publishes a synthetic `sendmux.test` event to this webhook subscription. The subscription must include `"sendmux.test"` in `event_types`, and mailbox filters do not block the test delivery. Returns the generated `event_id` so you can correlate the `X-Sendmux-Event-Id` header on your endpoint. - [Introduction](https://sendmux.ai/docs/mailbox-api/introduction.md): Mailbox-scoped API endpoints for Sendmux mailbox credentials and connected apps. - [Errors](https://sendmux.ai/docs/mailbox-api/errors.md): Error codes and handling for the Sendmux Mailbox API. - [List granted mailboxes](https://sendmux.ai/docs/api/mailbox-api/list-granted-mailboxes.md): Lists the mailboxes available to the current mailbox credential or connected app. Use this before choosing a `mailbox_id` for mailbox actions when more than one mailbox is available. - [Self-introspect the calling mailbox](https://sendmux.ai/docs/api/mailbox-api/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. - [Get mailbox API session](https://sendmux.ai/docs/api/mailbox-api/get-mailbox-api-session.md): Returns mailbox API capabilities, resource state tokens, limits, and disabled feature flags for the authenticated mailbox. - [Get mailbox sender identity](https://sendmux.ai/docs/api/mailbox-api/get-mailbox-sender-identity.md): Returns the default sender identity and signatures for the authenticated mailbox. - [Update mailbox sender identity](https://sendmux.ai/docs/api/mailbox-api/update-mailbox-sender-identity.md): Updates the default sender name, plain text signature, and HTML signature for the authenticated mailbox. - [List mailbox sender identities](https://sendmux.ai/docs/api/mailbox-api/list-mailbox-sender-identities.md): Returns sender identities available to the authenticated mailbox. - [List mailbox messages](https://sendmux.ai/docs/api/mailbox-api/list-mailbox-messages.md): Returns a cursor-paginated list of messages for the authenticated mailbox. Requires a mailbox API key. - [Batch get mailbox messages](https://sendmux.ai/docs/api/mailbox-api/batch-get-mailbox-messages.md): Returns exact messages by ID. Use `body_mode` to choose summary-only output, raw body output, or clean JSON content. Attachment output remains metadata only; attachment contents are not parsed. - [Batch update mailbox messages](https://sendmux.ai/docs/api/mailbox-api/batch-update-mailbox-messages.md): Updates allowed message flags and keywords for up to 100 messages with state-safe conflict handling. - [Batch delete mailbox messages](https://sendmux.ai/docs/api/mailbox-api/batch-delete-mailbox-messages.md): Moves up to 100 messages to Trash by default with state-safe conflict handling. Set `permanent=true` to permanently delete them. - [Count mailbox messages](https://sendmux.ai/docs/api/mailbox-api/count-mailbox-messages.md): Returns a count for the supplied mailbox message filters without returning message rows. - [Get message query changes](https://sendmux.ai/docs/api/mailbox-api/get-message-query-changes.md): Returns filtered message-list index changes since a prior message query state, or the current message query state when omitted. - [Get message search snippets](https://sendmux.ai/docs/api/mailbox-api/get-message-search-snippets.md): Returns subject and preview snippets for a text search. Provide `message_ids` to snippet exact messages, or omit it to snippet the first filtered results. - [Get a mailbox message](https://sendmux.ai/docs/api/mailbox-api/get-a-mailbox-message.md): Returns one message from the authenticated mailbox. Responses include a weak `ETag` header. When attachment metadata includes short-lived download URLs, a conditional request may return `200` even when the stable message ETag matches so the response can renew expired URLs. - [Get raw message body](https://sendmux.ai/docs/api/mailbox-api/get-raw-message-body.md): Returns raw message body content for the authenticated mailbox. This endpoint does not strip signatures, strip quoted replies, extract links, or clean the body into a structured content shape. - [Get clean message content](https://sendmux.ai/docs/api/mailbox-api/get-clean-message-content.md): Returns deterministic clean JSON content for one message. Attachment output is metadata only; attachment contents are not parsed by this endpoint. - [Update mailbox message flags](https://sendmux.ai/docs/api/mailbox-api/update-mailbox-message-flags.md): Updates mutable message flags and keywords unconditionally unless `If-Match` is supplied. Send `If-Match` with a prior ETag to reject stale edits. - [Delete a mailbox message](https://sendmux.ai/docs/api/mailbox-api/delete-a-mailbox-message.md): Moves a message to Trash by default, unconditionally unless `If-Match` is supplied. Set `permanent=true` to permanently delete it. Send `If-Match` with a prior ETag to reject stale deletes. - [Upload a mailbox attachment](https://sendmux.ai/docs/api/mailbox-api/upload-a-mailbox-attachment.md): Uploads one attachment as binary data and returns a blob ID that can be supplied to `POST /mailbox/messages/send`. - [Create a presigned mailbox attachment upload](https://sendmux.ai/docs/api/mailbox-api/create-a-presigned-mailbox-attachment-upload.md): Creates a short-lived signed PUT URL for one attachment. The caller must be authenticated to mint the URL; the later PUT uses the signed URL, exact Content-Type, and exact Content-Length without sending an API key. The PUT returns a blob ID that can be supplied to `POST /mailbox/messages/send`. - [Download a message attachment](https://sendmux.ai/docs/api/mailbox-api/download-a-message-attachment.md): Streams one attachment from a message through the authenticated endpoint. Attachment metadata also provides short-lived download URLs for clients that cannot set request headers. Supports standard byte ranges. - [Send a mailbox message](https://sendmux.ai/docs/api/mailbox-api/send-a-mailbox-message.md): Creates and queues a message from the authenticated mailbox. Supply an `Idempotency-Key` header to safely retry. Attachments may use small inline base64 content or blob IDs returned by `POST /mailbox/attachments:upload` or `POST /mailbox/attachment-uploads`. - [List mailbox threads](https://sendmux.ai/docs/api/mailbox-api/list-mailbox-threads.md): Returns a cursor-paginated list of conversation threads for the authenticated mailbox. Filter by text, participant, folder, unread state, attachment presence, or date range. - [Get a mailbox thread](https://sendmux.ai/docs/api/mailbox-api/get-a-mailbox-thread.md): Returns thread metadata, message IDs, participants, last message, unread count, and state for one conversation. Responses include a weak `ETag` header. - [List thread messages](https://sendmux.ai/docs/api/mailbox-api/list-thread-messages.md): Returns cursor-paginated message summaries for one thread. Use the thread content endpoint when you need cleaned bodies. - [Get clean thread content](https://sendmux.ai/docs/api/mailbox-api/get-clean-thread-content.md): Returns a cursor-paginated clean JSON view of messages in a thread. Attachment output is metadata only; attachment contents are not parsed by this endpoint. - [List mailbox folders](https://sendmux.ai/docs/api/mailbox-api/list-mailbox-folders.md): Returns a cursor-paginated list of folders for the authenticated mailbox. - [Create a mailbox folder](https://sendmux.ai/docs/api/mailbox-api/create-a-mailbox-folder.md): Creates a folder in the authenticated mailbox. - [Get folder changes](https://sendmux.ai/docs/api/mailbox-api/get-folder-changes.md): Returns folder changes since a prior folder state, or the current folder state when omitted. - [Get folder query changes](https://sendmux.ai/docs/api/mailbox-api/get-folder-query-changes.md): Returns folder-list index changes since a prior folder query state, or the current folder query state when omitted. - [Get a mailbox folder](https://sendmux.ai/docs/api/mailbox-api/get-a-mailbox-folder.md): Returns one folder from the authenticated mailbox. Responses include a weak `ETag` header. - [Update a mailbox folder](https://sendmux.ai/docs/api/mailbox-api/update-a-mailbox-folder.md): Updates a folder unconditionally unless `If-Match` is supplied. Send `If-Match` with a prior ETag to reject stale edits. - [Delete a mailbox folder](https://sendmux.ai/docs/api/mailbox-api/delete-a-mailbox-folder.md): Deletes an empty custom folder unconditionally unless `If-Match` is supplied. Built-in folders and non-empty folders cannot be deleted. Send `If-Match` with a prior ETag to reject stale deletes. - [List mailbox submissions](https://sendmux.ai/docs/api/mailbox-api/list-mailbox-submissions.md): Returns a cursor-paginated list of send submissions for the authenticated mailbox, including delivery lifecycle fields when available. - [Get submission changes](https://sendmux.ai/docs/api/mailbox-api/get-submission-changes.md): Returns send submission changes since a prior submission state, or the current state when omitted. - [Get a mailbox submission](https://sendmux.ai/docs/api/mailbox-api/get-a-mailbox-submission.md): Returns one send submission for the authenticated mailbox. Responses include a weak `ETag` header. - [List mailbox quotas](https://sendmux.ai/docs/api/mailbox-api/list-mailbox-quotas.md): Returns a cursor-paginated list of quota usage and limits for the authenticated mailbox. - [Get quota changes](https://sendmux.ai/docs/api/mailbox-api/get-quota-changes.md): Returns quota changes since a prior quota state, or the current quota state when omitted. - [Get mailbox usage](https://sendmux.ai/docs/api/mailbox-api/get-mailbox-usage.md): Returns a compact usage view derived from mailbox quota records. Responses include a weak `ETag` header. - [Get mailbox changes](https://sendmux.ai/docs/api/mailbox-api/get-mailbox-changes.md): Returns message changes in the legacy shape when `types` is omitted. Pass a comma-separated `types` list for a typed state map. - [Stream mailbox events](https://sendmux.ai/docs/api/mailbox-api/stream-mailbox-events.md): Streams bounded rich mailbox events for connected clients. Each received-message event includes subject, participants, preview, attachment metadata, and a capped body snapshot; use the message endpoints for full content or attachment bytes. - [Introduction](https://sendmux.ai/docs/sending-api/introduction.md): Send emails programmatically via the Sendmux Sending API. - [Errors](https://sendmux.ai/docs/sending-api/errors.md): Error codes and handling for the Sendmux Sending API. - [Send a single email](https://sendmux.ai/docs/api/emails/send-a-single-email.md): Queue a single email for delivery. Requires `email.send` permission. - [Send a batch of emails](https://sendmux.ai/docs/api/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. - [Upload an attachment](https://sendmux.ai/docs/api/attachments/upload-an-attachment.md): Upload binary attachment bytes and receive a temporary attachment_id for use in attachments[]. Requires `email.send` permission. - [Get attachment metadata](https://sendmux.ai/docs/api/attachments/get-attachment-metadata.md): Return metadata for a temporary uploaded attachment owned by the authenticated team. File bytes are not returned. - [Create an attachment upload URL](https://sendmux.ai/docs/api/attachments/create-an-attachment-upload-url.md): Create a short-lived upload URL and token that lets a remote client PUT one binary attachment without exposing the API key on the upload request. Requires `email.send` permission. - [Upload bytes to an attachment upload URL](https://sendmux.ai/docs/api/attachments/upload-bytes-to-an-attachment-upload-url.md): Upload the exact binary bytes for a previously-created attachment upload URL. This operation uses the short-lived upload token header returned by POST /emails/attachment-uploads, not a Sendmux API key. ## OpenAPI Specs - [openapi-app](https://sendmux.ai/docs/openapi-app.json) - [openapi](https://smtp.sendmux.ai/api/v1/openapi.json) - [openapi-sending](https://sendmux.ai/docs/openapi-sending.json) ## Optional - [App](https://app.sendmux.ai) - [Website](https://sendmux.ai)