{"openapi":"3.0.0","info":{"description":"Disposable email API: create inboxes, capture and read messages (text/HTML/raw/attachments), validate addresses, starred messages, labels, folders, domains, and public mail statistics","version":[]},"servers":[{"description":"Disposable email API: create inboxes, capture and read messages (text/HTML/raw/attachments), validate addresses, starred messages, labels, folders, domains, and public mail statistics","url":"https://api.apirails.com/mailsac"}],"paths":{"/addresses":{"get":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses"},"summary":"List all enhanced email addresses","description":"Get an array of enhanced private inbox address objects for the account. These addresses must be setup (\"reserved\") using `POST /api/addresses/:email`, or [on the Add Email Address page](https://mailsac.com/private-address).","security":[{"bearerAuth":[]}]}},"/addresses/{email}":{"get":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}"},"summary":"Fetch an address or check if it is reserved","description":"Fetch an address or check if it is reserved","security":[{"bearerAuth":[]}]},"post":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}"},"summary":"Reserve (create/own) a private email address","description":"Sets the email address private and \"owned\" by the account. All messages which already exist, and any future messages which are received, will be private to this account only. An email address must be reserved to be able to forward messages to another email address, Slack, web sockets, or webhooks. Public email addresses, and private email","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"enablews":{"type":"boolean","description":"boolean, defaults false - set to true to enable web socket forwarding (see Web Socket API)","enum":[true,false]},"forward":{"type":"string","description":"email address - SMTP forwarding / standard email forwarding - set to \"\" or null to disable forwarding"},"info":{"type":"string","description":"User configurable metadata about this enhanced private address."},"webhook":{"type":"string","description":"url - set to your public webhook endpoint to receive mail via webhook - set to \"\" or null to disable webhooks"},"webhookSlack":{"type":"string","description":"Slack webhook URL where messages will be published."},"webhookSlackToFrom":{"type":"boolean","description":"When webhookSlack is set, controls whether the message includes TO and FROM","enum":[true,false]}}},"example":{"enablews":"","forward":"","info":"","webhook":"","webhookSlack":"","webhookSlackToFrom":""}}}}},"put":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}"},"summary":"Update private email address forwarding and metadata","description":"For a private email address, set it to forward to another place. It can be forwarded to another email (with `via mailsac` indicator), to a websocket, to a webhook, or to a Slack channel.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"enablews":{"type":"boolean","description":"boolean, defaults false - set to true to enable web socket forwarding (see Web Socket API)","enum":[true,false]},"forward":{"type":"string","description":"email address - SMTP forwarding / standard email forwarding - set to \"\" or null to disable forwarding"},"info":{"type":"string","description":"User configurable metadata about this enhanced private address."},"webhook":{"type":"string","description":"url - set to your public webhook endpoint to receive mail via webhook - set to \"\" or null to disable webhooks"},"webhookSlack":{"type":"string","description":"Slack webhook URL where messages will be published."},"webhookSlackToFrom":{"type":"boolean","description":"When webhookSlack is set, controls whether the message includes TO and FROM","enum":[true,false]}}},"example":{"enablews":"","forward":"","info":"","webhook":"","webhookSlack":"","webhookSlackToFrom":""}}}}},"delete":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}"},"summary":"Release an enhanced email address","description":"Removes this enhanced private address from ownership by the account. Any email received to the address's inbox will be public in the future, unless the address was under a custom domain which is set private.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/addresses/{email}/availability":{"get":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/availability"},"summary":"Check address ownership","description":"Check address ownership","security":[{"bearerAuth":[]}]}},"/private-addresses-bulk":{"post":{"tags":["Addresses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/private-addresses-bulk"},"summary":"Reserve multiple enhanced addresses","description":"Reserves multiple enhanced private addresses. The max addresses per request is 100. It is not necessary to create enhanced addresses before receiving email. Enhanced addresses are only necessary to forward messages to another email address, Slack, web sockets, webhooks, or fetch messages over POP3.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"addresses":{"type":"string","description":"email addresses"}}},"example":{"addresses":["anything-123@mailsac.com","anything-456@example.com"]}}}}}},"/validations/addresses/{email}":{"get":{"tags":["Validation"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/validations/addresses/{email}"},"summary":"Validate an email address and if it is disposable","description":"Determine whether an email address is a valid format, whether it is a disposable address, and the domains or IP addresses it is associated with.","security":[{"bearerAuth":[]}]}},"/validations/addresses":{"post":{"tags":["Validation"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/validations/addresses"},"summary":"Validate up to 50 email addresses","description":"Determine whether an email address is a valid format, whether it is a disposable address, and the domains or IP addresses it is associated with.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"emails":{"type":"string","description":"email addresses"}}},"example":{"emails":["anything-123@mailsac.com","anything-456@example.com"]}}}}}},"/addresses/{email}/message-count":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/message-count"},"summary":"Count messages for an email inbox","description":"Get the number of messages for an email inbox address. **It is NOT necessary to reserve the address** before using this route. Whether it is an address on a custom domain, or a public domain, or mailsac.com, the mail can be counted as long as nobody else owns it.","security":[{"bearerAuth":[]}]}},"/addresses/{email}/messages":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages"},"summary":"List messages for an email inbox","description":"Get a list of messages for the email address. Messages are always **sorted in decending order by when they were received**, with the newest message always in the first position of the array. The email message objects are abbreviated to provide basic meta data. To get more information about a specific message, use `GET /api/addresses/{emai","security":[{"bearerAuth":[]}]},"delete":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages"},"summary":"Delete all messages for an email inbox","description":"This deletes all messages for a specific email address. The address must be an owned address or an address in a owned domain. Starred messages will not be deleted. Use `DELETE /addresses/{email}/messages/{messageId}` to remove starred messages or unstar the messages before calling this route.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/addresses/starred/messages":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/starred/messages"},"summary":"List starred (saved) messages on the account","description":"Get a list of messages that have been saved and made private for the entire account using the \"star message\" feature. Messages recieved via the Capture Service will also show up as starred IF the `capturePrivate` flag on the account is enabled.","security":[{"bearerAuth":[]}]}},"/addresses/{email}/messages/{messageId}":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}"},"summary":"Get email message metadata","description":"Retrieves metadata about a single email message. This route includes additional metadata not available when listing messages, such as parsed links from the text or HTML body, and attachment md5sums. To get even more information about message attachments, like filenames, see the Attachments API. To get the entire original SMTP message, see","security":[{"bearerAuth":[]}]},"delete":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}"},"summary":"Delete an email message","description":"Deletes an individual email message. There is no trash or undo.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/raw/{email}/{messageId}":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/raw/{email}/{messageId}"},"summary":"Get original SMTP message","description":"Gets the entire original SMTP message transport - everything that was sent over the network to Mailsac's inbound servers, plus any Mailsac-generated `Received` headers, and special `x-mailsac-*` headers.","security":[{"bearerAuth":[]}]}},"/addresses/{email}/messages/{messageId}/headers":{"get":{"tags":["Messages"],"parameters":[{"name":"messageHeadersFormat","in":"query","description":"messageHeadersFormat","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["json","json-ordered","plain"]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/headers"},"summary":"Get parsed message headers","description":"Returns pre-parsed message headers in one of 3 formats - `json`, `json-ordered`, or `plain`. If no querystring parameter is provided, the default format will be `json`. Every email is different; fields in the below examples are not guaranteed to exist.","security":[{"bearerAuth":[]}]}},"/dirty/{email}/{messageId}":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/dirty/{email}/{messageId}"},"summary":"Get message HTML body (dirty)","description":"Get a message's HTML content. Attached images are inlined and nothing has been stripped. When no HTML body was sent in the original message, a simple HTML body will be created. Use the querystring param ?download=1 to trigger file download in browser.","security":[{"bearerAuth":[]}]}},"/body/{email}/{messageId}":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/body/{email}/{messageId}"},"summary":"Get the message HTML body (sanitized)","description":"Get safe HTML from an email message. Scripts, images and links are stripped out. This HTML is safer to render than the potentially \"dirty\" original HTML. When no HTML body was sent in the original message, a simple HTML body will be created. Use the querystring param ?download=1 to trigger file download in browser.","security":[{"bearerAuth":[]}]}},"/text/{email}/{messageId}":{"get":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/text/{email}/{messageId}"},"summary":"Get message plaintext","description":"Get a message's text content. If the original message only contained HTML, a simple plain text body will be generated. HTTP links in the plain text email will be available when fetching the message's metadata at the `message.links[]` property. Use the querystring param ?download=1 to trigger file download in browser.","security":[{"bearerAuth":[]}]}},"/addresses/{email}/messages/{messageId}/star":{"put":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/star"},"summary":"Star (save) a message","description":"Toggle a message's *starred* status so it will not be automatically recycled when the account's message storage limit is reached. There is no PUT body. It returns only the message metadata.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/addresses/{email}/messages/{messageId}/labels/{label}":{"put":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/labels/{label}"},"summary":"Add a label to a message","description":"To help organize messages and group messages together, add a label to a message. Labels are used in the Inbox UI to group messages. When successful, returns 200 with a subset of the message object. When the label already exists on the message, the message is not modified and the API endpoint returns 200. No PUT body is needed.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"delete":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/labels/{label}"},"summary":"Remove a label from a message","description":"Removes a label from a message. Returns 200 with a subset of the message object when successful. When the label did not exists on the message, the message is not modified and the API endpoint returns 200.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/addresses/{email}/messages/{messageId}/folder/{folder}":{"put":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/folder/{folder}"},"summary":"Move a message into a folder","description":"Move the message to a different mail folder. No new folders can be added. To organize mail, use labels. No PUT body is needed.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/addresses/{email}/messages/{messageId}/read/{readBoolean}":{"put":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/read/{readBoolean}"},"summary":"Set message read/unread status","description":"Change the read state of a message. Pass `readBoolean` as `true` to mark the message as read, and `false` to mark it as unread. The default for any new message `false` (unread). No PUT body is needed.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/inbox":{"get":{"tags":["Inbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/inbox"},"summary":"Get all account messages paginated","description":"Used by the Inbox UI to display all messages for the account, across all domains and private addresses. Returns email message short metadata, paginated, with the global account unread message count.","security":[{"bearerAuth":[]}]}},"/inbox-filter":{"get":{"tags":["Inbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/inbox-filter"},"summary":"Filter messages in account by to, from, and/or subject","description":"Filter account messages within the the `to` and `from` `.address` fields, and the `subject` line. This differs from `/api/inbox-search` by using logical AND, rather than OR in `/api/inbox-search`. At least one query condition is required, otherwise a 400 will be returned. A maximum of 100 results will ever be returned. Refine the query or","security":[{"bearerAuth":[]}]}},"/inbox-search":{"get":{"tags":["Inbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/inbox-search"},"summary":"Search messages by to, from, and subject","description":"Search all account messages within the the `to` and `from` `.address` fields, and the `subject` line. This differs from `/api/inbox-filter` by using logical OR, rather than AND in `/api/inbox-filter`. A maximum of 100 results will ever be returned. Refine the query or reduce the number of messages in the account to find specific items.","security":[{"bearerAuth":[]}]}},"/domains":{"get":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/domains"},"summary":"List domains","description":"List custom domains for the account.","security":[{"bearerAuth":[]}]}},"/domains/{domain}":{"get":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/domains/{domain}"},"summary":"Get domain information","description":"Get information about a configured domain, including the number of messages.","security":[{"bearerAuth":[]}]}},"/domains/{domain}/messages":{"get":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/domains/{domain}/messages"},"summary":"List messages for an domain","description":"Get a list of messages across any inboxes of a domain. Messages are always **sorted in decending order by when they were received**, with the newest message always in the first position of the array. The email message objects are abbreviated to provide basic meta data. To get more information about a specific message, use `GET /api/addres","security":[{"bearerAuth":[]}]}},"/domains/{domain}/delete-all-domain-mail":{"post":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/domains/{domain}/delete-all-domain-mail"},"summary":"Delete all messages in a domain","description":"Delete all messages for a specifc domain. Starred messages will be deleted. The domain must be owned domain.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/me":{"get":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/me"},"summary":"Get current account","description":"Get information about the account for this API key.","security":[{"bearerAuth":[]}]}},"/me/stats":{"get":{"tags":["Account"],"parameters":[{"name":"overrideAccountId","in":"query","description":"overrideAccountId","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/me/stats"},"summary":"Get account stats","description":"Get summary information about email addresses, domains, and usage.","security":[{"bearerAuth":[]}]}},"/addresses/{email}/messages/{messageId}/attachments":{"get":{"tags":["Attachments"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/attachments"},"summary":"List attachments for an email message","description":"Get attachment metadata on email message.","security":[{"bearerAuth":[]}]}},"/addresses/{email}/messages/{messageId}/attachments/{attachmentIdentifier}":{"get":{"tags":["Attachments"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/addresses/{email}/messages/{messageId}/attachments/{attachmentIdentifier}"},"summary":"Download email attachment","description":"Download an email message attachment as a file.","security":[{"bearerAuth":[]}]}},"/mailstats/common-attachments":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/common-attachments"},"summary":"Search for attachments","description":"Search for attachments that were received during the requested time period. Limited to public inboxes and messages not starred by a user. Responds with 'Failed to fetch' in swagger editor. Works in curl with generated example.","security":[{"bearerAuth":[]}]}},"/mailstats/common-attachments/{md5sum}/count":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/common-attachments/{md5sum}/count"},"summary":"Count public attachments","description":"Provides count of attachments by md5 sum Responds with 'Failed to fetch' in swagger editor, works in curl with generated example","security":[{"bearerAuth":[]}]}},"/mailstats/common-attachments/{md5sum}":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/common-attachments/{md5sum}"},"summary":"List public messages with an attachment","description":"List the email messages that have attachments with the requested MD5 sum. Limited to non-private inboxes.","security":[{"bearerAuth":[]}]}},"/mailstats/common-attachments/{md5sum}/download":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/common-attachments/{md5sum}/download"},"summary":"Download public attachment","description":"Download an attachment with the MD5 sum requested.","security":[{"bearerAuth":[]}]}},"/mailstats/top-addresses":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/top-addresses"},"summary":"List top public disposable email addresses receiving messages","description":"List top public disposable email addresses receiving messages","security":[{"bearerAuth":[]}]}},"/mailstats/top-senders":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/top-senders"},"summary":"List top sender email addresses for disposable public messages","description":"List top sender email addresses for disposable public messages","security":[{"bearerAuth":[]}]}},"/mailstats/top-domains":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/top-domains"},"summary":"List top public domains receiving disposable messages","description":"List top public domains receiving disposable messages","security":[{"bearerAuth":[]}]}},"/mailstats/blacklist":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/blacklist"},"summary":"List the current deny-list","description":"List the current deny-list","security":[{"bearerAuth":[]}]}},"/mailstats/blacklist/{domainOrIP}":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/mailstats/blacklist/{domainOrIP}"},"summary":"Check IP or domain on deny-list","description":"Check whether an IP or domain is currently on the deny-list.","security":[{"bearerAuth":[]}]}},"/custom_web_sockets":{"post":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/custom_web_sockets"},"summary":"Connect a web socket to wss://sock.mailsac.com/incoming-messages","description":"*Note: this does not work in Swagger UI. Visit https://sock.mailsac.com to test.* You can receive email via web socket for private email addresses and custom domains. To enable web socket forwarding: * Addresses: Select *Edit* for the email address you want to forward. Then check the checkbox for web socket forwarding, and save. * Custom ","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/custom_webhooks":{"post":{"tags":["Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://mailsac.com/docs/api","api_endpoint":"https://mailsac.com/api/custom_webhooks"},"summary":"Receive a webhook email message on your server","description":"*Note: this does not work in Swagger UI.* Webhook Forwarding is one of several options available for enhanced addresses and custom domains (via catch-all addresses enabled under a custom domain). Forwarding to a Webhook can be configured by selecting Manage Email Addresses from the Dashboard. Select the Settings button next to the email a","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}