{"openapi":"3.0.0","info":{"description":"Email platform for developers: send transactional and bulk email, test in sandboxes, manage templates, contacts and campaigns, suppressions, domains, webhooks and inbound mail","version":[]},"servers":[{"description":"Email platform for developers: send transactional and bulk email, test in sandboxes, manage templates, contacts and campaigns, suppressions, domains, webhooks and inbound mail","url":"https://api.apirails.com/mailtrap"}],"paths":{"/api/send":{"post":{"tags":["Sending"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://send.api.mailtrap.io/api/send"},"summary":"Send transactional email","description":"Send a single transactional email with text, HTML, or template content. Use this endpoint for: - Order confirmations - Password reset emails - Account notifications - Welcome emails - System alerts","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/batch":{"post":{"tags":["Sending"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://send.api.mailtrap.io/api/batch"},"summary":"Batch send emails","description":"Send up to 500 transactional emails in a single API call. Each email can have unique recipients and content while sharing base properties. **Limits:** - Maximum 500 messages per call - Maximum 50 MB total payload size (including attachments) **Note:** The endpoint returns HTTP 200 even if individual messages fail. Check the `responses` ar","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"base":{"type":"string","description":"Base properties shared by all emails"},"requests":{"type":"array","description":"Individual email configurations (max 500)","required":true,"items":{"type":"string"}}}},"example":{"base":"","requests":[]}}}}}},"/bulk/api/send":{"post":{"tags":["Bulk Sending"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://bulk.api.mailtrap.io/api/send"},"summary":"Send bulk email","description":"Send marketing emails and newsletters through the bulk stream optimized for high-volume sending. **Use cases:** - Marketing campaigns - Newsletters - Announcements - Promotional emails [bulk stream: bulk.api.mailtrap.io]","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/bulk/api/batch":{"post":{"tags":["Bulk Sending"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://bulk.api.mailtrap.io/api/batch"},"summary":"Batch send bulk emails","description":"Send up to 500 marketing emails in a single API call. Each email can have unique recipients and content while sharing base properties. **Limits:** - Maximum 500 messages per call - Maximum 50 MB total payload size (including attachments) **Note:** The endpoint returns HTTP 200 even if individual messages fail. Check the `responses` array  [bulk stream: bulk.api.mailtrap.io]","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"base":{"type":"string","description":"Base properties shared by all emails"},"requests":{"type":"array","description":"Individual email configurations (max 500)","required":true,"items":{"type":"string"}}}},"example":{"base":"","requests":[]}}}}}},"/api/send/{sandbox_id}":{"post":{"tags":["Sandbox Sending"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://sandbox.api.mailtrap.io/api/send/{sandbox_id}"},"summary":"Send email (including templates)","description":"Send email message to the specified sandbox.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/batch/{sandbox_id}":{"post":{"tags":["Sandbox Sending"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://sandbox.api.mailtrap.io/api/batch/{sandbox_id}"},"summary":"Batch send email (including templates)","description":"Batch send email (text, html, text&html, templates). Please note that the endpoint will return a 200-level http status, even when sending for individual messages may fail. Users of this endpoint should check the success and errors for each message in the response (the results are ordered the same as the original messages - `requests`). Pl","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"base":{"type":"string","description":"General properties of all emails in the batch. Each of them can be overridden in `requests` for individual emails."},"requests":{"type":"array","description":"The list of emails. Each of them requires recipients (one of `to`, `cc`, or `bcc`). Each email inherits properties from `base` but can override them.","required":true,"items":{"type":"string"}}}},"example":{"base":"","requests":[]}}}}}},"/api/domains":{"post":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains"},"summary":"Create domain","description":"Create a domain for email authentication. After creation, verify the domain by adding DNS records. **Process:** 1. Create the domain 2. Add DNS records (SPF, DKIM, DMARC) 3. Verify the records 4. Start sending emails","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"domain":{"type":"object","description":"domain","required":true,"properties":{"domain_name":{"type":"string","description":"Your domain name","required":true}}}}},"example":{"domain":{}}}}}},"get":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains"},"summary":"List domains","description":"Get all domains and their verification status","security":[{"bearerAuth":[]}]}},"/api/domains/{domain_id}":{"get":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}"},"summary":"Get domain","description":"Get details and verification status of a specific domain","security":[{"bearerAuth":[]}]},"delete":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}"},"summary":"Delete domain","description":"Remove a domain from your account","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"patch":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}"},"summary":"Update domain","description":"Update configuration settings for a domain.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"domain":{"type":"object","description":"domain","required":true,"properties":{"auto_unsubscribe_link_enabled":{"type":"boolean","description":"Automatically add an unsubscribe link to emails sent from this domain","enum":[true,false]},"click_tracking_enabled":{"type":"boolean","description":"Enable click tracking for links in emails sent from this domain","enum":[true,false]},"inbound_enabled":{"type":"boolean","description":"Enable inbound email for this domain so it can be attached to an inbound inbox as a catch-all. The domain's inbound MX records must be verified before inbound mail is accepted (see `inbound_verified`).","enum":[true,false]},"open_tracking_enabled":{"type":"boolean","description":"Enable open tracking for emails sent from this domain","enum":[true,false]},"tracking_opt_out_enabled":{"type":"boolean","description":"Enable the tracking opt-out link in tracked emails sent from this domain. Requires open or click tracking to be enabled.","enum":[true,false]}}}}},"example":{"domain":{}}}}}}},"/api/domains/{domain_id}/send_setup_instructions":{"post":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}/send_setup_instructions"},"summary":"Send setup instructions","description":"Email DNS configuration instructions for the domain","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"Email address to receive setup instructions","required":true}}},"example":{"email":""}}}}}},"/api/domains/{domain_id}/company_info":{"get":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}/company_info"},"summary":"Get company info","description":"Get company information associated with a domain / account.","security":[{"bearerAuth":[]}]},"post":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}/company_info"},"summary":"Create company info","description":"Create company information for a domain / account. Company info is required for domain compliance verification.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"company_info":{"type":"object","description":"company_info","required":true,"properties":{"address":{"type":"string","description":"Street address","required":true},"city":{"type":"string","description":"City","required":true},"country":{"type":"string","description":"Country","required":true},"info_level":{"type":"string","description":"Whether the sender is a business or individual","enum":["business","individual"]},"name":{"type":"string","description":"Company or individual name","required":true},"phone":{"type":"string","description":"Phone number"},"privacy_policy_url":{"type":"string","description":"URL to the privacy policy page"},"terms_of_service_url":{"type":"string","description":"URL to the terms of service page"},"website_url":{"type":"string","description":"Company website URL","required":true},"zip_code":{"type":"string","description":"ZIP or postal code","required":true}}}}},"example":{"company_info":{}}}}}},"patch":{"tags":["Domains"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/domains/{domain_id}/company_info"},"summary":"Update company info","description":"Update company information for a domain / account. All fields are optional; only the fields provided in the request will be updated.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"company_info":{"type":"object","description":"All fields are optional. Only the fields provided in the request will be updated.","required":true,"properties":{"address":{"type":"string","description":"Street address"},"city":{"type":"string","description":"City"},"country":{"type":"string","description":"Country"},"info_level":{"type":"string","description":"Whether the sender is a business or individual","enum":["business","individual"]},"name":{"type":"string","description":"Company or individual name"},"phone":{"type":"string","description":"Phone number"},"privacy_policy_url":{"type":"string","description":"URL to the privacy policy page"},"terms_of_service_url":{"type":"string","description":"URL to the terms of service page"},"website_url":{"type":"string","description":"Company website URL"},"zip_code":{"type":"string","description":"ZIP or postal code"}}}}},"example":{"company_info":{}}}}}}},"/api/suppressions":{"get":{"tags":["Suppressions"],"parameters":[{"name":"email","in":"query","description":"Filter suppressions by exact email address (case-insensitive).","required":false,"schema":{"type":"string","example":""}},{"name":"end_time","in":"query","description":"Filter suppressions created at or before this timestamp (ISO 8601 format).","required":false,"schema":{"type":"string","example":""}},{"name":"last_id","in":"query","description":"The suppression UUID from the last record of the previous response. Returns records after this suppression, enabling cursor-based pagination through large lists.","required":false,"schema":{"type":"string","example":""}},{"name":"start_time","in":"query","description":"Filter suppressions created at or after this timestamp (ISO 8601 format).","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/suppressions"},"summary":"List suppressions","description":"List and search suppressed email addresses. Returns up to 1000 suppressions per request. Use `last_id` for cursor-based pagination through large lists. Suppressed addresses will not receive any emails from your account. Rate limit: 10 requests per minute per account.","security":[{"bearerAuth":[]}]},"post":{"tags":["Suppressions"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/suppressions"},"summary":"Create suppression","description":"Add an email address to the suppression list. Suppressed addresses will not receive any emails from your account. {% hint style=\"warning\" %} This endpoint requires admin-level access. {% endhint %} Rate limit: 10 requests per minute per account.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Reason for the suppression. Defaults to \"manual import\" if omitted.","enum":["hard bounce","unsubscription","spam complaint","manual import"]},"domain_id":{"type":"number","description":"ID of the domain to suppress this email for","required":true},"email":{"type":"string","description":"Email address to suppress","required":true},"sending_stream":{"type":"string","description":"The sending stream to suppress this email for","required":true,"enum":["transactional","bulk"]}}},"example":{"type":"manual import","domain_id":12345,"email":"user@example.com","sending_stream":"transactional"}}}}}},"/api/suppressions/{suppression_id}":{"delete":{"tags":["Suppressions"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/suppressions/{suppression_id}"},"summary":"Delete suppression","description":"Remove an email from the suppression list to allow sending again. {% hint style=\"warning\" %} This endpoint requires admin-level access. {% endhint %}","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/tracking_opt_outs":{"get":{"tags":["Tracking"],"parameters":[{"name":"email","in":"query","description":"Filter tracking opt-outs by exact email address (case-insensitive).","required":false,"schema":{"type":"string","example":""}},{"name":"end_time","in":"query","description":"Filter tracking opt-outs created at or before this timestamp (ISO 8601 format).","required":false,"schema":{"type":"string","example":""}},{"name":"last_id","in":"query","description":"The tracking opt-out UUID from the last record of the previous response. Returns records after this opt-out, enabling cursor-based pagination through large lists.","required":false,"schema":{"type":"string","example":""}},{"name":"start_time","in":"query","description":"Filter tracking opt-outs created at or after this timestamp (ISO 8601 format).","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/tracking_opt_outs"},"summary":"List tracking opt-outs","description":"List email addresses that have opted out of open and click tracking for your sending domains. Each record includes the domain it applies to. Returns up to 1000 records per request. When the response includes a non-null `last_id`, pass it as the `last_id` query parameter to fetch the next page. Rate limit: 10 requests per minute per accoun","security":[{"bearerAuth":[]}]},"post":{"tags":["Tracking"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/tracking_opt_outs"},"summary":"Create tracking opt-out","description":"Add an email address to the tracking opt-out list for a sending domain. Opted-out addresses are excluded from open and click tracking on that domain. {% hint style=\"warning\" %} This endpoint requires admin-level access. {% endhint %} Rate limit: 10 requests per minute per account.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"domain_id":{"type":"number","description":"ID of the sending domain this tracking opt-out applies to","required":true},"email":{"type":"string","description":"Email address to opt out of tracking","required":true}}},"example":{"domain_id":12345,"email":"tracked@example.com"}}}}}},"/api/tracking_opt_outs/{tracking_opt_out_id}":{"delete":{"tags":["Tracking"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/tracking_opt_outs/{tracking_opt_out_id}"},"summary":"Delete tracking opt-out","description":"Remove an email address from the tracking opt-out list so open and click tracking can apply again. {% hint style=\"warning\" %} This endpoint requires admin-level access. {% endhint %}","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/stats":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/stats"},"summary":"Get Sending Stats","description":"Get account sending stats. Use filters to get specific stats.","security":[{"bearerAuth":[]}]}},"/api/stats/domains":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/stats/domains"},"summary":"Get Sending Stats by Domains","description":"Get account sending stats by domains. Use filters to get specific stats.","security":[{"bearerAuth":[]}]}},"/api/stats/categories":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/stats/categories"},"summary":"Get Sending Stats by Categories","description":"Get account sending stats by categories. Use filters to get specific stats.","security":[{"bearerAuth":[]}]}},"/api/stats/email_service_providers":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/stats/email_service_providers"},"summary":"Get Sending Stats by Email Service Providers","description":"Get account sending stats by email service providers. Use filters to get specific stats.","security":[{"bearerAuth":[]}]}},"/api/stats/date":{"get":{"tags":["Stats"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/stats/date"},"summary":"Get Sending Stats by Date","description":"Get account sending stats by date. Use filters to get specific stats.","security":[{"bearerAuth":[]}]}},"/api/email_logs":{"get":{"tags":["Email Logs"],"parameters":[{"name":"filters","in":"query","description":"Filter criteria (deep object). Pass as `filters[field][operator]` and `filters[field][value]`. When a filter accepts an array value, use bracket notation: `filters[field][value][]=item1&filters[field][value][]=item2`. Date range: use `filters[sent_after]` and `filters[sent_before]` (ISO 8601 strings). Unknown filters are ignored.","required":false,"schema":{"type":"object","example":""}},{"name":"search_after","in":"query","description":"Cursor for the next page (message_id UUID from previous response next_page_cursor).","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_logs"},"summary":"List email logs","description":"Returns a paginated list of email logs (messages) for the account. Results are restricted to domains the authenticated token has access to. Invalid or unknown filters are ignored. Results are ordered by sent_at descending.","security":[{"bearerAuth":[]}]}},"/api/email_logs/{sending_message_id}":{"get":{"tags":["Email Logs"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_logs/{sending_message_id}"},"summary":"Get an email log message by ID","description":"Returns a single message by message UUID. Message must belong to the account and a domain the token can access.","security":[{"bearerAuth":[]}]}},"/api/webhooks":{"post":{"tags":["Webhooks"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/webhooks"},"summary":"Create a webhook","description":"Create a new webhook for the account. The response includes a `signing_secret` that is used to [verify webhook signatures](https://docs.mailtrap.io/email-api-smtp/advanced/webhooks#webhook-signature-verification).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"webhook":{"type":"object","description":"webhook","required":true,"properties":{"active":{"type":"boolean","description":"Whether the webhook is active. Defaults to `true`.","enum":[true,false]},"domain_id":{"type":"number","description":"Scopes the webhook to a specific domain ID, or all domains if omitted. Applicable only for `email_sending` and `campaigns` webhooks."},"event_types":{"type":"array","description":"List of event types to subscribe to. Required for `email_sending` and `campaigns` webhook types."},"inbound_inbox_id":{"type":"number","description":"ID of the inbound inbox the webhook is linked to. Optional for `inbound_receiving` webhooks — omit to apply the webhook to all inboxes in the account. Not applicable to any other webhook type."},"payload_format":{"type":"string","description":"Format of the webhook payload.","enum":["json","jsonlines"]},"sending_stream":{"type":"string","description":"Sending stream the webhook subscribes to. Required for `email_sending` webhook type.","enum":["transactional","bulk"]},"url":{"type":"string","description":"The URL that will receive webhook payloads.","required":true},"webhook_type":{"type":"string","description":"The type of webhook. Determines which events the webhook can subscribe to.","required":true,"enum":["email_sending","campaigns","audit_log","inbound_receiving"]}}}}},"example":{"webhook":{}}}}}},"get":{"tags":["Webhooks"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/webhooks"},"summary":"List webhooks","description":"Returns all webhooks for the account.","security":[{"bearerAuth":[]}]}},"/api/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/webhooks/{webhook_id}"},"summary":"Get a webhook","description":"Returns a single webhook by ID.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Webhooks"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/webhooks/{webhook_id}"},"summary":"Update a webhook","description":"Update an existing webhook.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"webhook":{"type":"object","description":"webhook","required":true,"properties":{"active":{"type":"boolean","description":"Whether the webhook is active.","enum":[true,false]},"event_types":{"type":"array","description":"List of event types to subscribe to. Applicable only for `email_sending` and `campaigns` webhooks."},"inbound_inbox_id":{"type":"number","description":"ID of the inbound inbox the webhook is linked to. Applicable only for `inbound_receiving` webhooks."},"payload_format":{"type":"string","description":"Format of the webhook payload.","enum":["json","jsonlines"]},"url":{"type":"string","description":"The URL that will receive webhook payloads."}}}}},"example":{"webhook":{}}}}}},"delete":{"tags":["Webhooks"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/webhooks/{webhook_id}"},"summary":"Delete a webhook","description":"Permanently delete a webhook.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_templates":{"get":{"tags":["Templates"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_templates"},"summary":"Get all Email Templates","description":"Get all email templates existing in your account","security":[{"bearerAuth":[]}]},"post":{"tags":["Templates"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_templates"},"summary":"Create Email Template","description":"Create a new email template","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email_template":{"type":"object","description":"email_template","required":true,"properties":{"category":{"type":"string","description":"category","required":true},"body_html":{"type":"string","description":"body_html"},"body_text":{"type":"string","description":"body_text"},"name":{"type":"string","description":"name","required":true},"subject":{"type":"string","description":"subject","required":true}}}}},"example":{"email_template":{}}}}}}},"/api/email_templates/{email_template_id}":{"get":{"tags":["Templates"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_templates/{email_template_id}"},"summary":"Get Email Template","description":"Get an email template by ID","security":[{"bearerAuth":[]}]},"patch":{"tags":["Templates"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_templates/{email_template_id}"},"summary":"Update Email Template","description":"Update an email template","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email_template":{"type":"object","description":"email_template","required":true,"properties":{"category":{"type":"string","description":"category","required":true},"body_html":{"type":"string","description":"body_html"},"body_text":{"type":"string","description":"body_text"},"name":{"type":"string","description":"name","required":true},"subject":{"type":"string","description":"subject","required":true}}}}},"example":{"email_template":{}}}}}},"delete":{"tags":["Templates"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_templates/{email_template_id}"},"summary":"Delete Email Template","description":"Delete an email template","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/contacts":{"get":{"tags":["Contacts"],"parameters":[{"name":"email","in":"query","description":"Return only contacts whose email contains this value (case-insensitive substring match). `*` and `?` are matched literally, not as wildcards.","required":false,"schema":{"type":"string","example":""}},{"name":"list_id","in":"query","description":"Return only contacts that belong to this contact list.","required":false,"schema":{"type":"number","example":""}},{"name":"per_page","in":"query","description":"Number of contacts per page. Defaults to `25`, maximum `50`. Larger values are clamped to the maximum.","required":false,"schema":{"type":"number","example":""}},{"name":"status","in":"query","description":"Return only contacts with this subscription status. Matches the `status` field of the returned contact.","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["subscribed","unsubscribed"]}}},{"name":"token","in":"query","description":"Opaque cursor taken from the `next_token` of a previous response. Omit it to fetch the first page. Tokens are not page numbers and must not be constructed by hand.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts"},"summary":"Get a list of contacts","description":"Returns a paginated list of the account's contacts. Pagination is cursor based. Every response carries a `pagination` object; pass its `next_token` value back as the `token` query parameter to fetch the next page, and stop when `next_token` is `null`. Cursors cannot be walked backwards, so `prev_token` and `prev_url` are always `null`. No","security":[{"bearerAuth":[]}]},"post":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts"},"summary":"Create a new Contact","description":"Create a new contact","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"contact":{"type":"object","description":"contact","required":true,"properties":{"email":{"type":"string","description":"email","required":true},"fields":{"type":"object","description":"fields (free-form object — see https://github.com/mailtrap/mailtrap-openapi)"},"list_ids":{"type":"array","description":"list_ids"}}}}},"example":{"contact":{}}}}}}},"/api/contacts/{contact_identifier}":{"get":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/{contact_identifier}"},"summary":"Get contact","description":"Get contact using UUID or email (URL encoded)","security":[{"bearerAuth":[]}]},"patch":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/{contact_identifier}"},"summary":"Update contact","description":"Update contact using UUID or email (URL encoded)","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"contact":{"type":"object","description":"contact","required":true,"properties":{"email":{"type":"string","description":"email","required":true},"fields":{"type":"object","description":"fields (free-form object — see https://github.com/mailtrap/mailtrap-openapi)"},"list_ids_excluded":{"type":"array","description":"list_ids_excluded"},"list_ids_included":{"type":"array","description":"list_ids_included"},"unsubscribed":{"type":"boolean","description":"unsubscribed","enum":[true,false]}}}}},"example":{"contact":{}}}}}},"delete":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/{contact_identifier}"},"summary":"Delete contact","description":"Delete contact using UUID or email (URL encoded)","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/contacts/{contact_identifier}/events":{"post":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/{contact_identifier}/events"},"summary":"Create contact event","description":"Submit custom event for contact","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"params":{"type":"object","description":"A hash of string keys and scalar JSON values (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"name":{"type":"string","description":"name"}}},"example":{"params":{},"name":""}}}}}},"/api/contacts/exports":{"post":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/exports"},"summary":"Create Contact Export","description":"Create a new Contact Export","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"filters":{"type":"array","description":"Array of filters to apply to the search","items":{"type":"object","properties":{"name":{"type":"string","description":"name","required":true,"enum":["list_id"]},"operator":{"type":"string","description":"operator","required":true,"enum":["equal"]},"value":{"type":"array","description":"value","required":true}}}}}},"example":{"filters":[]}}}}}},"/api/contacts/exports/{export_id}":{"get":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/exports/{export_id}"},"summary":"Get Contact Export","description":"Get Contact Export","security":[{"bearerAuth":[]}]}},"/api/contacts/imports":{"post":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/imports"},"summary":"Import contacts","description":"Import contacts in bulk with support for custom fields and list management. Existing contacts with matching email addresses will be updated automatically. You can import up to 50,000 contacts per request. The import process runs asynchronously - use the returned import ID to check the status and results.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"contacts":{"type":"array","description":"contacts","items":{"type":"object","properties":{"email":{"type":"string","description":"email"},"fields":{"type":"object","description":"Object of fields in the following format: field_merge_tag: string | integer | float | boolean | date string in ISO-8601 format (yyyy-mm-dd); (free-form object — see https://github.com/mailtrap/mailtrap-openapi)"},"list_ids_excluded":{"type":"array","description":"list_ids_excluded"},"list_ids_included":{"type":"array","description":"list_ids_included"}}}}}},"example":{"contacts":[]}}}}}},"/api/contacts/imports/{import_id}":{"get":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/imports/{import_id}"},"summary":"Get Contact Import","description":"Get Contact Import","security":[{"bearerAuth":[]}]}},"/api/contacts/lists":{"get":{"tags":["Contacts"],"parameters":[{"name":"search","in":"query","description":"Filter contact lists by name (case-insensitive prefix match).","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/lists"},"summary":"Get all Contact Lists","description":"Get all contact lists existing in your account","security":[{"bearerAuth":[]}]},"post":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/lists"},"summary":"Create Contact List","description":"Create new Contact Lists","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"}}},"example":{"name":""}}}}}},"/api/contacts/lists/{list_id}":{"get":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/lists/{list_id}"},"summary":"Get Contact List","description":"Get a contact list by ID","security":[{"bearerAuth":[]}]},"patch":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/lists/{list_id}"},"summary":"Update Contact List","description":"Update existing Contact List","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"}}},"example":{"name":""}}}}},"delete":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/lists/{list_id}"},"summary":"Delete Contact List","description":"Delete existing Contact List","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/contacts/fields":{"get":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/fields"},"summary":"Get all Contact Fields","description":"Get all Contact Fields existing in your account","security":[{"bearerAuth":[]}]},"post":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/fields"},"summary":"Create Contact Field","description":"Create new Contact Fields. Please note, you can have up to 40 fields.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"data_type":{"type":"string","description":"data_type","enum":["text","integer","float","boolean","date"]},"merge_tag":{"type":"string","description":"Personalize your campaigns by adding a merge tag. This field will be replaced with unique contact details for each recipient."},"name":{"type":"string","description":"name"}}},"example":{"data_type":"text","merge_tag":"","name":""}}}}}},"/api/contacts/fields/{field_id}":{"get":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/fields/{field_id}"},"summary":"Get Contact Field","description":"Get a contact Field by ID","security":[{"bearerAuth":[]}]},"patch":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/fields/{field_id}"},"summary":"Update Contact Field","description":"Update existing Contact Field. Please note, you cannot change data_type of the field.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"merge_tag":{"type":"string","description":"Personalize your campaigns by adding a merge tag. This field will be replaced with unique contact details for each recipient."},"name":{"type":"string","description":"name"}}},"example":{"merge_tag":"","name":""}}}}},"delete":{"tags":["Contacts"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/contacts/fields/{field_id}"},"summary":"Delete Contact Field","description":"Delete existing Contact Field Please, note, you cannot delete a Contact Field which is used in Automations, Email Campaigns (started or scheduled), and in conditions of Contact Segments (you'll see the corresponding error)","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes"},"summary":"Get a list of sandboxes","description":"Get a list of sandboxes.","security":[{"bearerAuth":[]}]}},"/api/projects":{"post":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/projects"},"summary":"Create project","description":"The project name is min 2 characters and max 100 characters long.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"project":{"type":"object","description":"project","properties":{"name":{"type":"string","description":"name"}}}}},"example":{"project":{}}}}}},"get":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/projects"},"summary":"Get a list of projects","description":"List projects and their sandboxes to which the API token has access.","security":[{"bearerAuth":[]}]}},"/api/projects/{project_id}":{"get":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/projects/{project_id}"},"summary":"Get project by ID","description":"Get the project and its sandboxes.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/projects/{project_id}"},"summary":"Update project","description":"Update project name. The project name is min 2 characters and max 100 characters long.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"project":{"type":"object","description":"project","properties":{"name":{"type":"string","description":"name"}}}}},"example":{"project":{}}}}}},"delete":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/projects/{project_id}"},"summary":"Delete project","description":"Delete project and its sandboxes.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/projects/{project_id}/sandboxes":{"post":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/projects/{project_id}/sandboxes"},"summary":"Create a sandbox","description":"Create a sandbox in a project.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sandbox":{"type":"object","description":"sandbox","properties":{"name":{"type":"string","description":"name"}}}}},"example":{"sandbox":{}}}}}}},"/api/sandboxes/{sandbox_id}":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}"},"summary":"Get sandbox attributes","description":"Get sandbox attributes by sandbox id. See the list of attributes in the example","security":[{"bearerAuth":[]}]},"delete":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}"},"summary":"Delete a sandbox","description":"Delete a sandbox with all its emails.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}"},"summary":"Update a sandbox","description":"Update sandbox name, sandbox email username.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sandbox":{"type":"object","description":"sandbox","properties":{"email_username":{"type":"string","description":"email_username"},"name":{"type":"string","description":"name"}}}}},"example":{"sandbox":{}}}}}}},"/api/sandboxes/{sandbox_id}/clean":{"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/clean"},"summary":"Clean sandbox","description":"Delete all messages (emails) from sandbox.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes/{sandbox_id}/all_read":{"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/all_read"},"summary":"Mark as read","description":"Mark all messages in the sandbox as read.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes/{sandbox_id}/reset_credentials":{"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/reset_credentials"},"summary":"Reset credentials","description":"Reset SMTP credentials of the sandbox.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes/{sandbox_id}/toggle_email_username":{"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/toggle_email_username"},"summary":"Enable email address","description":"Turn the email address of the sandbox on/off.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes/{sandbox_id}/reset_email_username":{"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/reset_email_username"},"summary":"Reset email address","description":"Reset username of email address per sandbox.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes/{sandbox_id}/messages/{message_id}":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}"},"summary":"Show email message","description":"Get email message by ID.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}"},"summary":"Update message","description":"Update message attributes (right now only the **is_read** attribute is available for modification).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"message":{"type":"object","description":"message","properties":{"is_read":{"type":"string","description":"is_read"}}}}},"example":{"message":{}}}}}},"delete":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}"},"summary":"Delete message","description":"Delete message from sandbox.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/sandboxes/{sandbox_id}/messages":{"get":{"tags":["Sandbox"],"parameters":[{"name":"last_id","in":"query","description":"If specified, a page of records before `last_id` is returned. Overrides `page` if both are given.","required":false,"schema":{"type":"number","example":""}},{"name":"page","in":"query","description":"Page number for paginated results.","required":false,"schema":{"type":"number","example":""}},{"name":"search","in":"query","description":"Search query string. Matches `subject`, `to_email`, and `to_name`.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages"},"summary":"Get messages","description":"Get all messages in the sandbox. The response contains up to 30 messages. Use `last_id` or `page` to retrieve more.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/forward":{"post":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/forward"},"summary":"Forward message","description":"Forward message to an email address. The email address must be confirmed by the recipient in advance.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email"}}},"example":{"email":"jack@mailtrap.io"}}}}}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/spam_report":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/spam_report"},"summary":"Get message spam score","description":"Get a brief spam report by message ID.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/analyze":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/analyze"},"summary":"Get message HTML analysis","description":"Get a brief HTML report by message ID.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/body.txt":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/body.txt"},"summary":"Get text message","description":"Get text email body, if it exists.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/body.raw":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/body.raw"},"summary":"Get raw message","description":"Get raw email body.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/body.htmlsource":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/body.htmlsource"},"summary":"Get message source","description":"Get HTML source of email.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/body.html":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/body.html"},"summary":"Get HTML message","description":"Get formatted HTML email body. Not applicable for plain text emails.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/body.eml":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/body.eml"},"summary":"Get message as .eml","description":"Get email message in .eml format.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/mail_headers":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/mail_headers"},"summary":"Get mail headers","description":"Get mail headers of a message","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/attachments":{"get":{"tags":["Sandbox"],"parameters":[{"name":"attachment_type","in":"query","description":"Attachment type","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/attachments"},"summary":"Get attachments","description":"Get message attachments by sandbox_id and message_id.","security":[{"bearerAuth":[]}]}},"/api/sandboxes/{sandbox_id}/messages/{message_id}/attachments/{attachment_id}":{"get":{"tags":["Sandbox"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/sandboxes/{sandbox_id}/messages/{message_id}/attachments/{attachment_id}"},"summary":"Get single attachment","description":"Get message single attachment by id.","security":[{"bearerAuth":[]}]}},"/api/accounts":{"get":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/accounts"},"summary":"List account(s) you have access to","description":"This endpoint returns account details for the authenticated user. If you are using [Organizations and Sub-Accounts](https://docs.mailtrap.io/account-and-organization/management/organization-and-sub-accounts) and the API token was created at the organization level, the response will include all accounts within the organization.","security":[{"bearerAuth":[]}]}},"/api/account_accesses":{"get":{"tags":["Account"],"parameters":[{"name":"domain_ids","in":"query","description":"The identifiers of the domains for which to include the results","required":false,"schema":{"type":"array","example":""}},{"name":"project_ids","in":"query","description":"The identifiers of the projects for which to include the results","required":false,"schema":{"type":"array","example":""}},{"name":"sandbox_ids","in":"query","description":"The identifiers of the sandboxes for which to include the results","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/account_accesses"},"summary":"List User & Invite account accesses","description":"Get list of account accesses for which `specifier_type` is `User` or `Invite`. You have to have account admin/owner permissions for this endpoint to work. If you specify `project_ids`, `sandbox_ids` or `domain_ids`, the endpoint will return account accesses for these resources.","security":[{"bearerAuth":[]}]}},"/api/account_accesses/{account_access_id}":{"delete":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/account_accesses/{account_access_id}"},"summary":"Remove account access","description":"If specifier type is User, it removes user permissions. If specifier type is Invite or ApiToken, it removes specifier along with permissions. You have to be an account admin/owner for this endpoint to work.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/account_accesses/{account_access_id}/permissions/bulk":{"put":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/account_accesses/{account_access_id}/permissions/bulk"},"summary":"Manage user or token permissions","description":"Manage user or token permissions. For this endpoint, you should send an array of objects (in JSON format) as the body of the request. If you send a combination of **resource_type** and **resource_id** that already exists, the permission is **updated**. If the combination doesn't exist, the permission is **created**. Permissions of an expi","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"permissions":{"type":"array","description":"permissions","items":{"type":"object","properties":{"_destroy":{"type":"boolean","description":"(Optional) If true, instead of creating/updating the permission, it destroys it.","enum":[true,false]},"access_level":{"type":"string","description":"Use a number or string. The higher the number, the more rights the specifier has: - 100 or \"admin\" - 10 or \"viewer\""},"resource_id":{"type":"string","description":"resource_id"},"resource_type":{"type":"string","description":"resource_type","enum":["account","billing","project","sandbox","domain","email_campaign_permission_scope"]}}}}}},"example":{"permissions":[]}}}}}},"/api/permissions/resources":{"get":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/permissions/resources"},"summary":"Get resources","description":"Get all resources in your account (Sandboxes, Projects, Domains, Email Campaigns, Billing and Account itself) to which the token has admin access.","security":[{"bearerAuth":[]}]}},"/api/api_tokens":{"get":{"tags":["API Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/api_tokens"},"summary":"List API tokens","description":"Returns all API tokens visible to the current API token.","security":[{"bearerAuth":[]}]},"post":{"tags":["API Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/api_tokens"},"summary":"Create API token","description":"Creates a new API token for the account with the given name and resource permissions. Unless `expires_at` is provided, the token expires 1 year after creation. Pass `\"expires_at\": null` to create a token that never expires. `expires_at` must be in the future and no more than 5 years ahead; past or unparseable values are rejected with a 42","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"expires_at":{"type":"string","description":"When the token expires (ISO 8601 date-time, must be in the future). Must be no more than 5 years in the future. If omitted, the token expires 1 year after creation. Pass null to create a token that never expires. Past or unparseable values are rejected with a 422 error."},"name":{"type":"string","description":"Display name for the token","required":true},"resources":{"type":"array","description":"Permissions to assign to the token","items":{"type":"object","properties":{"access_level":{"type":"number","description":"10 = viewer, 100 = admin.","required":true,"enum":[10,100]},"resource_id":{"type":"number","description":"resource_id","required":true},"resource_type":{"type":"string","description":"Resource type for API token permissions.","required":true,"enum":["account","project","sandbox","domain"]}}}}}},"example":{"expires_at":"","name":"","resources":[]}}}}}},"/api/api_tokens/{id}":{"get":{"tags":["API Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/api_tokens/{id}"},"summary":"Get API token","description":"Returns a single API token by id.","security":[{"bearerAuth":[]}]},"delete":{"tags":["API Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/api_tokens/{id}"},"summary":"Delete API token","description":"Permanently deletes an API token.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/api_tokens/{id}/reset":{"post":{"tags":["API Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/api_tokens/{id}/reset"},"summary":"Reset API token","description":"Expires the requested token and creates a new token with the same permissions. The old token stops working after a short grace period. The response includes the new token value (store it securely; it is only returned once). Unless `expires_at` is provided, the new token expires 1 year after the reset. Pass `\"expires_at\": null` to create a","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"expires_at":{"type":"string","description":"When the new token expires (ISO 8601 date-time, must be in the future). Must be no more than 5 years in the future. If omitted, the new token expires 1 year after the reset. Pass null to create a token that never expires. Past or unparseable values are rejected with a 422 error."}}},"example":{"expires_at":""}}}}}},"/api/billing/usage":{"get":{"tags":["Billing"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/billing/usage"},"summary":"Get current billing cycle usage","description":"Get current billing cycle usage for Email Sandbox, Email Sending (Email API/SMTP), and Email Marketing.","security":[{"bearerAuth":[]}]}},"/api/organizations/{organization_id}/sub_accounts":{"get":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/organizations/{organization_id}/sub_accounts"},"summary":"Get organization sub accounts","description":"Get a list of sub accounts for the specified organization. You must have sub account management permissions for this organization.","security":[{"bearerAuth":[]}]},"post":{"tags":["Account"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/organizations/{organization_id}/sub_accounts"},"summary":"Create organization sub account","description":"Create a new sub account under the specified organization. You must have sub account management permissions for this organization.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"account":{"type":"object","description":"account","required":true,"properties":{"name":{"type":"string","description":"Name of the sub account to create","required":true}}}}},"example":{"account":{}}}}}}},"/api/email_campaigns":{"get":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns"},"summary":"Get a list of email campaigns","description":"Returns a paginated list of the account's email campaigns, newest first. Pagination is page-token based. Use the `token` query parameter together with the `token`, `next_token`, and `prev_token` values returned in the `pagination` object to navigate between pages.","security":[{"bearerAuth":[]}]},"post":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns"},"summary":"Create an email campaign","description":"Creates a new email campaign. The campaign must reference an existing sending domain via `domain_id`, and include a template `subject` within `template_attributes`. Create accepts the same fields as update — pick the audience with `contact_list_ids`/`contact_segment_ids`, set delivery options, and add the design via `template_attributes.b","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_campaigns/{email_campaign_id}":{"get":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}"},"summary":"Get an email campaign by ID","description":"Returns a single email campaign.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}"},"summary":"Update an email campaign","description":"Updates an existing `draft` campaign. Only the provided attributes are changed. To edit the template (subject or design), pass `template_attributes` — the campaign's template is always edited in place, and only the template sub-fields you provide change (see the `template_attributes` schema for the partial-update rules). Update accepts th","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"delete":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}"},"summary":"Delete an email campaign","description":"Soft-deletes an email campaign. Returns `204 No Content` on success. Only `draft` campaigns can be deleted — deleting a campaign that is already scheduled/sending returns `422`. A campaign that has been started never returns to `draft`, so it can no longer be deleted. A `scheduled` campaign can be returned to `draft` first via the `cancel","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_campaigns/{email_campaign_id}/start":{"post":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}/start"},"summary":"Start an email campaign","description":"Starts sending a `draft` campaign immediately. Runs full sending validation (the template must have a `body_html` design, the audience and verified sending domain must be set, billing within limits); on failure the request returns `422` and the campaign stays a `draft`. The campaign must be in the `draft` state — starting from any other s","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_campaigns/{email_campaign_id}/schedule":{"post":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}/schedule"},"summary":"Schedule an email campaign","description":"Schedules a `draft` campaign to start sending at a future time. Runs full sending validation (the template must have a `body_html` design, the audience and verified sending domain must be set, billing within limits); on failure the request returns `422` and the campaign stays a `draft`. The campaign must be in the `draft` state — scheduli","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"datetime":{"type":"string","description":"When to send the campaign (ISO 8601). Must be in the future and no more than 1 month ahead, otherwise the request is rejected with `422`.","required":true}}},"example":{"datetime":"2026-10-01T09:00:00.000Z"}}}}}},"/api/email_campaigns/{email_campaign_id}/cancel":{"post":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}/cancel"},"summary":"Cancel a scheduled email campaign","description":"Cancels a scheduled campaign, removing the pending send job and returning the campaign to the `draft` state. The campaign must be in the `scheduled` state — cancelling from any other state returns `422` (`\"Campaign is not scheduled\"`).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_campaigns/{email_campaign_id}/terminate":{"post":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}/terminate"},"summary":"Terminate a sending email campaign","description":"Terminates a campaign that is currently sending, aborting the in-flight send. The campaign must be in a sending state (`started`, `queued`, or `paused`) — terminating from any other state returns `422`.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_campaigns/{email_campaign_id}/reset":{"post":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}/reset"},"summary":"Reset an email campaign to draft","description":"Resets a campaign back to the `draft` state. Allowed only from the `scheduled` state; resetting from any other state (e.g. a sending or terminal state) returns `422`.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/email_campaigns/{email_campaign_id}/stats":{"get":{"tags":["Campaigns"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/email_campaigns/{email_campaign_id}/stats"},"summary":"Get email campaign statistics","description":"Returns aggregated performance metrics for a single campaign: counts and rates for deliveries, opens, clicks, bounces, spam complaints, and unsubscriptions. If the campaign has never been started, all counts and rates are returned as `0`. Statistics are aggregated asynchronously and may be slightly delayed for recently sent campaigns. By ","security":[{"bearerAuth":[]}]}},"/api/inbound/folders":{"get":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders"},"summary":"List folders","description":"Returns all inbound folders in the account.","security":[{"bearerAuth":[]}]},"post":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders"},"summary":"Create a folder","description":"Create a new inbound folder.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name","required":true}}},"example":{"name":"Support"}}}}}},"/api/inbound/folders/{folder_id}":{"get":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}"},"summary":"Get a folder","description":"Returns a single inbound folder.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}"},"summary":"Update a folder","description":"Update an inbound folder.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name","required":true}}},"example":{"name":"Support"}}}}},"delete":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}"},"summary":"Delete a folder","description":"Permanently delete an inbound folder along with all of its inboxes.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/inbound/folders/{folder_id}/inboxes":{"get":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}/inboxes"},"summary":"List inboxes","description":"Returns all inboxes in a folder.","security":[{"bearerAuth":[]}]},"post":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}/inboxes"},"summary":"Create an inbox","description":"Create a new inbox in a folder. By default Mailtrap generates the inbox `address` automatically based on the `name`. To create a catch-all inbox on your own domain, pass `domain_id` — the ID of a verified custom sending domain with inbound enabled. The inbox then receives mail sent to any address on that domain, and its `address` is retur","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"domain_id":{"type":"number","description":"Attach the inbox to a verified custom sending domain (one with inbound enabled), creating a catch-all inbox that receives mail for any address on that domain. Omit to create a standard Mailtrap-hosted inbox. Requires the custom domains feature."},"name":{"type":"string","description":"name","required":true}}},"example":{"domain_id":894,"name":"Support tickets"}}}}}},"/api/inbound/folders/{folder_id}/inboxes/{inbox_id}":{"get":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}/inboxes/{inbox_id}"},"summary":"Get an inbox","description":"Returns a single inbox.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}/inboxes/{inbox_id}"},"summary":"Update an inbox","description":"Rename an inbox. The generated `address` does not change.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name","required":true}}},"example":{"name":"Support tickets"}}}}},"delete":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/folders/{folder_id}/inboxes/{inbox_id}"},"summary":"Delete an inbox","description":"Permanently delete an inbox and all its received messages.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/inbound/inboxes/{inbox_id}/messages":{"get":{"tags":["Inbound"],"parameters":[{"name":"last_id","in":"query","description":"ID of the last message from the previous page. Pass the `last_id` value returned by the previous response to fetch the next page. Omit on the first request.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/messages"},"summary":"List messages","description":"Returns inbound messages received by the inbox, ordered by `received_at` descending. List responses use cursor pagination. When more results are available the response includes a `last_id`; pass it back as the `last_id` query parameter to get the next page. When `last_id` is `null` you have reached the end.","security":[{"bearerAuth":[]}]}},"/api/inbound/inboxes/{inbox_id}/messages/{id}":{"get":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/messages/{id}"},"summary":"Get a message","description":"Returns a single inbound message together with URLs for the raw `.eml` file and for each attachment, plus the decoded HTML and plain-text bodies. URLs expire after one hour.","security":[{"bearerAuth":[]}]},"delete":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/messages/{id}"},"summary":"Delete a message","description":"Permanently delete an inbound message and its stored body and attachments.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/api/inbound/inboxes/{inbox_id}/messages/{id}/reply":{"post":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/messages/{id}/reply"},"summary":"Reply to a message","description":"Send a reply to an inbound message. The reply is threaded to the original and its subject is prefixed with `Re:` (unless it already starts with one). By default the reply is addressed to the original sender (its `Reply-To`, or `From` when absent). Pass `to` to override the recipients — an explicit empty array sends to `cc`/`bcc` only — or","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"Plain-text body."},"category":{"type":"string","description":"Email API category for the sent message."},"attachments":{"type":"array","description":"attachments","items":{"type":"object","properties":{"type":{"type":"string","description":"MIME type of the attachment."},"content":{"type":"string","description":"Base64-encoded attachment content.","required":true},"content_id":{"type":"string","description":"`Content-ID` used to reference an inline attachment from the HTML body. Only relevant when `disposition` is `inline`."},"disposition":{"type":"string","description":"disposition","enum":["attachment","inline"]},"filename":{"type":"string","description":"filename","required":true}}}},"bcc":{"type":"array","description":"bcc","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}},"cc":{"type":"array","description":"cc","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}},"custom_variables":{"type":"object","description":"Email API custom variables for the sent message. (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"from":{"type":"string","description":"Sender address. Rejected for Mailtrap-hosted inboxes (they always send from their own address); required for custom-domain inboxes, where the address must belong to the inbox's domain."},"headers":{"type":"object","description":"Custom headers to add to the sent message. (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"html":{"type":"string","description":"HTML body."},"reply_to":{"type":"object","description":"reply_to","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}},"to":{"type":"array","description":"to","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}}}},"example":{"text":"Thanks for reaching out. We are looking into it.","category":"Support reply","attachments":[],"bcc":[],"cc":[],"custom_variables":{"ticket_id":"12345"},"from":"","headers":{"X-Custom-Header":"value"},"html":"<p>Thanks for reaching out. We are looking into it.</p>","reply_to":{},"to":[]}}}}}},"/api/inbound/inboxes/{inbox_id}/messages/{id}/reply_all":{"post":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/messages/{id}/reply_all"},"summary":"Reply all to a message","description":"Send a reply to an inbound message and copy the original's other recipients. Behaves exactly like the Reply to a message operation, except `cc` defaults to the original's `To` + `Cc` — minus the inbox's own addresses and the sender (already in `To`). Pass `to`, `cc`, or `bcc` to override the computed recipients. As with a plain reply, the","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"Plain-text body."},"category":{"type":"string","description":"Email API category for the sent message."},"attachments":{"type":"array","description":"attachments","items":{"type":"object","properties":{"type":{"type":"string","description":"MIME type of the attachment."},"content":{"type":"string","description":"Base64-encoded attachment content.","required":true},"content_id":{"type":"string","description":"`Content-ID` used to reference an inline attachment from the HTML body. Only relevant when `disposition` is `inline`."},"disposition":{"type":"string","description":"disposition","enum":["attachment","inline"]},"filename":{"type":"string","description":"filename","required":true}}}},"bcc":{"type":"array","description":"bcc","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}},"cc":{"type":"array","description":"cc","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}},"custom_variables":{"type":"object","description":"Email API custom variables for the sent message. (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"from":{"type":"string","description":"Sender address. Rejected for Mailtrap-hosted inboxes (they always send from their own address); required for custom-domain inboxes, where the address must belong to the inbox's domain."},"headers":{"type":"object","description":"Custom headers to add to the sent message. (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"html":{"type":"string","description":"HTML body."},"reply_to":{"type":"object","description":"reply_to","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}},"to":{"type":"array","description":"to","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}}}},"example":{"text":"Thanks for reaching out. We are looking into it.","category":"Support reply","attachments":[],"bcc":[],"cc":[],"custom_variables":{"ticket_id":"12345"},"from":"","headers":{"X-Custom-Header":"value"},"html":"<p>Thanks for reaching out. We are looking into it.</p>","reply_to":{},"to":[]}}}}}},"/api/inbound/inboxes/{inbox_id}/messages/{id}/forward":{"post":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/messages/{id}/forward"},"summary":"Forward a message","description":"Forward an inbound message to new recipients. The subject is prefixed with `Fwd:` (unless it already starts with one). The original message is always carried along: its rendered body is quoted below your optional note and its attachments are re-attached (any attachments you supply are added on top). A forward has no implicit recipient — y","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"Plain-text body."},"category":{"type":"string","description":"Email API category for the sent message."},"attachments":{"type":"array","description":"attachments","items":{"type":"object","properties":{"type":{"type":"string","description":"MIME type of the attachment."},"content":{"type":"string","description":"Base64-encoded attachment content.","required":true},"content_id":{"type":"string","description":"`Content-ID` used to reference an inline attachment from the HTML body. Only relevant when `disposition` is `inline`."},"disposition":{"type":"string","description":"disposition","enum":["attachment","inline"]},"filename":{"type":"string","description":"filename","required":true}}}},"bcc":{"type":"array","description":"bcc","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}},"cc":{"type":"array","description":"cc","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}},"custom_variables":{"type":"object","description":"Email API custom variables for the sent message. (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"from":{"type":"string","description":"Sender address. Rejected for Mailtrap-hosted inboxes (they always send from their own address); required for custom-domain inboxes, where the address must belong to the inbox's domain."},"headers":{"type":"object","description":"Custom headers to add to the sent message. (free-form object — see https://github.com/mailtrap/mailtrap-openapi)","properties":{}},"html":{"type":"string","description":"HTML body."},"reply_to":{"type":"object","description":"reply_to","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}},"to":{"type":"array","description":"to","items":{"type":"object","properties":{"email":{"type":"string","description":"email","required":true},"name":{"type":"string","description":"name"}}}}}},"example":{"text":"Thanks for reaching out. We are looking into it.","category":"Support reply","attachments":[],"bcc":[],"cc":[],"custom_variables":{"ticket_id":"12345"},"from":"","headers":{"X-Custom-Header":"value"},"html":"<p>Thanks for reaching out. We are looking into it.</p>","reply_to":{},"to":[]}}}}}},"/api/inbound/inboxes/{inbox_id}/threads":{"get":{"tags":["Inbound"],"parameters":[{"name":"last_id","in":"query","description":"Cursor from the previous response's `last_id`. Omit on the first request.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/threads"},"summary":"List threads","description":"Returns the inbox's conversation threads, ordered by most recent activity first. Only threads and messages within your plan's retention window are included; the per-thread aggregates (message count, size, senders, recipients, attachments) are computed over those accessible messages. Results use cursor pagination. When more results are ava","security":[{"bearerAuth":[]}]}},"/api/inbound/inboxes/{inbox_id}/threads/{id}":{"get":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/threads/{id}"},"summary":"Get a thread","description":"Returns a single thread with its messages embedded, ordered oldest first. Each message carries a `visibility_status`: - `available` — the message is within your plan's retention window. The full envelope, subject, RFC headers, decoded bodies, and attachment download URLs are included; sent messages also carry their delivery lifecycle (`de","security":[{"bearerAuth":[]}]},"delete":{"tags":["Inbound"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.mailtrap.io/developers/readme","api_endpoint":"https://mailtrap.io/api/inbound/inboxes/{inbox_id}/threads/{id}"},"summary":"Delete a thread","description":"Delete a thread. Inbound messages in the thread are removed; sent messages are preserved.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}