# inbound - [Introduction](https://inbound.new/docs/quickstart/introduction.md): Welcome to Inbound - the simple email processing API - [Getting Started](https://inbound.new/docs/quickstart/getting-started.md): Set up Inbound and send your first email in minutes - [Mailboxes & SMTP](https://inbound.new/docs/mailboxes/overview.md): Connect to Inbound with scoped, managed IMAP and SMTP credentials - [Connect with IMAP](https://inbound.new/docs/mailboxes/connect-imap.md): Create a managed mailbox credential and read mail over IMAP - [Send with SMTP](https://inbound.new/docs/mailboxes/connect-smtp.md): Send email through Inbound from any SMTP client using a managed credential - [Scopes and Permissions](https://inbound.new/docs/mailboxes/scopes-and-permissions.md): Control exactly which messages a credential can read and which addresses it can send from - [Manage Credentials](https://inbound.new/docs/mailboxes/manage-credentials.md): Create, update, disable, rotate, and delete managed mailbox and SMTP credentials - [Access and Limits](https://inbound.new/docs/mailboxes/access-and-limits.md): Restrict a credential's protocols and IP addresses, cap its storage and sending, and choose what mailbox users manage themselves - [Activity Log](https://inbound.new/docs/mailboxes/activity.md): See what each mailbox's users run into: sign-ins, refused sign-ins, IMAP sessions, command errors and send failures - [HTTP Mailbox API](https://inbound.new/docs/mailboxes/http-api.md): Manage the same folders, messages, flags and sync state over HTTP and IMAP - [IMAP Behavior](https://inbound.new/docs/mailboxes/imap-behavior.md): Folders, supported IMAP features, synchronization, limits, and known limitations - [Mailbox Filters](https://inbound.new/docs/mailboxes/filters.md): Sort, flag and junk received mail per mailbox with ordered rules - [Junk Filter](https://inbound.new/docs/mailboxes/junk-filter.md): How Inbound marks spam and threats as junk, and how to tune it - [MCP Server](https://inbound.new/docs/integrations/mcp.md): Connect Claude, ChatGPT, Cursor, OpenCode and other AI agents to Inbound, and give agents their own mailboxes - [Better Auth](https://inbound.new/docs/integrations/better-auth.md): Automatically send transactional emails for authentication events with Better Auth - [Introduction](https://inbound.new/docs/api-reference/introduction.md): Simple email processing API for receiving and managing emails programmatically - [Rate Limits](https://inbound.new/docs/api-reference/rate-limits.md): Understand rate limits and how to increase them for the Inbound API - [Webhook Structure](https://inbound.new/docs/api-reference/webhook.md): Webhook payload structure - [Security](https://inbound.new/docs/api-reference/security.md): How to securely verify webhook requests from Inbound - [Error Codes](https://inbound.new/docs/api-reference/errors.md): Comprehensive list of API error codes and their meanings - [List all domains](https://inbound.new/docs/api-reference/domains/list-all-domains.md): Get paginated list of domains for authenticated user with optional filtering. - [Create new domain](https://inbound.new/docs/api-reference/domains/create-new-domain.md): Add a new domain for email receiving. Automatically initiates verification and returns required DNS records. Subdomains inherit verification from their verified parent domain. - [Get domain by ID](https://inbound.new/docs/api-reference/domains/get-domain-by-id.md): Get detailed information about a specific domain including DNS records. Use `?check=true` for a live verification check. - [Delete domain](https://inbound.new/docs/api-reference/domains/delete-domain.md): Delete a domain and all associated resources including email addresses, DNS records, and SES configurations. Root domains with subdomains must have subdomains deleted first. - [Update domain catch-all and subdomain settings](https://inbound.new/docs/api-reference/domains/update-domain-catch-all-and-subdomain-settings.md): Update catch-all email settings for a domain. Catch-all receives emails sent to any address on your domain. Set includeSubdomains on a verified root domain to also receive mail for every subdomain (publish the returned wildcard MX record); subdomain mail is delivered to the root domain's catch-all e… - [Enable DKIM](https://inbound.new/docs/api-reference/domains/enable-dkim.md): Start DKIM signing for a domain and return the three CNAME records to add to its DNS. Until they are published, mail is still sent and signed by Amazon SES. Safe to call again: it returns the existing records, or restarts setup after a failure. - [List all endpoints](https://inbound.new/docs/api-reference/endpoints/list-all-endpoints.md): Get paginated list of endpoints for authenticated user with optional filtering by type, active status, sort order, and search by name - [Create new endpoint](https://inbound.new/docs/api-reference/endpoints/create-new-endpoint.md): Create a new endpoint (webhook, email, or email_group) for the authenticated user - [Get endpoint details](https://inbound.new/docs/api-reference/endpoints/get-endpoint-details.md): Get detailed information about a specific endpoint including delivery stats, recent deliveries, associated emails, and catch-all domains - [Update endpoint](https://inbound.new/docs/api-reference/endpoints/update-endpoint.md): Update an existing endpoint's name, description, active status, config, or webhook format - [Delete endpoint](https://inbound.new/docs/api-reference/endpoints/delete-endpoint.md): Delete an endpoint and clean up associated resources (email addresses become store-only, domains lose catch-all config, group entries and delivery history are deleted) - [Test endpoint](https://inbound.new/docs/api-reference/endpoints/test-endpoint.md): Test an endpoint by sending a test payload. For webhooks, supports inbound, discord, and slack formats. For email endpoints, simulates the forwarding process. - [List all email addresses](https://inbound.new/docs/api-reference/email-addresses/list-all-email-addresses.md): Get paginated list of email addresses for authenticated user with optional filtering by domain, active status, and receipt rule configuration - [Create email address](https://inbound.new/docs/api-reference/email-addresses/create-email-address.md): Create a new email address for an authenticated user's domain, optionally routing to a webhook or endpoint. - [Get email address](https://inbound.new/docs/api-reference/email-addresses/get-email-address.md): Get a specific email address by ID with detailed information including routing configuration - [Update email address](https://inbound.new/docs/api-reference/email-addresses/update-email-address.md): Update an email address's routing (endpoint/webhook) or active status. Cannot have both endpoint and webhook. - [Delete email address](https://inbound.new/docs/api-reference/email-addresses/delete-email-address.md): Delete an email address. Returns cleanup status. - [List email attachments](https://inbound.new/docs/api-reference/attachments/list-email-attachments.md): List every attachment in a received email, including ones without a filename, with a download URL for each. - [Download attachment by position](https://inbound.new/docs/api-reference/attachments/download-attachment-by-position.md): Download an attachment by its position in the email (the `index` from List email attachments; webhook `downloadUrl`s use this form). Works for attachments without a filename and for several attachments sharing one name. - [Download email attachment](https://inbound.new/docs/api-reference/attachments/download-email-attachment.md): Download an attachment by filename. If several attachments share the name, the first is returned; use Download attachment by position to get a specific one. - [Revoke the current API key](https://inbound.new/docs/api-reference/authentication/revoke-the-current-api-key.md): Permanently revokes the API key used to authenticate this request. - [List all emails](https://inbound.new/docs/api-reference/emails/list-all-emails.md): List all email activity (sent, received, and scheduled) with comprehensive filtering options. - [Send an email](https://inbound.new/docs/api-reference/emails/send-an-email.md): Send an email immediately or schedule it for later using the scheduled_at parameter. Supports HTML/text content, attachments, and custom headers. - [Get email by ID](https://inbound.new/docs/api-reference/emails/get-email-by-id.md): Retrieve a single email by ID. Works for sent, received, and scheduled emails. - [Cancel scheduled email](https://inbound.new/docs/api-reference/emails/cancel-scheduled-email.md): Cancel a scheduled email by ID. Only works for emails that haven't been sent yet. - [Update email](https://inbound.new/docs/api-reference/emails/update-email.md): Update metadata for a received email. Supports marking emails as read/unread, archived/unarchived and junk/not junk. - [Pause scheduled email](https://inbound.new/docs/api-reference/emails/pause-scheduled-email.md): Pause a scheduled email by ID. The email is removed from the delivery queue but kept in the database and can be resumed later with POST /emails/:id/resume. Only works for emails with status "scheduled". - [Resume paused scheduled email](https://inbound.new/docs/api-reference/emails/resume-paused-scheduled-email.md): Resume a paused scheduled email by ID. The email is re-queued for its original send time, or sent shortly if that time has already passed. - [Reply to an email](https://inbound.new/docs/api-reference/emails/reply-to-an-email.md): Reply to an email or thread. Accepts either an email ID or thread ID (replies to latest message in thread). Supports reply all functionality. - [Retry email delivery](https://inbound.new/docs/api-reference/emails/retry-email-delivery.md): Retry delivery of a received email. Can retry to a specific endpoint, retry a specific failed delivery, or retry to all configured endpoints. - [List inbox threads](https://inbound.new/docs/api-reference/inbox/list-inbox-threads.md): List email threads (conversations) for your inbox with cursor-based pagination. This is the primary endpoint for building an inbox UI. - [Get thread by ID](https://inbound.new/docs/api-reference/inbox/get-thread-by-id.md): Retrieve a complete email thread (conversation) with all messages. - [List managed mailboxes](https://inbound.new/docs/api-reference/mailboxes/list-managed-mailboxes.md) - [Create a managed mailbox](https://inbound.new/docs/api-reference/mailboxes/create-a-managed-mailbox.md) - [List activity for all mailboxes](https://inbound.new/docs/api-reference/mailboxes/list-activity-for-all-mailboxes.md): Sign-ins, refused sign-ins, IMAP sessions, command errors and send failures for every mailbox in the account, newest first. Kept for 30 days. Account API key only. - [List mailbox activity](https://inbound.new/docs/api-reference/mailboxes/list-mailbox-activity.md): Sign-ins, refused sign-ins, IMAP sessions, command errors and send failures for one mailbox, newest first. Kept for 30 days. The mailbox's own password may read it only when the account turned on `selfService.activity`. - [Get a mailbox](https://inbound.new/docs/api-reference/mailboxes/get-a-mailbox.md): Get a mailbox's identity, scopes and unread count. Authenticate with the account API key, or with the mailbox password and the ID `me`. - [Update a managed mailbox](https://inbound.new/docs/api-reference/mailboxes/update-a-managed-mailbox.md) - [Delete a managed mailbox](https://inbound.new/docs/api-reference/mailboxes/delete-a-managed-mailbox.md) - [Rotate a mailbox password](https://inbound.new/docs/api-reference/mailboxes/rotate-a-mailbox-password.md): Replace a mailbox password; the old one stops working immediately. Authenticate with the account API key, or with the mailbox password and the ID `me` when the mailbox allows self-service password changes. - [List mailbox messages](https://inbound.new/docs/api-reference/mailboxes/list-mailbox-messages.md): List messages in a mailbox folder, newest first. Folder membership and read state are the mailbox's own (shared with IMAP), separate from the dashboard's read state. - [Get a mailbox message](https://inbound.new/docs/api-reference/mailboxes/get-a-mailbox-message.md): Get a received message, or a message stored in one of the mailbox's folders (such as a sent copy), with its full text and HTML body. - [Mark a mailbox message read, archived or junk](https://inbound.new/docs/api-reference/mailboxes/mark-a-mailbox-message-read-archived-or-junk.md): Requires a read_write mailbox. Updates the mailbox's own state, shared with IMAP: isRead sets \Seen, isArchived moves between INBOX and Archive, and isJunk moves between INBOX and Junk for this mailbox only. The dashboard's state and the account-level spam verdict are separate. - [Get a mailbox thread](https://inbound.new/docs/api-reference/mailboxes/get-a-mailbox-thread.md): Get every message of a conversation that is visible to the mailbox, oldest first. - [Download a mailbox attachment](https://inbound.new/docs/api-reference/mailboxes/download-a-mailbox-attachment.md): Download an attachment of a received message by its position (0-based). - [List mailbox folders](https://inbound.new/docs/api-reference/mailboxes/list-mailbox-folders.md): List the mailbox's folders (the same folders IMAP shows): INBOX, Sent, Drafts, Trash, Junk, Archive, one read-only Scopes/… folder per scope, and folders created by the user, with message and unread counts. - [Create a mailbox folder](https://inbound.new/docs/api-reference/mailboxes/create-a-mailbox-folder.md): Requires a read_write mailbox. Visible over IMAP right away. - [Delete a mailbox folder](https://inbound.new/docs/api-reference/mailboxes/delete-a-mailbox-folder.md): Requires a read_write mailbox. Deletes the folder and its messages (received mail stays in the account). Subfolders are kept. - [Rename or subscribe a mailbox folder](https://inbound.new/docs/api-reference/mailboxes/rename-or-subscribe-a-mailbox-folder.md): Requires a read_write mailbox. Special folders (INBOX, Sent, Drafts, Trash, Junk, Archive) and scope folders can't be renamed. - [Expunge a mailbox folder](https://inbound.new/docs/api-reference/mailboxes/expunge-a-mailbox-folder.md): Requires a read_write mailbox. Permanently removes the folder's messages flagged \Deleted, like IMAP EXPUNGE, and returns their UIDs. - [List folder messages](https://inbound.new/docs/api-reference/mailboxes/list-folder-messages.md): List the messages in a folder, newest UID first (UID ascending when sinceModseq or sinceUid is set). The same state IMAP clients see: flags, UIDs and moves are shared. - [Add a message to a folder](https://inbound.new/docs/api-reference/mailboxes/add-a-message-to-a-folder.md): Requires a read_write mailbox. Stores a message in a folder, like IMAP APPEND: either a raw RFC 822 message (base64) or message fields that are built into one (for example a draft). Nothing is sent. Size and storage limits are the same as over IMAP. Appending to Sent with a Message-ID that is alread… - [Get a folder message](https://inbound.new/docs/api-reference/mailboxes/get-a-folder-message.md): Get a message by folder and UID, with its parsed headers, bodies, flags and attachment list. - [Delete a folder message](https://inbound.new/docs/api-reference/mailboxes/delete-a-folder-message.md): Requires a read_write mailbox. Moves the message to Trash, or removes it permanently when `permanent=true` or it is already in Trash. Received mail stays in the account and the dashboard. - [Update a folder message's flags](https://inbound.new/docs/api-reference/mailboxes/update-a-folder-messages-flags.md): Requires a read_write mailbox. Works like IMAP STORE, for example `\Seen`, `\Flagged`, `\Answered`, `\Deleted`, `\Draft` or a keyword. Flags of received mail are shared between INBOX and the scope folders. - [Download a folder message's raw source](https://inbound.new/docs/api-reference/mailboxes/download-a-folder-messages-raw-source.md): Returns the full RFC 822 message (`message/rfc822`), exactly as IMAP serves it. A 200 response is the binary message, not JSON. - [Move a folder message](https://inbound.new/docs/api-reference/mailboxes/move-a-folder-message.md): Requires a read_write mailbox. Moves the message to another folder, like IMAP MOVE. Moving received mail to Junk or INBOX marks it as junk or not junk for this mailbox only; the account-level verdict is unchanged. - [Copy a folder message](https://inbound.new/docs/api-reference/mailboxes/copy-a-folder-message.md): Requires a read_write mailbox. Copies the message to another folder, like IMAP COPY. Copying received mail to Junk or INBOX marks it as junk or not junk for this mailbox only; the account-level verdict is unchanged. - [List a folder message's attachments](https://inbound.new/docs/api-reference/mailboxes/list-a-folder-messages-attachments.md): List every attachment of a received or appended message, parsed from its raw source. - [Download a folder message's attachment](https://inbound.new/docs/api-reference/mailboxes/download-a-folder-messages-attachment.md): Download an attachment by its 0-based position in the attachment list. A 200 response is the binary attachment with its own content type, not JSON. - [List mailbox filters](https://inbound.new/docs/api-reference/mailboxes/list-mailbox-filters.md): List the mailbox's filters in the order they run. A mailbox password can use this only when the account allows filter self-service. - [Create a mailbox filter](https://inbound.new/docs/api-reference/mailboxes/create-a-mailbox-filter.md): Add a filter that runs last. Filters apply to mail as it reaches the mailbox (and to existing mail with the apply endpoint). `move_to` folders must exist and can't be scope folders. At most 100 filters per mailbox, 20 conditions and 20 actions per filter. - [Reorder mailbox filters](https://inbound.new/docs/api-reference/mailboxes/reorder-mailbox-filters.md): Set the order filters run in. The list must contain every filter of the mailbox exactly once; otherwise nothing changes and the response is 409. - [Run mailbox filters on a folder](https://inbound.new/docs/api-reference/mailboxes/run-mailbox-filters-on-a-folder.md): Run the mailbox's enabled filters over existing messages in a folder, in UID order, up to 500 messages per call. Repeat with `afterUid` set to `lastUid` while `hasMore` is true. - [Get a mailbox filter](https://inbound.new/docs/api-reference/mailboxes/get-a-mailbox-filter.md) - [Delete a mailbox filter](https://inbound.new/docs/api-reference/mailboxes/delete-a-mailbox-filter.md): Mail the filter already moved or flagged stays where it is. - [Update a mailbox filter](https://inbound.new/docs/api-reference/mailboxes/update-a-mailbox-filter.md): Change any of a filter's fields. `conditions` and `actions` replace the whole list. Use the reorder endpoint to change its position. - [Run one mailbox filter on a folder](https://inbound.new/docs/api-reference/mailboxes/run-one-mailbox-filter-on-a-folder.md): Run a single filter over existing messages in a folder, up to 500 messages per call. Repeat with `afterUid` set to `lastUid` while `hasMore` is true. - [Get mailbox spam settings](https://inbound.new/docs/api-reference/mailboxes/get-mailbox-spam-settings.md): The mailbox's junk filter level and sender allow and block lists. A mailbox password can use this only when the account allows spam self-service. - [Replace mailbox spam settings](https://inbound.new/docs/api-reference/mailboxes/replace-mailbox-spam-settings.md): Set the mailbox's junk filter level and replace both sender lists (at most 1000 entries each). The allow list wins over the block list. Applies to new mail and reclassifies existing INBOX and Junk messages without a mailbox-specific decision. - [Add a sender to the mailbox spam allow list](https://inbound.new/docs/api-reference/mailboxes/add-a-sender-to-the-mailbox-spam-allow-list.md): Adds the address or @domain (removing it from the block list if it was there). A list holds at most 1000 entries. - [Remove a sender from the mailbox spam allow list](https://inbound.new/docs/api-reference/mailboxes/remove-a-sender-from-the-mailbox-spam-allow-list.md) - [Add a sender to the mailbox spam block list](https://inbound.new/docs/api-reference/mailboxes/add-a-sender-to-the-mailbox-spam-block-list.md): Adds the address or @domain (removing it from the allow list if it was there). A list holds at most 1000 entries. - [Remove a sender from the mailbox spam block list](https://inbound.new/docs/api-reference/mailboxes/remove-a-sender-from-the-mailbox-spam-block-list.md) - [Get spam filter settings](https://inbound.new/docs/api-reference/spam-filter/get-spam-filter-settings.md): Get the account's junk filter level. Every received email is checked for spam, phishing, fraud, malware and impersonation; emails at or above the level's threshold are marked as junk. Junk mail is still delivered to endpoints, with `spam.isJunk` in the webhook, and appears in mailbox Junk folders. - [Update spam filter settings](https://inbound.new/docs/api-reference/spam-filter/update-spam-filter-settings.md): Set the account's junk filter level. Applies to emails received from now on; earlier verdicts are not recalculated. - [List guard rules](https://inbound.new/docs/api-reference/guard/list-guard-rules.md): Get all guard rules for the authenticated user with optional filtering and pagination. - [Create guard rule](https://inbound.new/docs/api-reference/guard/create-guard-rule.md): Create an active email filtering rule for the authenticated account. - [Get guard rule](https://inbound.new/docs/api-reference/guard/get-guard-rule.md): Get a specific guard rule by ID. - [Update guard rule](https://inbound.new/docs/api-reference/guard/update-guard-rule.md): Update an existing guard rule. - [Delete guard rule](https://inbound.new/docs/api-reference/guard/delete-guard-rule.md): Delete a guard rule by ID. - [Check if rule matches email](https://inbound.new/docs/api-reference/guard/check-if-rule-matches-email.md): Test a guard rule against a specific email to see if it would match. - [Generate rule from natural language](https://inbound.new/docs/api-reference/guard/generate-rule-from-natural-language.md): Use AI to convert a natural language description into an explicit guard rule configuration. - [Email received](https://inbound.new/docs/api-reference/webhooks/email-received.md): When emails arrive at your configured addresses, Inbound sends a webhook to your endpoint with the complete email data. ## OpenAPI Specs - [openapi](https://inbound.new/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.