openapi: 3.1.0 info: title: SMTP2GO API version: 3.0.4 description: The SMTP2GO v3 REST API for sending transactional email and SMS, managing sender domains and single sender emails, SMTP users, API keys, IP allow lists and IP auth, templates, webhooks, suppressions, subaccounts, dedicated IPs, email archive, activity search and delivery statistics. Every operation is a POST (with a PATCH variant on two paths) carrying a JSON body; authentication is an API key supplied in the X-Smtp2go-Api-Key header or as an api_key field in the request body. contact: name: SMTP2GO Support url: https://support.smtp2go.com/ termsOfService: https://www.smtp2go.com/terms/ x-harvest: source: https://developers.smtp2go.com/mcp method: MCP tools/call get-endpoint, one call per path+method, assembled verbatim harvested: '2026-08-13' server_info: name: SMTP2GO-API-Docs version: 3.0.4 note: SMTP2GO does not publish a single fetchable OpenAPI URL; the ReadMe registry path answers 429 to non-browser clients. The provider's own remote MCP server returns the authoritative OpenAPI 3.1.0 fragment for each endpoint anonymously, and those 73 fragments are merged here without modification. servers: - url: https://api.smtp2go.com/v3 description: Regionless - url: https://us-api.smtp2go.com/v3 description: US Region - url: https://eu-api.smtp2go.com/v3 description: EU Region - url: https://au-api.smtp2go.com/v3 description: AU Region security: - sec0: [] tags: - name: EMAILS description: Send standard, MIME and batch email; manage scheduled sends - name: EMAIL ARCHIVE description: Search and retrieve archived email content - name: SENDER DOMAINS description: Add, verify and manage sender domains, tracking and return-path subdomains - name: SINGLE SENDER EMAILS description: Verify individual From addresses - name: SMTP USERS description: Manage SMTP relay usernames - name: API KEYS description: Create, edit and inspect API keys and their endpoint permissions - name: IP Allow List description: Manage the account IP allow list for SMTP and API access - name: IP AUTH description: Manage IP-authenticated sending entries - name: DEDICATED IPS description: View dedicated IP addresses on the account - name: ALLOWED SENDERS description: Manage the allowed/restricted senders list - name: ALLOWED RECIPIENTS description: Manage the allowed recipients list - name: SUPPRESSIONS description: Add, view and remove suppressed addresses - name: SUBACCOUNTS description: Create, update, close and reopen subaccounts - name: TEMPLATES description: Create and manage email templates - name: WEBHOOKS description: Create and manage event webhooks - name: ACTIVITY description: Search account email and SMS activity events - name: STATISTICS description: Delivery, bounce, spam, unsubscribe and cycle statistics - name: SMS description: Send SMS and view sent/received messages and summaries paths: /activity/search: post: tags: - ACTIVITY summary: Search activity description: Returns events (such as opens, unsubscribes) which match the filters passed. A count of events matching the filter is also included, as this may surpass the maximum of 1,000 items included within the response.
This endpoint is rate-limited to 60 requests per minute. operationId: search-activity requestBody: content: application/json: schema: type: object properties: start_date: type: string descriiption: 'ISO-8601 formatted datetime which defaults to current date at midnight. The range will be inclusive of start_date and exclusive of end_date. Timezone is UTC.Defaults to current date at midnight.

Valid formats are: 2006-01-02, 2006-01-02 15:04:05, 2006-01-02T15:04:05, 2006-01-02T15:04:05.0000000, 02 Jan 06 15:04 MST, 02 Jan 06 15:04 -0700, 2006-01-02T15:04:05Z07:00, 2006-01-02T15:04:05.999999999Z07:00, Mon, 02 Jan 2006 15:04:05 MST' end_date: type: string description: 'ISO-8601 formatted datetime which defaults to now. Timezone is UTC.Defaults to current date at midnight.

Valid formats are: 2006-01-02, 2006-01-02 15:04:05, 2006-01-02T15:04:05, 2006-01-02T15:04:05.0000000, 02 Jan 06 15:04 MST, 02 Jan 06 15:04 -0700, 2006-01-02T15:04:05Z07:00, 2006-01-02T15:04:05.999999999Z07:00, Mon, 02 Jan 2006 15:04:05 MST' search: type: string description: If passed, will return all events for emails containing this string in any search fields. To return events with one or more text values, separate the text with '|' (e.g. 'text1 | text2') search_email_id: type: string description: If passed, will return all events for an email matching this specific id search_subject: type: string description: If passed, will return all events for emails containing this string in the email subject search_sender: type: string description: If passed, will return all events for emails containing this string in the email sender search_recipient: type: string description: If passed, will return all events for emails containing this string in the email recipient search_usernames: type: array description: If passed, will return all events for emails sent by this/these username/s items: type: string subaccounts: type: array description: If passed, will return all events for emails sent by this/these subaccount_id/s (as returned from the /subaccount/search endpoint or as shown in the App) items: type: string limit: type: integer description: 'The maximum number of events to return (Max: 1000)' format: int32 default: 100 continue_token: type: string description: If passed, will continue the search beyond the current page, using the same search parameters only_latest: type: boolean description: 'If true, will only return the most recent event for each email returned. Default: false' only_latest_by_sent: type: boolean description: 'If true, will only return the most recent event for each email returned ordered by sent date (overrides only_latest field). Default: false' event_types: type: array description: If passed, will limit the returned events to the provided event types.

Values: 'processed', 'soft-bounced', 'hard-bounced', 'rejected', 'spam', 'delivered', 'unsubscribed', 'resubscribed', 'opened', 'clicked' items: type: string include_headers: type: boolean description: Return the full email headers with the response default: false custom_headers: type: array description: A list of header keys to parse out of the raw headers items: type: string example: X-MyCustomID region: type: string description: Optional. By default, activity search queries the region where the master account is located. If the account has subaccounts in other regions, pass this field to force the search to query activity data in that region. enum: - us - eu - au example: us responses: '200': description: Matching events content: application/json: examples: Result: value: data: events: - from: rob@example.co.uk recipient: jo@another_example.com subaccount_name: Master account email_id: 1u0SwL-B9zBpi9ffUq-JAB2 date: '2022-11-12T07:44:58Z' event: delivered subject: My Test Email username: api-5BFDE1E62529 sender: rob@example.co.uk to: jo@another_example.com bcc: audit@example.co.uk smtp_response: 250 Message received host: 136.143.191.44 headers: 'Content-Type: text/html To: to@example.com...' custom_headers: X-MyCustomID: 01HMSACEHXHDG4X1CZV89SQMP7 total_events: 1 continue_token: null request_id: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 schema: type: object required: - data - request_id properties: data: type: object required: - continue_token - events - total_events properties: continue_token: type: string example: '...' nullable: true events: type: array items: type: object required: - from - recipient - subaccount_name - email_id - date - event - recipients - subject - username - reply_to - sender - sender_full - to - cc - bcc - smtp_response - reason - host - error - email_client - metadata - outbound_ip - byte_size - headers - custom_headers properties: from: type: string example: no-reply@example.com recipient: type: string example: someone@example.com subaccount_name: type: string example: Master account email_id: type: string example: 1u0SwL-B9zBpi9ffUq-JAB2 description: The unique ID of the email which generated the event date: type: string example: '2021-02-09T12:18:53Z' description: An RFC3339 encoded timestamp with UTC timezone indicating the timestamp of the event event: type: string example: opened description: A string indicating the type of the event recipients: type: array example: '[''someone@example.com'', ''someoneelse@example.com'']' description: The recipients of the email items: type: string subject: type: string example: Booking Confirmation description: The subject of the email username: type: string example: smtpuser description: The username used to send the email reply_to: type: string example: reply@example.com description: The value of the Reply-To header if present sender: type: string example: no-reply@example.com description: The From header of the email sender_full: type: string example: NoReply description: The From header of the email including name part if present to: type: string example: otherperson@example.com description: The value of the TO header cc: type: string example: cc@example.com description: The value of the CC header bcc: type: string example: bcc@example.com description: The value of the BCC header smtp_response: type: string example: 250 Message received description: The SMTP response of the mail server reason: type: string example: This was a spam email description: The reason for an event occurring if present host: type: string example: 127.0.0.1 description: The IP address of the host associated with the event originating_host: type: string example: 127.0.0.1 description: The originating IP address of the host associated with the processed event error: type: string example: i/o timeout description: The error message that occurred on certain events email_client: type: object description: Email client information metadata: type: object description: Additional metadata for open/click events outbound_ip: type: string description: The Outbound IP Address if available byte_size: type: integer description: The size of the email in bytes headers: type: string description: The full email headers if requested custom_headers: type: object description: An dictionary of key/value pairs of custom headers delivery_attempts: type: array description: A list of current delivery attempts if available (for processed events only) items: type: object properties: smtptime: type: string description: An RFC3339 encoded timestamp with UTC timezone indicating the timestamp of the delivery attempt host: type: string description: The host that generated the delivery attempt smtpresponse: type: string description: The SMTP response from the target server total_events: type: integer example: 23405 default: 0 description: The total events available to be returned.
The actual number of events returned will depend on the number available and the 'limit' passed. request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /allowed_recipients/add: post: tags: - ALLOWED RECIPIENTS summary: Add allowed recipients description: Add one or more email addresses and domain names to your Allowed Recipients List. Further details of the associated setting are found in the SMTP2GO Guides. operationId: add-allowed-recipients requestBody: content: application/json: schema: type: object required: - allowed_recipients properties: allowed_recipients: type: array description: Array of email addresses and domain names. default: - test-person@example.com - other@example.com items: type: string enabled: type: boolean description: A flag indicating if this list is taken into account when sending example: true subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Allowed Recipients list updated content: application/json: examples: Example: value: request_id: b8f3c2b4-63ca-11ed-b66a-f23c9216ce11 data: allowed_recipients: - test@test.com enabled: true schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_recipients - enabled properties: allowed_recipients: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com enabled: type: boolean description: A flag indicating if this list is taken into account when sending example: true '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_recipients/remove: post: tags: - ALLOWED RECIPIENTS summary: Remove allowed recipients description: 'Remove one or more emails addresses or domain names stored in your Allowed Recipients List. Note: In the event that any of the email addresses or domains do not feature in the list, no error will be raised.' operationId: remove-allowed-recipients requestBody: content: application/json: schema: type: object required: - allowed_recipients properties: allowed_recipients: type: array description: Array of email addresses and domain names to remove. default: - test-person@example.com items: type: string enabled: type: boolean description: A flag indicating if this list is taken into account when sending example: true subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Allowed Recipients Removed content: application/json: examples: Example: value: request_id: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: allowed_recipients: - test-person@example.com enabled: true schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_recipients - enabled properties: allowed_recipients: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com enabled: type: boolean description: A flag indicating if this list is taken into account when sending example: true '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_recipients/update: post: tags: - ALLOWED RECIPIENTS summary: Update allowed recipients description: Replace the email addresses and domain names on your Allowed Recipients List using this endpoint. Further details of these modes are found in the SMPT2GO Guides. Note that a post to this endpoint will return a success, even if the setting is not in use. operationId: update-allowed-recipients requestBody: content: application/json: schema: type: object required: - allowed_recipients - enabled properties: allowed_recipients: type: array description: Array of email addresses and domain names. default: - test-person@example.com - other@example.com items: type: string enabled: type: boolean description: A flag indicating if this list should be taken into account when sending example: true subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Allowed Recipients list updated content: application/json: examples: Example: value: request_id: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: allowed_recipients: - test-person@example.com - otherexample.com enabled: true schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_recipients - enabled properties: allowed_recipients: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com enabled: type: boolean description: A flag indicating if this list is taken into account when sending example: true '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_recipients/view: post: tags: - ALLOWED RECIPIENTS summary: View allowed recipients description: Returns the email addresses and domain names on your Allowed Recipients list. operationId: view-allowed-recipients requestBody: content: application/json: schema: type: object required: [] properties: subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of Allowed Recipients content: application/json: examples: Example: value: request_id: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: allowed_recipients: - test@test.com enabled: true schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_recipients - enabled properties: allowed_recipients: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com enabled: type: boolean description: A flag indicating if this list is taken into account when sending example: true '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_senders/add: post: tags: - ALLOWED SENDERS summary: Add allowed senders description: Add one or more email addresses and domain names to your Allowed or Restricted Senders List. How this list of email addresses and domain names are used is shown by the current 'mode' value; if the Restrict Senders setting is on, they will form either a whitelist or blacklist. If the setting is off, the list will be disabled. Further details of the associated setting are found in the SMTP2GO Guides. Details of how this mode can be set via the update end-point, are given further in the documentation. A post to this endpoint will return a success, even if the Restrict Senders setting is not in use. operationId: add-allowed-senders requestBody: content: application/json: schema: type: object required: - allowed_senders properties: allowed_senders: type: array description: Array of email addresses and domain names. default: - test-person@example.com - other@example.com items: type: string subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Allowed Senders list updated content: application/json: examples: Example: value: request_id: b8f3c2b4-63ca-11ed-b66a-f23c9216ce11 data: allowed_senders: - test@test.com mode: disabled schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_senders - mode properties: allowed_senders: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com mode: type: string description: A string indicating how the list of email address and domain names is interpreted. example: whitelist enum: - whitelist - blacklist - disabled '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_senders/remove: post: tags: - ALLOWED SENDERS summary: Remove allowed senders description: 'Remove one or more emails addresses or domain names stored in your Allowed or Restricted Senders List. Note: In the event that any of the email addresses or domains do not feature in the list, no error will be raised.' operationId: remove-allowed-senders requestBody: content: application/json: schema: type: object required: - allowed_senders properties: allowed_senders: type: array description: Array of email addresses and domain names to remove. default: - test-person@example.com items: type: string subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Allowed Sender Removed content: application/json: examples: Example: value: request_id: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: allowed_senders: - test-person@example.com mode: disabled schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_senders - mode properties: allowed_senders: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com mode: type: string description: A string indicating how the list of email address and domain names is interpreted. example: whitelist enum: - whitelist - blacklist - disabled '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_senders/update: post: tags: - ALLOWED SENDERS summary: Update allowed senders description: Replace the email addresses and domain names on your Allowed or Restricted Senders List using this endpoint. How the email addresses and domain names are used is defined in the current 'mode' value - further details of these modes are found in the SMPT2GO Guides. Note that a post to this endpoint will return a success, even if the setting is not in use. operationId: update-allowed-senders requestBody: content: application/json: schema: type: object required: - allowed_senders - mode properties: allowed_senders: type: array description: Array of email addresses and domain names. default: - test-person@example.com - other@example.com items: type: string mode: type: string description: A string indicating how the list of email address and domain names is interpreted. and should be one of 'whitelist', 'blacklist' or 'disabled'.
Warning: Changing the mode to 'whitelist' or 'blacklist' disables the 'Sender Domains' and 'Single Sender Emails' features.
default: whitelist enum: - whitelist - blacklist - disabled subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Allowed Senders list updated content: application/json: examples: Example: value: request_id: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: allowed_senders: - test-person@example.com - otherexample.com mode: whitelist schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_senders - mode properties: allowed_senders: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com mode: type: string description: A string indicating how the list of email address and domain names is interpreted. example: whitelist enum: - whitelist - blacklist - disabled '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /allowed_senders/view: post: tags: - ALLOWED SENDERS summary: View allowed senders description: Returns the email addresses and domain names on your Allowed or Restricted Senders list, as well as the Restrict Senders setting, which dictates how they are interpreted. operationId: view-allowed-senders requestBody: content: application/json: schema: type: object required: [] properties: subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of Allowed Senders content: application/json: examples: Example: value: request_id: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: allowed_senders: - test@test.com mode: disabled schema: type: object required: - request_id - data properties: request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 data: type: object required: - allowed_senders - mode properties: allowed_senders: type: array description: A list of email addresses and domain names items: type: string example: test-person@example.com mode: type: string description: A string indicating how the list of email address and domain names is interpreted. example: whitelist enum: - whitelist - blacklist - disabled '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /api_keys/add: post: tags: - API KEYS summary: Add a new API key description: Add a new API key to your account
This endpoint is rate-limited to 5 requests per minute. operationId: add-api-key requestBody: content: application/json: schema: type: object properties: description: type: string description: A comment or description of your new API key example: test api key custom_ratelimit: type: boolean description: If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. custom_ratelimit_value: type: integer description: If passed, defines the limit of emails this user can send in the period specified in custom_ratelimit_period.

Note: Only stores this value if custom_ratelimit is true. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' ip_pool: type: integer description: If passed, any emails sent with this API key will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: The HTML content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here): example: test_html default: '' feedback_text: type: string description: The text content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here): example: test_text default: '' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: allowed endpoints: type: array description: 'An array of endpoints that this API key will be allowed to use.

The endpoints passed must be a subset of the endpoints allowed by the API key making this call.

A full list of endpoints can be found in the app under Sending->API Keys->Permissions or programatically via the API here.

We also accept wildcard patterns, for example to allow access to all email endpoints you can pass ["/email/*"].

To allow access to every endpoint simply pass "endpoints": ["*"]' default: - /email/send items: type: string subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully added API key content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - api_key: api-00000000000000000000000000000000 description: test api key feedback_enabled: true feedback_html: test_html feedback_text: test_text ippool: 1234 bounce_notifications: from status: allowed endpoints: - /email/send schema: type: object required: - data - request_id properties: data: type: array description: An array of API key results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object properties: api_key: type: string example: api-00000000000000000000000000000000 description: The new API key used to query the API. username: type: string example: api-000000000000 description: A shortened version of the API key which can be used to correlate data with some other API calls that also feature username. description: type: string description: A comment or description of the API key. custom_rate_limit: type: boolean example: true default: false description: If enabled will use the values of custom_ratelimit_value and custom_ratelimit_period for rate limiting. custom_ratelimit_value: type: integer example: 123 description: If passed, defines the limit of emails this API key can send in the period specified in custom_ratelimit_period. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' default_ratelimit_value: type: string example: 123 description: The default limit of emails this API key can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this API key will be limited to the number of emails specified in default_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: allowed endpoints: type: array description: An array of endpoints that this API key will be allowed to use. default: - /email/send request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /api_keys/edit: post: tags: - API KEYS summary: Edit an API key description: Edit an existing API key operationId: edit-api-key requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The ID of the existing API key you wish to edit. example: api-00000000000000000000000000000000 description: type: string description: A comment or description of your new API key example: test api key custom_ratelimit: type: boolean description: If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. custom_ratelimit_value: type: integer description: If passed, defines the limit of emails this user can send in the period specified in custom_ratelimit_period.

Note: Only stores this value if custom_ratelimit is true. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' ip_pool: type: integer description: If passed, any emails sent with this API key will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: The HTML content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
example: test_html default: '' feedback_text: type: string description: The text content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
example: test_text default: '' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: allowed endpoints: type: array description: 'An array of endpoints that this API key will be allowed to use.

Any additional endpoints passed must be a subset of the endpoints allowed by the API key making this call.

A full list of endpoints can be found in the app under Sending->API Keys->Permissions or programatically via the API here.

We also accept wildcard patterns, for example to allow access to all email endpoints you can pass ["/email/*"].

To allow access to every endpoint simply pass "endpoints": ["*"]' default: - /email/send items: type: string subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully edited API key content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - api_key: api-000000000000******************** description: test api key feedback_enabled: true feedback_html: test_html feedback_text: test_text ippool: 1234 bounce_notifications: from status: allowed endpoints: - /email/send schema: type: object required: - data - request_id properties: data: type: array description: An array of API key results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object properties: api_key: type: string example: api-000000000000******************** description: The API key used to query the API (masked) username: type: string example: api-000000000000 description: A shortened version of the API key which can be used to correlate data with some other API calls that also feature username. description: type: string description: A comment or description of the API key. custom_rate_limit: type: boolean example: true default: false description: If enabled will use the values of custom_ratelimit_value and custom_ratelimit_period for rate limiting. custom_ratelimit_value: type: integer example: 123 description: If passed, defines the limit of emails this API key can send in the period specified in custom_ratelimit_period. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' default_ratelimit_value: type: string example: 123 description: The default limit of emails this API key can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this API key will be limited to the number of emails specified in default_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: allowed endpoints: type: array description: An array of endpoints that this API key will be allowed to use. default: - /email/send request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false patch: tags: - API KEYS summary: Patch an API key description: Patch an existing API key ignoring missing properties operationId: patch-api-key requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The ID of the existing API key you wish to edit. example: api-00000000000000000000000000000000 description: type: string description: A comment or description of your new API key example: test api key custom_ratelimit: type: boolean description: If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. custom_ratelimit_value: type: integer description: If passed, defines the limit of emails this user can send in the period specified in custom_ratelimit_period.

Note: Only stores this value if custom_ratelimit is true. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' ip_pool: type: integer description: If passed, any emails sent with this API key will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: null feedback_html: type: string description: The HTML content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
example: test_html default: null feedback_text: type: string description: The text content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
example: test_text default: null open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: null click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: null archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: null audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: null status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: null endpoints: type: array description: 'An array of endpoints that this API key will be allowed to use.

Any additional endpoints passed must be a subset of the endpoints allowed by the API key making this call.

A full list of endpoints can be found in the app under Sending->API Keys->Permissions or programatically via the API here.

We also accept wildcard patterns, for example to allow access to all email endpoints you can pass ["/email/*"].

To allow access to every endpoint simply pass "endpoints": ["*"]' default: null items: type: string subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully patched API key content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - api_key: api-000000000000******************** description: test api key feedback_enabled: true feedback_html: test_html feedback_text: test_text ippool: 1234 bounce_notifications: from status: allowed endpoints: - /email/send schema: type: object required: - data - request_id properties: data: type: array description: An array of API key results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object properties: api_key: type: string example: api-000000000000******************** description: The API key used to query the API (masked) username: type: string example: api-000000000000 description: A shortened version of the API key which can be used to correlate data with some other API calls that also feature username. description: type: string description: A comment or description of the API key. custom_rate_limit: type: boolean example: true default: false description: If enabled will use the values of custom_ratelimit_value and custom_ratelimit_period for rate limiting. custom_ratelimit_value: type: integer example: 123 description: If passed, defines the limit of emails this API key can send in the period specified in custom_ratelimit_period. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' default_ratelimit_value: type: string example: 123 description: The default limit of emails this API key can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this API key will be limited to the number of emails specified in default_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: allowed endpoints: type: array description: An array of endpoints that this API key will be allowed to use. default: - /email/send request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /api_keys/permissions: post: tags: - API KEYS summary: View Permissions description: Retrieve a list of endpoints this API Key can use. This endpoint is available to all API Keys. operationId: view-api-key-permissions requestBody: content: application/json: schema: type: object properties: {} responses: '200': description: Successfully retrieved API key permissions content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - /email/send - /api_keys/view schema: type: object required: - data - request_id properties: data: type: array description: An array of API key results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: array items: type: string request_id: type: string example: - /email/send - /api_keys/view '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /api_keys/remove: post: tags: - API KEYS summary: Remove an API key description: Remove an existing API key operationId: remove-api-key requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The ID of the existing API key you wish to remove. example: api-00000000000000000000000000000000 subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully removed API key '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /api_keys/view: post: tags: - API KEYS summary: View API Keys description: Retrieve a list of API keys on this account operationId: view-api-keys requestBody: content: application/json: schema: type: object properties: id: type: string description: A full API key to retrieve the information for. search: type: string description: A search keyword used to refine the results. subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully retrieved API keys content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - api_key: api-000000000000******************** description: test api key again feedback_enabled: true feedback_html: test_html feedback_text: test_text ippool: 1234 bounce_notifications: from status: allowed endpoints: - /email/send schema: type: object required: - data - request_id properties: data: type: array description: An array of API key results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object properties: api_key: type: string example: api-000000000000******************** description: The masked API key. username: type: string example: api-000000000000 description: A shortened version of the API key which can be used to correlate data with some other API calls that also feature username. description: type: string description: A comment or description of the API key. custom_rate_limit: type: boolean example: true default: false description: If enabled will use the values of custom_ratelimit_value and custom_ratelimit_period for rate limiting. custom_ratelimit_value: type: integer example: 123 description: If passed, defines the limit of emails this API key can send in the period specified in custom_ratelimit_period. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' default_ratelimit_value: type: string example: 123 description: The default limit of emails this API key can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this API key will be limited to the number of emails specified in default_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this API key. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this API key. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this API key. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this API key. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the API key, one of ['allowed', 'blocked', 'sandbox']. default: allowed endpoints: type: array description: An array of endpoints that this API key will be allowed to use. default: - /email/send request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /archive/email: post: tags: - EMAIL ARCHIVE summary: View an archived email description: Fetch an archived email using the email_id operationId: view-an-archived-email requestBody: content: application/json: schema: type: object required: - email_id properties: email_id: type: string description: The unique email_id of the archived email you wish to retrieve example: 1u0SwL-B9zBpi9ffUq-JAB2 responses: '200': description: Archived email content: application/json: examples: Result: value: request_id: 13dd3376-40fa-11ec-9fc6-f23c9216bf47 data: attachment_count: 0 attachments: [] byte_count: 1428 email_id: 1u0SwL-B9zBpi9ffUq-JAB2 envelope_from: test@test.com headers: '...' recipient: test@test.com sender: test@test.com sent: '2021-10-19T21:35:40Z' subject: test to: test@test.com url: '...' username: api-12345678 schema: type: object required: - request_id - data properties: request_id: type: string example: 13dd3376-40fa-11ec-9fc6-f23c9216bf47 data: type: object properties: attachment_count: type: integer example: 0 default: 0 attachments: type: array byte_count: type: integer example: 1428 default: 0 email_id: type: string example: 1u0SwL-B9zBpi9ffUq-JAB2 envelope_from: type: string example: test@test.com headers: type: string example: '...' recipient: type: string example: test@test.com sender: type: string example: test@test.com sent: type: string example: '2021-10-19T21:35:40Z' subject: type: string example: test to: type: string example: test@test.com url: type: string example: '...' username: type: string example: api-12345678 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /archive/search: post: tags: - EMAIL ARCHIVE summary: Search archived content description: Retrieve a list of up to 5,000 archived emails matching the supplied parameters. operationId: search-archived-pages requestBody: content: application/json: schema: type: object properties: start_date: type: string description: ISO-8601 formatted datetime which defaults to current date at midnight. The range will be inclusive of start_date and exclusive of end_date. Timezone is UTC. end_date: type: string description: ISO-8601 formatted datetime which defaults to now. Timezone is UTC. limit: type: integer description: 'The maximum number of emails to return (Default: 5,000)' format: int32 username: type: string description: If passed, only return email details sent by this user recipient: type: string description: If passed, only return emails with this recipient sender: type: string description: If passed, only return emails with this sender envelope_from: type: string description: If passed, only return emails with this envelope_from subject: type: string description: If passed, only return emails with this subject headers: type: string description: If passed, only return emails with this substring in the headers continue_token: type: string description: If passed, will continue the previous search if too many results were found. responses: '200': description: List of archived emails content: application/json: examples: Result: value: request_id: 6eb05270-40f9-11ec-9649-f23c9216bfca data: email_count: 1 emails: - attachment_count: 0 attachments: [] byte_count: 1422 email_id: 1u0SwL-B9zBpi9ffUq-JAB2 envelope_from: test@test.com headers: '...' recipient: test@test.com sender: test@test.com sent: '2021-11-08T18:58:47Z' subject: test to: test@test.com url: '...' username: api-12345678 schema: type: object required: - data - request_id properties: data: type: object required: - email_count - emails properties: email_count: type: integer example: 1 default: 0 emails: type: array items: type: object required: - attachment_count - attachments - byte_count - email_id - envelope_from - headers - recipient - sender - sent - subject - to - url - username properties: attachment_count: type: integer example: 0 default: 0 attachments: type: array byte_count: type: integer example: 1422 default: 0 email_id: type: string example: 1u0SwL-B9zBpi9ffUq-JAB2 envelope_from: type: string example: test@test.com headers: type: string example: '...' recipient: type: string example: test@test.com sender: type: string example: test@test.com sent: type: string example: '2021-11-08T18:58:47Z' subject: type: string example: test to: type: string example: test@test.com url: type: string example: https://api.smtp2go.com/archive-attachment/... description: A url that can be used to download the original email username: type: string example: api-12345678 request_id: type: string example: 6eb05270-40f9-11ec-9649-f23c9216bfca '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /dedicated_ips/view: post: tags: - DEDICATED IPS summary: View Dedicated IP Addresses description: Retrieve a list of Dedicated IP addresses on this account operationId: view-dedicated-ips responses: '200': description: Successfully retrieved Dedicated IP addresses content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - id: 1234 name: Main Pool ip_addresses: - 127.0.0.1 schema: type: object required: - data - request_id properties: data: type: array items: type: object properties: id: type: integer description: The id of the pool example: '1234' name: type: string description: The name of the pool example: Main Pool ip_addresses: type: array description: A list of dedicated IP addresses assigned to this pool items: description: A dedicated IP address example: 127.0.0.1 request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/add: post: tags: - SENDER DOMAINS summary: Add a sender domain description: Add a sender domain to your account. Note that you must own any domains you wish to include in this list, as you will be required to verify and authenticate the emails sent via that domain. Find full details in the Sender Domains Guide. operationId: add-sender-domain requestBody: content: application/json: schema: type: object required: - domain properties: domain: type: string description: Domain to add as a sender domain tracking_subdomain: type: string description: An optional subdomain used for click or open tracking and unsubscribe links returnpath_subdomain: type: string description: An optional subdomain to use as a return-path subdomain auto_verify: type: boolean description: If true, verify the domain now removing the need to call the 'domain/verify' endpoint or wait for the periodic verification every 7 minutes.

Note: In order to successfully complete the verification, the 'tracking_subdomain' and 'returnpath_subdomain' must be configured in the domain DNS and propagated. default: true requisition_ssl: type: boolean description: If true, requisition an SSL certificate for the tracking domain once verification is complete default: true subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here subaccount_access: type: object description: Allow subaccounts to send from verified sender domains on the master account properties: subaccounts: type: array description: A list of subaccount_ids to be given access. ID's can be found by querying /subaccounts/search future_subaccounts: type: boolean description: If set to true, will automatically add any new subaccounts to the access list responses: '200': description: Domain added content: application/json: examples: Result: value: request_id: e023461c-8c86-11e9-b984-408d5cce2644 data: domains: - domain: fulldomain: example.com subdomain: null domain: example suffix: com dkim_selector: s123456 dkim_verified: true dkim_status: '' dkim_value: dkim.smtp2go.net rpath_selector: em123456 rpath_verified: true rpath_status: '' rpath_value: return.smtp2go.net setup_link: trackers: - fulldomain: link.example.com subdomain: link domain: example suffix: com cname_verified: false cname_status: '' cname_value: '' enabled: false schema: type: object required: - request_id - data properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 data: type: object required: - domains properties: domains: type: array items: type: object properties: domain: type: object required: - dkim_value - domain - suffix - rpath_status - rpath_value - dkim_status - subdomain - fulldomain - dkim_selector - setup_link properties: dkim_value: type: string example: dkim.smtp2go.net domain: type: string example: example suffix: type: string example: com rpath_selector: type: string example: '' rpath_status: type: string example: '' rpath_verified: type: boolean example: true default: true rpath_value: type: string example: return.smtp2go.net dkim_status: type: string example: '' dkim_verified: type: boolean example: true default: true subdomain: {} fulldomain: type: string example: example.com dkim_selector: type: string example: s123456 setup_link: type: string description: A URL that can be used to automate DNS additions trackers: type: array items: type: object required: - cname_value - cname_status properties: cname_value: type: string example: '' cname_status: type: string example: '' cname_verified: type: boolean example: false default: true domain: type: string example: example suffix: type: string example: com subdomain: type: string example: link enabled: type: boolean example: false default: true fulldomain: type: string example: link.example.com subaccount_access: type: object properties: subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. default: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/remove: post: tags: - SENDER DOMAINS summary: Remove a sender domain description: Remove a sender domain from your account operationId: remove-sender-domain requestBody: content: application/json: schema: type: object required: - domain properties: domain: type: string description: Sender Domain to delete. subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Sender domain removed content: application/json: examples: Result: value: request_id: 117607da-8c88-11e9-96fa-408d5cce2644 data: domains: [] schema: type: object required: - request_id - data properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 data: type: object required: - domains properties: domains: type: array items: type: object properties: domain: type: object required: - dkim_value - domain - suffix - rpath_status - rpath_value - dkim_status - subdomain - fulldomain - dkim_selector properties: dkim_value: type: string example: dkim.smtp2go.net domain: type: string example: example suffix: type: string example: com rpath_selector: type: string example: '' rpath_status: type: string example: '' rpath_verified: type: boolean example: true default: true rpath_value: type: string example: return.smtp2go.net dkim_status: type: string example: '' dkim_verified: type: boolean example: true default: true subdomain: {} fulldomain: type: string example: example.com dkim_selector: type: string example: s123456 trackers: type: array items: type: object required: - cname_value - cname_status properties: cname_value: type: string example: '' cname_status: type: string example: '' cname_verified: type: boolean example: false default: true domain: type: string example: example suffix: type: string example: com subdomain: type: string example: link enabled: type: boolean example: false default: true fulldomain: type: string example: link.example.com subaccount_access: type: object properties: subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. default: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/returnpath: post: tags: - SENDER DOMAINS summary: Edit the return-path subdomain description: A Return Path Subdomain is used to instruct the server where to return emails that are not deliverable (ie. Bounces). This endpoint allows you to edit a Return Path Subdomain for a particular sender domain. Full details can be found in the Sender Domain Guide. operationId: edit-return-path-domain requestBody: content: application/json: schema: type: object required: - domain - old_subdomain - new_subdomain properties: domain: type: string description: The sender domain to edit the return-path subdomain for old_subdomain: type: string description: The domains old return-path subdomain default: returns new_subdomain: type: string description: The domains new return-path subdomain default: return subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Return-path subdomain edited content: application/json: examples: Result: value: request_id: 86758976-934b-11e7-b5be-480fcf01a6f2 data: domains: - domain: fulldomain: example.com subdomain: null domain: example suffix: com dkim_selector: s123456 dkim_verified: true dkim_status: '' dkim_value: dkim.smtp2go.net rpath_selector: returns rpath_verified: true rpath_status: '' rpath_value: return.smtp2go.net trackers: - fulldomain: link.example.co.uk subdomain: link domain: example suffix: co.uk cname_verified: false cname_status: 'Lookup CNAME(link.example.co.uk.) on ns1.falcoda.net returned no results Lookup CNAME(link.example.co.uk.) on ns1.falcoda.net returned no results Lookup CNAME(link.example.co.uk.) on ns2.falcoda.net returned no results Lookup CNAME(link.example.co.uk.) on ns2.falcoda.net returned no results' cname_value: '' enabled: false schema: type: object required: - request_id - data properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 data: type: object required: - domains properties: domains: type: array items: type: object properties: domain: type: object required: - dkim_value - domain - suffix - rpath_status - rpath_value - dkim_status - subdomain - fulldomain - dkim_selector properties: dkim_value: type: string example: dkim.smtp2go.net domain: type: string example: example suffix: type: string example: com rpath_selector: type: string example: '' rpath_status: type: string example: '' rpath_verified: type: boolean example: true default: true rpath_value: type: string example: return.smtp2go.net dkim_status: type: string example: '' dkim_verified: type: boolean example: true default: true subdomain: {} fulldomain: type: string example: example.com dkim_selector: type: string example: s123456 trackers: type: array items: type: object required: - cname_value - cname_status properties: cname_value: type: string example: '' cname_status: type: string example: '' cname_verified: type: boolean example: false default: true domain: type: string example: example suffix: type: string example: com subdomain: type: string example: link enabled: type: boolean example: false default: true fulldomain: type: string example: link.example.com subaccount_access: type: object properties: subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. default: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/subaccount_access: post: tags: - SENDER DOMAINS summary: Edit subaccount access description: Allow subaccounts to send from verified sender domains on the master account. operationId: edit-subaccount-access requestBody: content: application/json: schema: type: object required: - domain - subaccounts properties: domain: type: string description: The sender domain to edit subaccount access for subaccounts: type: array description: A list of subaccount_ids to be given access. ID's can be found by querying /subaccounts/search future_subaccounts: type: boolean description: If set to true, will automatically add any new subaccounts to the access list default: false responses: '200': description: Subaccount access updated content: application/json: schema: type: object properties: domain: type: string description: The sender domain that was modified. subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. examples: Result: value: request_id: 6d4706c4-54c9-483d-b141-4f16a9c26879 data: domain: my-verified-domain.com subaccounts: [] future_subaccounts: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/tracking: post: tags: - SENDER DOMAINS summary: Edit the tracking subdomain description: A Tracking Subdomain is used to monitor your email opens and clicks. This endpoint allows you to edit a tracking subdomain for a particular sender domain. Full details can be found in the Sender Domain Guide. operationId: edit-tracking-domain requestBody: content: application/json: schema: type: object required: - domain - old_subdomain - new_subdomain properties: domain: type: string description: The sender domain to edit the tracking subdomain for default: null old_subdomain: type: string description: The domains old tracking subdomain default: track new_subdomain: type: string description: The domains new tracking subdomain default: link subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Tracking subdomain edited content: application/json: examples: Result: value: request_id: 86758976-934b-11e7-b5be-480fcf01a6f2 data: domains: - domain: fulldomain: exampledomain.com subdomain: '' domain: exampledomain suffix: com dkim_selector: s123456 dkim_verified: true dkim_status: '' dkim_value: dkim.smtp2go.net rpath_selector: em744766 rpath_verified: true rpath_status: '' rpath_value: return.smtp2go.net trackers: - fulldomain: newsubdomain.exampledomain.com subdomain: newsubdomain domain: exampledomain suffix: com cname_verified: true cname_status: '' cname_value: track.smtp2go.com enabled: true schema: type: object required: - request_id - data properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 data: type: object required: - domains properties: domains: type: array items: type: object properties: domain: type: object required: - dkim_value - domain - suffix - rpath_status - rpath_value - dkim_status - subdomain - fulldomain - dkim_selector properties: dkim_value: type: string example: dkim.smtp2go.net domain: type: string example: example suffix: type: string example: com rpath_selector: type: string example: '' rpath_status: type: string example: '' rpath_verified: type: boolean example: true default: true rpath_value: type: string example: return.smtp2go.net dkim_status: type: string example: '' dkim_verified: type: boolean example: true default: true subdomain: {} fulldomain: type: string example: example.com dkim_selector: type: string example: s123456 trackers: type: array items: type: object required: - cname_value - cname_status properties: cname_value: type: string example: '' cname_status: type: string example: '' cname_verified: type: boolean example: false default: true domain: type: string example: example suffix: type: string example: com subdomain: type: string example: link enabled: type: boolean example: false default: true fulldomain: type: string example: link.example.com subaccount_access: type: object properties: subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. default: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/verify: post: tags: - SENDER DOMAINS summary: Verify a sender domain description: Verify a sender domain on your account removing the need to wait for the periodic verification every 7 minutes. operationId: verify-a-sender-domain requestBody: content: application/json: schema: type: object required: - domain properties: domain: type: string description: Domain to attempt verification for requisition_ssl: type: boolean description: If true, requisition an SSL certificate for the tracking domain once verification is complete default: true subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Sender domain verification content: application/json: examples: Result: value: request_id: e023461c-8c86-11e9-b984-408d5cce2644 data: domains: - domain: fulldomain: example.com subdomain: null domain: example suffix: com dkim_selector: s123456 dkim_verified: true dkim_status: '' dkim_value: dkim.smtp2go.net rpath_selector: em744766 rpath_verified: true rpath_status: '' rpath_value: return.smtp2go.net setup_link: trackers: - fulldomain: link.example.com subdomain: link domain: example suffix: com cname_verified: false cname_status: '' cname_value: track.smtp2go.net enabled: false schema: type: object required: - request_id - data properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 data: type: object required: - domains properties: domains: type: array items: type: object properties: domain: type: object required: - dkim_value - domain - suffix - rpath_status - rpath_value - dkim_status - subdomain - fulldomain - dkim_selector - setup_link properties: dkim_value: type: string example: dkim.smtp2go.net domain: type: string example: example suffix: type: string example: com rpath_selector: type: string example: '' rpath_status: type: string example: '' rpath_verified: type: boolean example: true default: true rpath_value: type: string example: return.smtp2go.net dkim_status: type: string example: '' dkim_verified: type: boolean example: true default: true subdomain: {} fulldomain: type: string example: example.com dkim_selector: type: string example: s123456 setup_link: type: string description: A URL that can be used to automate DNS additions. trackers: type: array items: type: object required: - cname_value - cname_status properties: cname_value: type: string example: '' cname_status: type: string example: '' cname_verified: type: boolean example: false default: true domain: type: string example: example suffix: type: string example: com subdomain: type: string example: link enabled: type: boolean example: false default: true fulldomain: type: string example: link.example.com subaccount_access: type: object properties: subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. default: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /domain/view: post: tags: - SENDER DOMAINS summary: View sender domains description: Returns a list of sender domains on your account operationId: view-sender-domains requestBody: content: application/json: schema: type: object properties: domain: type: string description: (Optional) If provided, will only retrieve records for this domain subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of sender domains content: application/json: examples: Result: value: request_id: e023461c-8c86-11e9-b984-408d5cce2644 data: domains: - domain: fulldomain: example.com subdomain: null domain: example suffix: com dkim_selector: s123456 dkim_verified: true dkim_status: '' dkim_value: dkim.smtp2go.net rpath_selector: em744766 rpath_verified: true rpath_status: '' rpath_value: return.smtp2go.net setup_link: trackers: - fulldomain: link.example.com subdomain: link domain: example suffix: com cname_verified: true cname_status: '' cname_value: track.smtp2go.net enabled: true subaccount_access: subaccounts: [] future_subaccounts: false schema: type: object required: - request_id - data properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 data: type: object required: - domains properties: domains: type: array items: type: object properties: from_master: type: boolean description: True if this domain is delegated to the subaccount from the master account domain: type: object required: - dkim_value - domain - suffix - rpath_status - rpath_value - dkim_status - subdomain - fulldomain - dkim_selector properties: dkim_value: type: string example: dkim.smtp2go.net domain: type: string example: example suffix: type: string example: com rpath_selector: type: string example: '' rpath_status: type: string example: '' rpath_verified: type: boolean example: true default: true rpath_value: type: string example: return.smtp2go.net dkim_status: type: string example: '' dkim_verified: type: boolean example: true default: true subdomain: {} fulldomain: type: string example: example.com dkim_selector: type: string example: s123456 setup_link: type: string description: A URL that can be used to automate DNS additions (only included if a single domain is returned, otherwise 'unavailable') trackers: type: array items: type: object required: - cname_value - cname_status properties: cname_value: type: string example: '' cname_status: type: string example: '' cname_verified: type: boolean example: false default: true domain: type: string example: example suffix: type: string example: com subdomain: type: string example: link enabled: type: boolean example: false default: true fulldomain: type: string example: link.example.com subaccount_access: type: object properties: subaccounts: type: array description: A list of subaccount IDs that were given access the sender domain. future_subaccounts: type: boolean description: If true, any new subaccounts added will automatically be given access. default: false '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /email/batch: post: tags: - EMAILS summary: Send a batch of emails description: Send a batch of emails operationId: send-email-batch requestBody: content: application/json: schema: type: object required: - emails example: emails: - to: - Jane Jones sender: John Smith subject: 'My Test Email #1' html_body:

Test

text_body: Test attachments: - filename: report.pdf mimetype: application/pdf fileblob: bm90IGFjdHVhbGx5IGEgcGRm... inlines: - filename: mypicture.jpg mimetype: image/jpeg url: https://myserver.com/mypicture.jpg - to: - Jane Jones sender: John Smith subject: 'My Test Email #2' html_body:

Test

text_body: Test attachments: - filename: report.pdf mimetype: application/pdf fileblob: bm90IGFjdHVhbGx5IGEgcGRm... inlines: - filename: mypicture.jpg mimetype: image/jpeg url: https://myserver.com/mypicture.jpg schedule: 2026-01-01 12:00:00 +1300 properties: emails: type: array description: An array of email objects to schedule items: type: object required: - sender - to - subject properties: sender: type: string description: The name and email address to send from, in the format `Name ` to: type: array description: An array of names and email addresses (up to 100) to send to, in the format `Name ` items: type: string cc: type: array description: An array of names and email addresses (up to 100) to CC, in the format `Name ` items: type: string bcc: type: array description: An array of names and email addresses (up to 100) to BCC, in the format `Name ` items: type: string subject: type: string description: The subject of the email to be sent html_body: type: string description: 'A HTML encoded email body. Either html_body or text_body is required if template_id is not passed.

Warning:
  • To correctly track clicking of URLs you must:
    • Enable click tracking for the API key
    • Insert a full anchor HTML element (not just the URL)
    • Include "https://" at the start of the HREF property
' text_body: type: string description: A plain text email body. Either html_body or text_body is required if template_id is not passed custom_headers: type: array description: An array of custom header objects to be applied to the email. For example, a `Reply-To` email can be specified here, with header `Reply-To` and value `name@example.com`. For sending purposes the following headers are not allowed `Content-Type`, `Content-Transfer-Encoding` and `MIME-Version`. items: properties: header: type: string description: Custom header to add to the email value: type: string description: Custom header value to set required: - header - value type: object attachments: type: array description: An array of attachment objects to be attached to the email items: properties: filename: type: string description: The filename to use for this binary data fileblob: type: string description: The Base64 encoded binary data of the file. Required if no url is specified. mimetype: type: string description: The mimetype of the binary data url: type: string description: A URL pointing to the attachment data. The data is directly retrieved by our system, and cached for fast re-use for 24 hours. Required if no fileblob is specified required: - filename type: object inlines: type: array description: An array of images to be inlined into the email. Use an image in content as `` items: properties: filename: type: string description: The filename to use for this binary data fileblob: type: string description: The Base64 encoded binary data of the file. Required if no url is specified. mimetype: type: string description: The mimetype of the binary data url: type: string description: A URL pointing to the attachment data. The data is directly retrieved by our system, and cached for fast re-use for 24 hours. Required if no fileblob is specified required: - filename type: object template_id: type: string description: The ID of the template you wish to use template_data: type: string description: 'When a template_id is provided, include the pass-through values in the format `{"variable1": "value1", "variable2": "value2"}`' format: json schedule: type: string description: A timestamp that when passed allows you to schedule an email for sending. Must be in the future and within the next 3 days.
The api response will include a `schedule_id` property which can then be used alongside webhooks (An `X-Smtp2go-Schedule-Id` header is added to the sent email corresponds to this id). A total of 50,000 emails can be queued at any one time. responses: '200': description: An array of `email_id/schedule_id` values coinciding with the same order as the request payload. content: application/json: examples: Example: value: request_id: aa253464-0bd0-467a-b24b-6159dcd7be60 data: - email_id: 123456-1234-12 - schedule_id: 188262b6-f6cc-4c98-bbe6-84c39d1c0ef4 schema: type: object properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: array description: An array of `email_id/schedule_id` information in the same order as the payload. items: type: object properties: email_id: type: string description: The email_id of the email schedule_id: type: string description: The schedule_id of the email (if `schedule` was passed, used to search/remove scheduled emails) example: - email_id: 123456-1234-12 - schedule_id: 188262b6-f6cc-4c98-bbe6-84c39d1c0ef4 - schedule_id: 789db207-5aba-4895-801b-4ebf1843721e '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /email/mime: post: tags: - EMAILS summary: Send a MIME email description: Send an email by supplying a pre-encoded MIME string operationId: send-mime-email requestBody: content: application/json: example: mime_email: VG86IHRlc3RAZXhhbXBsZS5jb20KU3ViamVjdDogdGVzdApGcm9tOiBvdGhlckBleGFtcGxlLmNvbQoKdGVzdCBlbWFpbA== schema: type: object required: - mime_email properties: mime_email: type: string description: A valid MIME-encoded string that has been Base64 encoded schedule: type: string description: A timestamp that when passed allows you to schedule an email for sending. Must be in the future and within the next 3 days.
The api response will include a `schedule_id` property which can then be used alongside webhooks (An `X-Smtp2go-Schedule-Id` header is added to the sent email corresponds to this id). A total of 50,000 emails can be queued at any one time. fastaccept: type: boolean default: false description: If true, the email will be accepted immediately and sent in a background process. Use webhooks if you need information about final delivery to the recipient. This will soon become the default method of sending via API. responses: '200': description: Mime email sent content: application/json: examples: Example: value: request_id: aa253464-0bd0-467a-b24b-6159dcd7be60 data: failed: 0 failures: [] succeeded: 1 schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - email_id properties: failed: type: integer example: 0 default: 0 description: 'The number of emails that failed to send.

Note: An email with multiple recipients is classed as 1 email. Only returned if ''fastaccept'' is false.' failures: type: array description: An array containing any error messages encountered during sending. Only returned if 'fastaccept' is false. succeeded: type: integer example: 1 default: 0 description: 'The number of emails that were successfully sent.

Note: An email with multiple recipients is classed as 1 email. Only returned if ''fastaccept'' is false.' email_id: type: string example: 1u0SwL-B9zBpi9ffUq-JAB2 description: The email ID generated if successfully sent schedule_id: type: string example: caa928f4-24ec-4a68-bcfc-1fd2596342f0 description: The schedule ID generated if queued for sending. Only returned if 'schedule' is passed. '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /email/scheduled/remove: post: tags: - EMAILS summary: Remove a scheduled email description: Removes a scheduled email by ID operationId: remove-scheduled-email requestBody: content: application/json: schema: type: object required: - schedule_id example: schedule_id: fe7d54d0-8f06-40c5-a675-d72f183e8ebf properties: schedule_id: type: string description: The schedule_id returned from /v3/email/scheduled/search or the following endpoints [/v3/email/send, /v3/email/mime] (when schedule is passed) responses: '200': description: Scheduled email removed '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /email/scheduled/search: post: tags: - EMAILS summary: Search schedule emails description: Allows searching of scheduled emails operationId: search-scheduled-emails requestBody: content: application/json: schema: type: object required: [] example: schedule_id: 8fb29ea3-286d-493e-83c5-401f76859bb1 search: recipient@example.com limit: 100 page: 2 properties: schedule_id: type: string description: The schedule_id returned from the `/email/send` endpoint search_subject: type: string description: The subject of the email you want to search for search_recipient: type: string description: The recipient of the email you want to search for search_sender: type: string description: The sender of the email you want to search for limit: type: integer description: If passed will limit the search results default: 1000 page: type: integer description: If passed will return the results of the specific page responses: '200': description: Scheduled email results content: application/json: examples: Example: value: request_id: c2dca1b4-89b9-4dc7-bd82-a86b83b29d84 data: - schedule_id: 4d3b03a7-8663-4592-899a-b479ba6fcba9 schedule: '2025-06-30T23:11:56Z' sender: test@example.com subject: test 1 recipients: test@example2.com client_ip: 127.0.0.1 - schedule_id: 188262b6-f6cc-4c98-bbe6-84c39d1c0ef4 schedule: '2025-06-30T23:11:56Z' sender: test@example.com subject: test 2 recipients: test@example2.com client_ip: 127.0.0.1 - schedule_id: 789db207-5aba-4895-801b-4ebf1843721e schedule: '2025-06-30T23:11:56Z' sender: test@example.com subject: test 3 recipients: test@example2.com client_ip: 127.0.0.1 schema: type: array items: type: object description: An array of emails scheduled to be sent properties: schedule_id: type: string description: A unique identifier for the scheduled_email schedule: type: string description: A timestamp indicating when the email was scheduled. A total of 50,000 emails can be queued at any one time. sender: type: string description: The sender of the scheduled email subject: type: string description: The subject of the email recipients: type: string description: The recipients the email is scheduled to send to client_ip: type: string description: The IP address that scheduled the email. '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /email/send: post: tags: - EMAILS summary: Send a standard email description: Send an email by passing a JSON email object operationId: send-standard-email requestBody: content: application/json: schema: type: object required: - sender - to example: to: - Jane Jones sender: John Smith subject: My Test Email html_body:

Test

text_body: Test attachments: - filename: report.pdf mimetype: application/pdf fileblob: bm90IGFjdHVhbGx5IGEgcGRm... inlines: - filename: mypicture.jpg mimetype: image/jpeg url: https://myserver.com/mypicture.jpg schedule: 2025-09-10 13:15:00 +1200 properties: sender: type: string description: The name and email address to send from, in the format `Name ` to: type: array description: An array of names and email addresses (up to 100) to send to, in the format `Name ` items: type: string cc: type: array description: An array of names and email addresses (up to 100) to CC, in the format `Name ` items: type: string bcc: type: array description: An array of names and email addresses (up to 100) to BCC, in the format `Name ` items: type: string subject: type: string description: The subject of the email to be sent, Note: if template_id if passed this field is ignored.

If you would like to set a custom subject in the template_data, use a variable ({{custom_subject}} for instance) as the value of the templates subject and then set its value in template_data respectively. html_body: type: string description: 'A HTML encoded email body. Either html_body or text_body is required if template_id is not passed. If template_id is passed this field is ignored.

Warning:
  • To correctly track clicking of URLs you must:
    • Enable click tracking for the API key
    • Insert a full anchor HTML element (not just the URL)
    • Include "https://" at the start of the HREF property
' text_body: type: string description: A plain text email body. Either html_body or text_body is required if template_id is not passed. If template_id is passed this field is ignored. custom_headers: type: array description: An array of custom header objects to be applied to the email. For example, a `Reply-To` email can be specified here, with header `Reply-To` and value `name@example.com`. For sending purposes the following headers are not allowed `Content-Type`, `Content-Transfer-Encoding` and `MIME-Version`. items: properties: header: type: string description: Custom header to add to the email value: type: string description: Custom header value to set required: - header - value type: object attachments: type: array description: An array of attachment objects to be attached to the email items: properties: filename: type: string description: The filename to use for this binary data fileblob: type: string description: The Base64 encoded binary data of the file. Required if no url is specified. mimetype: type: string description: The mimetype of the binary data url: type: string description: A URL pointing to the attachment data. The data is directly retrieved by our system, and cached for fast re-use for 24 hours. Required if no fileblob is specified required: - filename type: object inlines: type: array description: An array of images to be inlined into the email. Use an image in content as `` items: properties: filename: type: string description: The filename to use for this binary data fileblob: type: string description: The Base64 encoded binary data of the file. Required if no url is specified. mimetype: type: string description: The mimetype of the binary data url: type: string description: A URL pointing to the attachment data. The data is directly retrieved by our system, and cached for fast re-use for 24 hours. Required if no fileblob is specified required: - filename type: object template_id: type: string description: The ID of the template you wish to use template_data: type: string description: 'When a template_id is provided, include the pass-through values in the format `{"variable1": "value1", "variable2": "value2"}`' format: json schedule: type: string description: A timestamp that when passed allows you to schedule an email for sending. Must be in the future and within the next 3 days.
The api response will include a `schedule_id` property which can then be used alongside webhooks (An `X-Smtp2go-Schedule-Id` header is added to the sent email corresponds to this id). A total of 50,000 emails can be queued at any one time. fastaccept: type: boolean default: false description: If true, the email will be accepted immediately and sent in a background process. Use webhooks if you need information about final delivery to the recipient. This will soon become the default method of sending via API. responses: '200': description: Email sent content: application/json: examples: Example: value: request_id: aa253464-0bd0-467a-b24b-6159dcd7be60 data: succeeded: 1 failed: 0 failures: [] email_id: 1u0SwL-B9zBpi9ffUq-JAB2 schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - email_id properties: failed: type: integer example: 0 default: 0 description: 'The number of emails that failed to send.

Note: An email with multiple recipients is classed as 1 email. Only returned if ''fastaccept'' is false.' failures: type: array description: An array containing any error messages encountered during sending. Only returned if 'fastaccept' is false. succeeded: type: integer example: 1 default: 0 description: 'The number of emails that were successfully sent.

Note: An email with multiple recipients is classed as 1 email. Only returned if ''fastaccept'' is false.' email_id: type: string example: 1u0SwL-B9zBpi9ffUq-JAB2 description: The email ID generated if successfully sent schedule_id: type: string example: caa928f4-24ec-4a68-bcfc-1fd2596342f0 description: The schedule ID generated if queued for sending. Only returned if 'schedule' is passed. '400': description: '400' content: application/json: examples: Example: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string example: You do not have permission to access this API endpoint deprecated: false /ip_allow_list: post: summary: Enable IP Allow List operationId: ip-allowlist description: Enables/Disables an IP allow list. tags: - IP Allow List requestBody: content: application/json: schema: type: object properties: api_key: example: api-700B************************8F4E type: string enabled: type: boolean example: true type: type: string example: api description: Either 'smtp' or 'api' depending on which IP allow list you want to operate on default: smtp required: - api_key responses: '200': description: Success – IP allow list status returned content: application/json: schema: type: object properties: request_id: type: string example: c0af7a72-46a8-11ee-9482-6754933d50b9 description: Unique ID for this request data: properties: enabled: type: boolean example: true '400': description: Bad Request Response content: application/json: schema: title: 400 Bad Request type: object description: The standard payload for a 400 Bad Request response x-examples: Example: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 properties: data: type: object properties: error_code: type: string description: An API error code string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string description: An error description example: You do not have permission to access this API endpoint request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 description: Unique ID for this request examples: Example: value: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 '429': description: Rate Limit Exceeded /ip_allow_list/add: post: summary: Add IP Allow List operationId: add-ip-allowlist description: Adds an IP address to an allow list. tags: - IP Allow List requestBody: content: application/json: schema: type: object properties: api_key: example: api-700B************************8F4E type: string description: type: string example: servername ip_address: type: string example: 123.45.67.89 type: type: string example: api description: Either 'smtp' or 'api' depending on which IP allow list you want to operate on default: smtp required: - api_key responses: '200': description: Success – IP allow list added content: application/json: schema: type: object properties: request_id: type: string example: c0af7a72-46a8-11ee-9482-6754933d50b9 description: Unique ID for this request data: properties: description: type: string example: servername ip_address: type: string example: 123.45.67.89 '400': description: Bad Request Response content: application/json: schema: title: 400 Bad Request type: object description: The standard payload for a 400 Bad Request response x-examples: Example: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 properties: data: type: object properties: error_code: type: string description: An API error code string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string description: An error description example: You do not have permission to access this API endpoint request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 description: Unique ID for this request examples: Example: value: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 '429': description: Rate Limit Exceeded /ip_allow_list/edit: post: summary: Edit IP Allow List operationId: edit-ip-allowlist description: Edits an existing IP allow list. tags: - IP Allow List requestBody: content: application/json: schema: type: object properties: api_key: example: api-700B************************8F4E type: string description: type: string example: servername ip_address: type: string example: 123.45.67.89 new_ip_address: type: string example: 123.45.67.88 type: type: string example: api description: Either 'smtp' or 'api' depending on which IP allow list you want to operate on default: smtp required: - api_key responses: '200': description: Success – IP allow list edited content: application/json: schema: type: object properties: request_id: type: string example: c0af7a72-46a8-11ee-9482-6754933d50b9 description: Unique ID for this request data: properties: description: type: string example: servername ip_address: type: string example: 123.45.67.88 '400': description: Bad Request Response content: application/json: schema: title: 400 Bad Request type: object description: The standard payload for a 400 Bad Request response x-examples: Example: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 properties: data: type: object properties: error_code: type: string description: An API error code string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string description: An error description example: You do not have permission to access this API endpoint request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 description: Unique ID for this request examples: Example: value: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 '429': description: Rate Limit Exceeded /ip_allow_list/remove: post: summary: Remove IP Allow List operationId: remove-ip-allowlist description: Removes an IP address from an allow list. tags: - IP Allow List requestBody: content: application/json: schema: type: object properties: api_key: example: api-700B************************8F4E type: string ip_address: type: string example: 123.45.67.89 type: type: string example: api description: Either 'smtp' or 'api' depending on which IP allow list you want to operate on default: smtp required: - api_key responses: '200': description: Success – IP allow list removed content: application/json: schema: type: object properties: request_id: type: string example: c0af7a72-46a8-11ee-9482-6754933d50b9 description: Unique ID for this request data: properties: description: type: string example: servername ip_address: type: string example: 123.45.67.89 '400': description: Bad Request Response content: application/json: schema: title: 400 Bad Request type: object description: The standard payload for a 400 Bad Request response x-examples: Example: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 properties: data: type: object properties: error_code: type: string description: An API error code string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string description: An error description example: You do not have permission to access this API endpoint request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 description: Unique ID for this request examples: Example: value: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 '429': description: Rate Limit Exceeded /ip_allow_list/view: post: summary: View IP Allow List operationId: view-ip-allowlist description: Retrieves a list of IP Addresses on the allow list along with the list's enabled status. tags: - IP Allow List requestBody: content: application/json: schema: type: object properties: api_key: example: api-700B************************8F4E type: string type: type: string example: api description: Either 'smtp' or 'api' depending on which IP allow list you want to operate on default: smtp required: - api_key responses: '200': description: Success – configured webhooks returned content: application/json: schema: type: object properties: request_id: type: string example: c0af7a72-46a8-11ee-9482-6754933d50b9 description: Unique ID for this request data: properties: enabled: type: boolean example: true ip_addresses: type: array description: list of IP addresses items: type: object description: Represents an IP address object properties: ip_address: type: string example: 123.45.67.89 description: type: string example: servername '400': description: Bad Request Response content: application/json: schema: title: 400 Bad Request type: object description: The standard payload for a 400 Bad Request response x-examples: Example: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 properties: data: type: object properties: error_code: type: string description: An API error code string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: type: string description: An error description example: You do not have permission to access this API endpoint request_id: type: string example: 40cbb6f2-935f-11e7-b5be-480fcf01a6f2 description: Unique ID for this request examples: Example: value: data: error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED error: You do not have permission to access this API endpoint request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 '429': description: Rate Limit Exceeded /ip_auth/edit: patch: tags: - IP AUTH summary: Patch an IP Auth description: Patch an existing IP Auth ignoring missing properties operationId: patch-ip-auth requestBody: content: application/json: schema: type: object required: - ip_address properties: ip_address: type: string description: A valid IP address of your existing IP Auth that you wish to edit example: 127.0.0.1 description: type: string description: A comment or description of the IP Auth example: test smtp user custom_ratelimit: type: boolean description: If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. custom_ratelimit_value: type: integer description: If passed, defines the limit of emails this user can send in the period specified in custom_ratelimit_period.

Note: Only stores this value if custom_ratelimit is true. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' ip_pool: type: integer description: If passed, any emails sent with this IP Auth will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: null feedback_html: type: string description: The HTML content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
example: test_html default: null feedback_text: type: string description: The text content to insert into the custom feedback email body via the unsubscribe footer.

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
example: test_text default: null open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this IP Auth user. default: null click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this IP Auth. default: null archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this IP Auth. default: null audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this IP Auth. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: null status: type: string description: The initial status of the IP Auth user, one of ['allowed', 'blocked', 'sandbox']. default: null subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully patched IP Auth content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - ip_address: 127.0.0.1 description: test ip auth feedback_enabled: true feedback_html: test_html feedback_text: test_text ippool: 1234 bounce_notifications: from status: allowed schema: type: object required: - data - request_id properties: data: type: array description: An array of IP Auth results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object properties: ip_address: type: string example: ip_address description: The IP address of the IP Auth description: type: string description: A comment or description of the IP Auth. custom_rate_limit: type: boolean example: true default: false description: If enabled will use the values of custom_ratelimit_value and custom_ratelimit_period for rate limiting. custom_ratelimit_value: type: integer example: 123 description: If passed, defines the limit of emails this IP Auth can send in the period specified in custom_ratelimit_period. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' default_ratelimit_value: type: string example: 123 description: The default limit of emails this IP Auth can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this IP Auth will be limited to the number of emails specified in default_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

System Variables (Only available here):
  • Unsubscribe URL = %%UNSUBSCRIBE%%
  • Email address = %%EMAIL%%
' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this IP Auth. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this IP Auth. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this IP Auth. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this IP Auth. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the IP Auth, one of ['allowed', 'blocked', 'sandbox']. default: allowed request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /ip_auth/remove: post: tags: - IP AUTH summary: Remove an IP Auth entry description: Remove an IP Auth entry from your account operationId: remove-ip-auth requestBody: content: application/json: schema: type: object required: - ip_address properties: ip_address: type: string description: A valid ip address of an existing IP Auth entry that you wish to remove subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: IP Auth removed '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /ip_auth/view: post: tags: - IP AUTH summary: View IP Auth description: Returns a list of all IP Auth entries that are managed by this account, or details of a specific IP Auth, when you include the [ip_address] in your request. If no entries are available, this will return an empty list. operationId: view-ip-auth requestBody: content: application/json: schema: type: object properties: ip_address: type: string description: If passed, a valid ip address of an existing IP Auth entry that you wish to view subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of IP Auth entries content: application/json: examples: Result: value: request_id: ae4a8446-63c6-11ed-95d3-f23c92160e3c data: results: - ip_address: 127.0.0.1 sending_allowed: true custom_ratelimit: false custom_ratelimit_value: null custom_ratelimit_period: 0:00:00 description: '' feedback_enabled: false feedback_domain: default feedback_html: '' feedback_text: '' archive_enabled: false open_tracking_enabled: false audit_email: null bounce_notifications: from status: allowed default_ratelimit_value: 0 default_ratelimit_period: unlimited schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - results properties: results: type: array items: type: object required: - ip_addres - sending_allowed - custom_ratelimit properties: comments: type: string example: Comment explaining how amazing this IP Auth entry is ip_addres: type: string example: 127.0.0.1 email_password: type: string example: H#8dkK2djs deprecated: true sending_allowed: type: boolean example: true default: true custom_ratelimit: type: boolean example: true default: true custom_ratelimit_value: type: integer example: 100 default: 0 nullable: true custom_ratelimit_period: type: string example: 1 day default_ratelimit_value: type: string example: 123 description: The default limit of emails this IP Auth user can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this IP Auth will be limited to the number of emails specified in default_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 description: type: string feedback_enabled: type: boolean example: true feedback_domain: type: string example: default feedback_html: type: string feedback_text: type: string archive_enabled: type: boolean example: true open_tracking_enabled: type: boolean example: true audit_email: type: string nullable: true bounce_notifications: type: string example: from '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /single_sender_emails/add: post: tags: - SINGLE SENDER EMAILS summary: Add a single sender email description: Use the API to add a single sender email address to your account, to use from which to send mail. If the email address has previously been added and not yet verified, this action will simply resend the verification email. operationId: add-a-single-sender-email requestBody: content: application/json: schema: type: object required: - email_address properties: email_address: type: string description: The email address that you wish to send emails from default: send@example.com message: type: string description: (Optional) If provided, will add a text only message to the email. subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Single sender email added content: application/json: examples: Result: value: just_returns_this: ok schema: type: object required: - request_id properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /single_sender_emails/remove: post: tags: - SINGLE SENDER EMAILS summary: Remove a single sender email description: Remove a single sender email address from your account. Include the address to remove as the email_address parameter. operationId: remove-a-single-sender-email requestBody: content: application/json: schema: type: object required: - email_address properties: email_address: type: string description: The email address to remove from your Single Sender Emails default: send@example.com subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Single sender email removed content: application/json: examples: Result: value: just_returns_this: OK schema: type: object required: - request_id properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: string '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /single_sender_emails/view: post: tags: - SINGLE SENDER EMAILS summary: View single sender emails description: Returns a list of single sender email addresses on your account, along with their verification status. If you include a email_address, the response will only include items matching this search. operationId: view-all-single-sender-emails requestBody: content: application/json: schema: type: object properties: email_address: type: string description: (Optional) If provided, only return email addresses that match value subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of single sender emails content: application/json: examples: Result: value: data: request_id: e023461c-8c86-11e9-b984-408d5cce2644 senders: - email_address: test@test.com verified: true schema: type: object properties: data: type: object required: - request_id - senders properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 senders: type: array items: type: object required: - email_address - verified properties: email_address: type: string example: test@test.com verified: type: boolean example: true default: true '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /sms/send: post: tags: - SMS summary: Send SMS description: Send an SMS message to one or more numbers, up to a maximum of 100 numbers. operationId: send-sms requestBody: content: application/json: schema: type: object required: - destination - content properties: destination: type: array description: 'An array of SMS numbers to send the message to (Maximum: 100 numbers). Numbers should include the country code of the recipient, and can optionally start with a plus symbol (+).' items: type: string example: '+12025550959' sender: type: string description: The message will be sent from this number (must be in e.164 format). Leave empty to use the default sender number. If the source and destination are located in different countries, a shared number in the recipient's country will be used for sending. content: type: string description: The content of the SMS. If more than 160 characters, will be sent as multiple units. responses: '200': description: SMS Sent content: application/json: examples: Result: value: request_id: 13ab6f3a-ddea-11eb-b4ce-1002b51e60a4 data: statuses: queued: 1 total_sent: 1 schema: type: object required: - request_id - data properties: data: type: object required: - statuses - total_sent properties: statuses: type: object required: - queued properties: queued: type: integer example: 1 default: 0 total_sent: type: integer example: 1 default: 0 messages: type: array description: An array of objects containing the object of each message sent items: type: object required: - destination - message_id - status properties: destination: type: string example: '+12025550959' message_id: type: string example: d6b0e06d-f031-4485-8e92-8141816b3a22 status: type: string enum: - processing - enroute - queued - submitted - processed - delivered - held - expired - cancelled - failed - rejected example: queued example: - destination: '+12025550959' message_id: d6b0e06d-f031-4485-8e92-8141816b3a22 status: queued request_id: type: string example: 13ab6f3a-ddea-11eb-b4ce-1002b51e60a4 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /sms/summary: post: tags: - SMS summary: SMS Summary description: Retrieve a summary of SMS messages within a certain time range. operationId: sms-summary requestBody: content: application/json: schema: type: object properties: start_date: type: string description: ISO-8601 formatted datetime which defaults to current date at midnight. The range will be inclusive of start_date and exclusive of end_date. Timezone is UTC. format: date end_date: type: string description: ISO-8601 formatted datetime which defaults to now. Timezone is UTC. format: date subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Summary of SMS activity content: application/json: examples: Result: value: data: total_messages: 123 total_units: 156 total_cost: 10.456 request_id: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 schema: type: object required: - data - request_id properties: data: type: object properties: total_messages: type: integer example: 123 description: The total number of SMS messages sent within the passed time range total_units: type: integer example: 156 description: The total number of SMS units used to send the messages within the passed time range total_cost: type: number example: 10.456 description: The total cost of the SMS messages within the passed time range request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /sms/view-received: post: tags: - SMS summary: View received SMS description: View received SMS messages. operationId: view-received-sms requestBody: content: application/json: schema: type: object properties: start_date: type: string description: ISO-8601 formatted datetime which defaults to 7 days ago at midnight. The range will be inclusive of start_date and exclusive of end_date. Timezone is UTC. format: date end_date: type: string description: ISO-8601 formatted datetime which defaults to now. Timezone is UTC. format: date unix_start: type: integer description: 'Deprecated: this is a legacy method of selecting the start of the search period as a unix timestamp. This can be left empty to use the start_date.' unix_end: type: integer description: 'Deprecated: this is a legacy method of selecting the end of the search period as a unix timestamp. This can be left empty to use the end_date.' username: type: string description: If passed will filter the results based on the username information on the message subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: SMS Messages content: application/json: examples: Result: value: data: request_id: 99b91538-53e4-4e97-8700-4284dcba148d messages: - source_address: 15185550120 destination_address: 15185550141 timestamp: '2022-09-30T02:02:41.000Z' content: Example content message_id: 4c1d0952-1c91-48ab-9a72-5221281c0c95 username: api-12345678 schema: type: object properties: data: type: object required: - messages properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 messages: type: array items: type: object required: - source_address - destination_address - timestamp - content - message_id - username properties: source_address: type: string example: 15185550120 destination_address: type: string example: 15185550141 timestamp: type: string example: '2022-09-30T02:02:41Z' content: type: string example: Example content message_id: type: string example: 2434321b-566d-40cf-a16b-34570931c205 username: type: string example: api-12345678 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /sms/view-sent: post: tags: - SMS summary: View sent SMS description: View sent SMS messages. operationId: view-sent-sms requestBody: content: application/json: schema: type: object properties: start_date: type: string description: ISO-8601 formatted datetime which defaults to 7 days ago at midnight. The range will be inclusive of start_date and exclusive of end_date. Timezone is UTC. format: date end_date: type: string description: ISO-8601 formatted datetime which defaults to now. Timezone is UTC. format: date username: type: string description: If passed will filter the results based on the username information on the message subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: SMS Messages content: application/json: examples: Result: value: data: request_id: 99b91538-53e4-4e97-8700-4284dcba148d messages: - id: 11170632-25c9-4fbd-85b3-7491fa506d74 timestamp: '2025-06-08T19:05:25.830Z' username: username sender: shared sender_email: test@example.com destination_address: '+123456789' destination_address_country: US format: SMS status: Message discarded content: Example content units: 1 schema: type: object properties: data: type: object required: - messages properties: request_id: type: string example: e023461c-8c86-11e9-b984-408d5cce2644 messages: type: array items: type: object properties: id: type: string example: a9d6d238-900c-4b9a-9e42-2d55c48785ab description: A unique ID associated with the message timestamp: type: string example: '2025-06-08T19:05:25.830Z' description: A timestamp indicating when the message was sent username: type: string example: username description: The username used to send the message sender: type: string example: shared descriptions: The sender used to send the message sender_email: type: string example: test@example.com description: If sent via email this is the sender email destination_address: type: string example: '+123456789' description: The number the message was sent to destination_address_county: type: string example: US description: The country the destination address resides in format: type: string example: SMS description: The format of the sent message status: type: string example: Message sent description: The status of the sent message content: type: string example: test message description: The content of the sent message units: type: integer example: The number of units used to send the mssage '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /stats/email_bounces: post: tags: - STATISTICS summary: Email bounces description: Retrieve a summary of bounces and rejects, for the last 30 days. operationId: email-bounces requestBody: content: application/json: schema: type: object required: [] properties: username: type: string description: Allows statistics to be returned for a specific user. responses: '200': description: Bounce report content: application/json: examples: Result: value: request_id: ee9b9484-63eb-11ed-8da7-f23c9216ce11 data: emails: 1 rejects: 0 softbounces: 0 hardbounces: 0 bounce_percent: '0.00' schema: type: object required: - request_id - data properties: request_id: type: string example: 2917fc07-d685-4fea-b49a-14087058461f data: type: object required: - emails - hardbounces - bounce_percent - softbounces - rejects properties: emails: type: integer example: 159 default: 0 hardbounces: type: integer example: 0 default: 0 bounce_percent: type: string example: '0.00' softbounces: type: integer example: 0 default: 0 rejects: type: integer example: 0 default: 0 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /stats/email_cycle: post: tags: - STATISTICS summary: Email cycle description: Retrieve a summary of your Account activity, including the start and end date of your monthly plan, the number of emails sent this cycle, the number of emails remaining and the number of emails in your monthly allowance. operationId: email-cycle responses: '200': description: Summary of Account content: application/json: examples: Result: value: request_id: 4b84c952-9bca-432f-a68e-585e4c7a969c data: cycle_start: '2022-11-01 00:00:00+00:00' cycle_end: '2022-11-30 00:00:00+00:00' cycle_used: 1 cycle_remaining: 9999 cycle_max: 10000 schema: type: object required: - request_id - data properties: request_id: type: string example: 4b84c952-9bca-432f-a68e-585e4c7a969c data: type: object required: - cycle_end - cycle_used - cycle_start - cycle_max - cycle_remaining properties: cycle_end: type: string example: '2016-08-04 01:49:15.863998' cycle_used: type: integer example: 0 default: 0 cycle_start: type: string example: '2016-08-01 01:49:15.863998' cycle_max: type: integer example: 1000 default: 0 cycle_remaining: type: integer example: 1000 default: 0 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /stats/email_history: post: tags: - STATISTICS summary: Email history description: Retrieve a summary of activity from a specified date range (defaults to last 30 days), per sender email address, SMTP username, domain or subaccount. operationId: email-history requestBody: content: application/json: schema: type: object properties: group_by: type: string description: One of [email_address, username, domain, subaccount] - controls the grouping of results. Defaults to email_address start_date: type: string description: ISO-8601 formatted datetime which defaults to 30 days prior to the current date at midnight. Timezone is UTC end_date: type: string description: ISO-8601 formatted datetime which defaults the current time. Timezone is UTC subaccounts: type: array description: Pass an optional list of subaccount ids to fetch a summary of only particular subaccounts, ID's can be found by querying /subaccounts/search responses: '200': description: Summary of Account content: application/json: examples: Result: value: request_id: f3898083-f5d5-4512-86bd-e02bd1685840 data: count: 1 history: - used: 1 bytecount: 1022 avgsize: 1022 email_address: test3@example.com lastip: 82.1.149.48 bounces: 0 clicks: 0 opens: 0 rejects: 0 spam: 0 unsubscribes: 0 schema: type: object required: - request_id - data properties: request_id: type: string example: f3898083-f5d5-4512-86bd-e02bd1685840 data: type: object required: - count - history properties: count: type: integer example: 159 default: 0 bounce_percent_total: type: number example: 1.24 default: 0 description: The total percentage of emails that bounced. open_percent_total: type: number example: 1.24 default: 0 description: The total percentage of emails that were opened. reject_percent_total: type: number example: 1.24 default: 0 description: The total percentage of emails that were rejected. spam_percent_total: type: number example: 1.24 default: 0 description: The total percentage of emails that were marked as spam. unsubscribe_percent_total: type: number example: 1.24 default: 0 description: The total percentage of emails that were unsubscribed from. history: type: array items: type: object required: - lastip - used - bytecount - avgsize properties: subaccount: type: string example: My Subaccount Name description: Only returned if group_by is set to subaccount domain: type: string example: test.com description: Only returned if group_by is set to domain domain_verified: type: boolean example: true description: Only returned if group_by is set to domain lastip: type: string example: 55.67.22.12 used: type: integer example: 123 default: 0 email_address: type: string example: test3@example.com description: Only returned if group_by is set to email_address username: type: string example: my_user description: Only returned if group_by is set to username description: type: string description: A comment or description of the user, Only returned if group_by is set to username bytecount: type: integer example: 148113 default: 0 avgsize: type: number example: 1204.1707317073171 default: 0 bounces: type: integer example: 123 default: 0 clicks: type: integer example: 123 default: 0 opens: type: integer example: 123 default: 0 rejects: type: integer example: 123 default: 0 spam: type: integer example: 123 default: 0 unsubscribes: type: integer example: 123 default: 0 bounce_percent: type: number example: 1.24 default: 0 description: The percentage of emails that bounced. open_percent: type: number example: 1.24 default: 0 description: The percentage of emails that were opened. reject_percent: type: number example: 1.24 default: 0 description: The percentage of emails that were rejected. spam_percent: type: number example: 1.24 default: 0 description: The percentage of emails that were marked as spam. unsubscribe_percent: type: number example: 1.24 default: 0 description: The percentage of emails that recipients unsubscribed. '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /stats/email_spam: post: tags: - STATISTICS summary: Email spam description: Retrieve a summary of spam complaints and rejects, for the last 30 days. operationId: email-spam requestBody: content: application/json: schema: type: object required: [] properties: username: type: string description: Allows statistics to be returned for a specific user. responses: '200': description: Spam report content: application/json: examples: Result: value: request_id: 0757ba83-9dfc-4584-bb0c-baa06a28a377 data: emails: 1 rejects: 0 spams: 0 spam_percent: '0.00' schema: type: object required: - request_id - data properties: request_id: type: string example: 0757ba83-9dfc-4584-bb0c-baa06a28a377 data: type: object required: - spam_percent - emails - spams - rejects properties: spam_percent: type: string example: '0.00' emails: type: integer example: 159 default: 0 spams: type: integer example: 0 default: 0 rejects: type: integer example: 0 default: 0 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /stats/email_summary: post: tags: - STATISTICS summary: Email summary description: Retrieve a combination of the email_bounces, email_cycle, email_spam, and email_unsubs calls in one report. Note this call may take longer to complete. operationId: email-summary requestBody: content: application/json: schema: type: object properties: username: type: string description: Allows statistics to be returned for a specific user responses: '200': description: Account Statistics content: application/json: examples: Result: value: request_id: 72f48187-64d9-4a2f-ba9c-527a2a7911f7 data: spam_emails: 0 cycle_start: '2022-11-01 00:00:00+00:00' cycle_end: '2022-11-30 00:00:00+00:00' cycle_used: 1 cycle_remaining: 9999 cycle_max: 10000 email_count: 1 bounce_rejects: 0 softbounces: 0 hardbounces: 0 bounce_percent: '0.00' spam_rejects: 0 spam_percent: '0.00' unsubscribes: 0 unsubscribe_percent: '0.0' opens: 0 clicks: 0 rejects: 0 schema: type: object required: - request_id - data properties: request_id: type: string example: 72f48187-64d9-4a2f-ba9c-527a2a7911f7 data: type: object required: - cycle_end - spam_rejects - bounce_percent - unsubscribes - bounce_rejects - spam_percent - softbounces - cycle_max - spam_emails - cycle_remaining - cycle_start - unsubscribe_percent - cycle_used - hardbounces - email_count - opens - clicks - rejects properties: cycle_end: type: string example: '2016-08-04 01:49:15.863998' spam_rejects: type: integer example: 1 default: 0 deprecated: true bounce_percent: type: string example: '7.33' unsubscribes: type: integer example: 32 default: 0 bounce_rejects: type: integer example: 11 default: 0 deprecated: true spam_percent: type: string example: '1.33' softbounces: type: integer example: 6 default: 0 cycle_max: type: integer example: 1000 default: 0 spam_emails: type: integer example: 2 default: 0 cycle_remaining: type: integer example: 850 default: 0 cycle_start: type: string example: '2016-08-01 01:49:15.863998' unsubscribe_percent: type: string example: '21.33' cycle_used: type: integer example: 150 default: 0 hardbounces: type: integer example: 5 default: 0 email_count: type: integer example: 150 default: 0 opens: type: integer example: 123 default: 0 clicks: type: integer example: 321 default: 0 rejects: type: integer example: 11 default: 0 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /stats/email_unsubs: post: tags: - STATISTICS summary: Email unsubscribes description: Retrieve a summary of unsubscribes and rejects, for the last 30 days. operationId: email-unsubscribes requestBody: content: application/json: schema: type: object required: [] properties: username: type: string description: Allows statistics to be returned for a specific user. responses: '200': description: Unsubscribe report content: application/json: examples: Result: value: request_id: e6e94157-90c7-496d-abdf-a5fef899ad54 data: emails: 1 rejects: 0 unsubscribes: 0 unsubscribe_percent: '0.00' schema: type: object required: - request_id - data properties: request_id: type: string example: e6e94157-90c7-496d-abdf-a5fef899ad54 data: type: object required: - emails - unsubscribes - rejects - unsubscribe_percent properties: emails: type: integer example: 159 default: 0 unsubscribes: type: integer example: 0 default: 0 rejects: type: integer example: 0 default: 0 unsubscribe_percent: type: string example: '0.00' '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /subaccount/add: post: tags: - SUBACCOUNTS summary: Add a subaccount description: Adds a new subaccount on your master account. Note: This end-point is rate limited to 50 calls per hour. operationId: add-subaccount requestBody: content: application/json: schema: type: object required: - fullname properties: fullname: type: string description: A full name used for the subaccount subaccount_email: type: string description: An optional email address for the first team member in the subaccount. An email invitation will be sent to this address. limit: type: integer description: The number of emails the subaccount is allowed to send per billing cycle.

Valid values:
2000, 5000, 10000, 20000, 30000, 40000, 50000, 60000, 80000, 100000, 250000, 500000, 1000000, 2000000, 3000000, 5000000, 10000000 default: 10000 format: int32 dedicated_ip: type: boolean description: Auto assign a dedicated IP to the subaccount (Only available if limit is greater than 100,000) default: false archiving: type: boolean description: Choose whether the subaccount is allowed to enable archiving. You still need to turn on archiving for individual senders within the subaccount. default: false enforce_2fa: type: boolean description: Enforce team members of this subaccount to use 2FA. default: false enable_sms: type: boolean description: Enable SMS messaging for the subaccount. Additional charges apply. default: false sms_limit: type: integer description: Your subaccount will be able to send up to this monthly limit of SMS messages. Their sending will also be limited by the master account's overall monthly limit. default: 1000 responses: '200': description: Subaccount added content: application/json: examples: Result: value: request_id: 8af53474-63fc-11ed-825f-f23c92160e3c data: name: Test Person id: 34l8oj plan_size: 10000 plan_used: 0 plan_remaining: 10000 state: Active dedicated_ip: false archiving: true enforce_2fa: true sms_enabled: true sms_limit: 1000 schema: type: object required: - request_id - data properties: request_id: type: string example: 0ef3f48a-2cfb-11eb-aee9-408d5cce2644 data: type: object required: - name - id - plan_size - plan_used - plan_remaining - state - dedicated_ip - archiving - enforce_2fa - sms_enabled - sms_limit properties: name: type: string example: Test Person id: type: string example: NDU5OTgw plan_size: type: integer example: 10000 plan_used: type: integer example: 0 plan_remaining: type: integer example: 10000 state: type: string example: Active dedicated_ip: type: boolean example: false archiving: type: boolean example: false enforce_2fa: type: boolean example: false sms_enabled: type: boolean example: false sms_limit: type: integer example: 1000 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /subaccount/close: post: tags: - SUBACCOUNTS summary: Close a subaccount description: Changes the status of an Active subaccount to Closed operationId: close-a-subaccount requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The id of the subaccount you want to close email: type: string description: The email address of the subaccount you want to close responses: '200': description: Subaccount closed content: application/json: examples: Result: value: request_id: d02ce100-2cfd-11eb-ab52-408d5cce2644 data: Successfully closed subaccount test@example.com schema: type: object required: - request_id - data properties: request_id: type: string example: d02ce100-2cfd-11eb-ab52-408d5cce2644 data: type: string example: Successfully closed subaccount test@example.com '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /subaccount/edit: post: tags: - SUBACCOUNTS summary: Update a subaccount description: Changes the details on an existing subaccount operationId: update-a-subaccount requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The id of an existing subaccount fullname: type: string description: If provided, will set to the new full name for the subaccount limit: type: integer description: If provided, will set to the new limit for the subaccount format: int32 dedicated_ip: type: boolean description: If provided, will set to the new dedicated IP address for the subaccount (If limit is greater than 100,000) default: false archiving: type: boolean description: Choose whether the subaccount is allowed to enable archiving. You still need to turn on archiving for individual senders within the subaccount. default: false enforce_2fa: type: boolean description: Enforce team members of this subaccount to use 2FA. default: false enable_sms: type: boolean description: Enable SMS messaging for the subaccount. Additional charges apply. default: false sms_limit: type: integer description: Your subaccount will be able to send up to this monthly limit of SMS messages. Their sending will also be limited by the master account's overall monthly limit. default: 1000 responses: '200': description: Subaccount updated content: application/json: examples: Result: value: request_id: dc1b8a6a-63fc-11ed-b6de-f23c9216bfec data: name: Test Person id: 34l8oj plan_size: 10000 plan_used: 0 plan_remaining: 10000 state: Active dedicated_ip: false archiving: true enforce_2fa: true sms_enabled: true sms_limit: 1000 schema: type: object required: - request_id - data properties: request_id: type: string example: 0ef3f48a-2cfb-11eb-aee9-408d5cce2644 data: type: object required: - name - id - plan_size - plan_used - plan_remaining - state - dedicated_ip - archiving - enforce_2fa - sms_enabled - sms_limit properties: name: type: string example: Test Person id: type: string example: NDU5OTgw plan_size: type: integer example: 10000 plan_used: type: integer example: 0 plan_remaining: type: integer example: 10000 state: type: string example: Active dedicated_ip: type: boolean example: false archiving: type: boolean example: false enforce_2fa: type: boolean example: false sms_enabled: type: boolean example: false sms_limit: type: integer example: 1000 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /subaccount/reopen: post: tags: - SUBACCOUNTS summary: Reopen a closed subaccount description: Changes the status of a Closed subaccount back to Active operationId: reopen-a-closed-subaccount requestBody: content: application/json: schema: type: object required: - id properties: email: type: string description: The email address of the subaccount you want to reopen id: type: string description: The id of the subaccount you want to reopen responses: '200': description: Subaccount reopened content: application/json: examples: Result: value: request_id: d02ce100-2cfd-11eb-ab52-408d5cce2644 data: Successfully reopened subaccount test@example.com schema: type: object required: - request_id - data properties: request_id: type: string example: 0ef3f48a-2cfb-11eb-aee9-408d5cce2644 data: type: object required: - id properties: id: type: string example: NDU5OTgw email: type: string example: test@example.com name: type: string example: Test Person '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /subaccounts/search: post: tags: - SUBACCOUNTS summary: View subaccounts description: Returns any subaccounts that match search criteria operationId: search-subaccounts requestBody: content: application/json: schema: type: object properties: fuzzy_search: type: boolean description: 'Determines if search terms match complete field values and are case sensitive (false) or partial fields and are case insensitive (true). Default: true' default: true search_terms: type: array description: Return subaccounts with one or more of the strings in the following array.

Note: See 'fuzzy_search' for impact on case sensitivity items: type: string states: type: string description: Controls which states you will be searched

Valid values:
all, active, closed, suspended default: all sort_direction: type: string description: Sort direction, sorts either asc or desc by subaccount name default: asc page_size: type: integer description: Number of subaccounts to retrieve per call default: 100 format: int32 continue_token: type: string description: A token provided by a prior call to this endpoint, passing this will cause it to fetch the next page of results responses: '200': description: List of subaccounts content: application/json: examples: Result: value: request_id: 169e0780-63fd-11ed-860d-f23c92160e3c data: continue_token: '' subaccounts: - name: '10000' email: test@gmail.com id: GnlKn5 plan_size: 10000 plan_used: 0 plan_remaining: 10000 state: Active dedicated_ip: false total_count: 1 schema: type: object required: - request_id - data properties: request_id: type: string example: 0ef3f48a-2cfb-11eb-aee9-408d5cce2644 data: type: object required: - continue_token - total_count - subaccounts properties: continue_token: {} total_count: type: integer example: 1 default: 0 subaccounts: type: array items: type: object required: - email - state - plan_size - plan_remaining - plan_used - name properties: email: type: string example: test@gmail.com state: type: string example: Active plan_size: type: integer example: 10000 default: 0 plan_remaining: type: integer example: 10000 default: 0 plan_used: type: integer example: 0 default: 0 name: type: string example: Matt & Juanita '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /suppression/add: post: tags: - SUPPRESSIONS summary: Add a suppression description: Suppresses the specified email address or domain operationId: add-a-suppression requestBody: content: application/json: schema: type: object required: - email_address properties: email_address: type: string description: The email address or domain you would like to suppress from deliveries block_description: type: string description: The description given for suppressing the email or domain from deliveries subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Suppression successful content: application/json: examples: Result: value: request_id: aa253464-0bd0-467a-b24b-6159dcd7be60 data: added: true block_description: '' email_address: temp@example.com schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - block_description - added - email_address properties: block_description: type: string example: No longer a customer. added: type: boolean example: true default: true email_address: type: string example: test@example.com '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /suppression/remove: post: tags: - SUPPRESSIONS summary: Remove a suppression description: Removes the suppression on the specified email address or domain operationId: remove-a-suppression requestBody: content: application/json: schema: type: object required: - email_address - reasons properties: email_address: type: string description: The email address or domain you would like to remove from your suppression list default: test@example.com reasons: type: array description: A list of block types you would like to remove for the given email or domain default: - manual - spam items: type: string subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: Suppression removed content: application/json: examples: Result: value: request_id: be4811ac-63f2-11ed-ab1c-f23c9216bfec data: suppressions: - email_address: temp@test.com reason: manual removed: true - email_address: temp@test.com reason: spam removed: false schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - suppressions properties: suppressions: type: array items: type: object required: - reason - email_address - removed properties: reason: type: string example: manual email_address: type: string example: test@example.com removed: type: boolean example: true default: true '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /suppression/view: post: tags: - SUPPRESSIONS summary: View suppressions description: Returns your suppressed email addresses and domains operationId: view-suppressions requestBody: content: application/json: schema: type: object properties: continue_token: type: string description: If returned from a request this can be passed to continue paging through the result of the results email_address: type: string description: If provided, checks if a specific email address or domain is in the block list end_date: type: string description: ISO-8601 formatted datetime which defaults to 30 days prior to the current date at midnight. Timezone is UTC fuzzy: type: boolean description: Indicates if the search should use fuzzy matching on recipients & reasons reason: type: string description: A reason string to search for reasons: type: array description: An array of reason strings to search for items: type: string recipient: type: string description: A recipient string to search for recipients: type: array description: An array of recipient strings to search for items: type: string sort: type: string description: The direction to sort the results, either asc or desc start_date: type: string description: ISO-8601 formatted datetime which defaults to the current date at midnight. Timezone is UTC suppression_type: type: string description: If passed restricts the search to a single suppression type manual, spam, unsubscribe, bounce or compliance suppression_types: type: array description: If passed restricts the search to multiple suppression types manual, spam, unsubscribe, bounce or compliance items: type: string wildcard: type: string description: If provided, only suppressions with this wildcard string in name, domain, or email address fields, will be returned subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of suppressions content: application/json: examples: Result: value: request_id: 0d782ff6-63f2-11ed-9e11-f23c92160e3c data: continue_token: null results: - block_description: '' complaint: '' email_address: temp@example.com reason: manual subject: null timestamp: '2022-11-14 07:54:45' total_results: 1 schema: type: object required: - request_id - data properties: request_id: type: string example: e61431d0-a532-11e8-a307-f23c91285f72 data: type: object required: - continue_token - results - total_results properties: results: type: array items: type: object required: - complaint - reason - block_description - timestamp - email_address properties: complaint: type: string example: '' reason: type: string example: manual block_description: type: string example: no longer a customer timestamp: type: string example: '2018-08-21 11:10:55.457489+00:00' email_address: type: string example: test@example.com continue_token: type: string nullable: true total_results: type: integer '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /template/add: post: tags: - TEMPLATES summary: Add an email template description: Adds a new email template that you can use to format your emails. operationId: add-an-email-template requestBody: content: application/json: schema: type: object required: - template_name - id - subject - html_body - text_body properties: template_name: type: string description: 'The name of the email template. Min length: 1 Character. Max length: 64 Characters.' id: type: string description: 'The case-sensitive ID of the email template. Min length: 5 Character. Max length: 24 Characters.' subject: type: string description: The subject of the email template. html_body: type: string description: The HTML body of the email template. text_body: type: string description: The Plain Text body of the email template. template_variables: type: object description: 'The variables to use within this email template in the format `{"variable1": "value1", "variable2": "value2"}`' tags: type: array description: The list of Tags to associate to this email template items: type: string responses: '200': description: Template added content: application/json: examples: Result: value: request_id: f00c0856-dde8-11eb-b4ce-1002b51e60a4 data: template_name: Shiny new name id: testid subject: Shiny new Subject html_body: Shiny HTML body. This is a {{ variable }} text_body: Shiny Text body template_variables: variable: strawberries tags: - tagged schema: type: object properties: request_id: type: string example: f00c0856-dde8-11eb-b4ce-1002b51e60a4 data: type: object required: - id - subject - tags properties: id: type: string example: '5355878' name: type: string example: Order receipt description: This parameter is only returned in 'search' response template_name: type: string example: Order receipt description: This parameter is not present in 'search' response subject: type: string example: Order receipt for {{ product_name }} tags: type: array required: - types - example items: type: string example: one last_updated: type: string example: '2024-01-01 12:00:00' description: A timestamp indicating when this template was last updated '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /template/delete: post: tags: - TEMPLATES summary: Remove an email template description: Deletes the specified email template. operationId: remove-an-email-template requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The case-sensitive ID of the email template that you wish to remove responses: '200': description: Template removed content: application/json: examples: Result: value: request_id: 0ad5c75a-640f-11ed-83e8-f23c9216bf70 data: Successfully deleted template 'example' schema: type: object required: - request_id - data properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: string example: Successfully deleted template 'example' '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /template/edit: post: tags: - TEMPLATES summary: Update an email template description: Changes details of an existing email template. operationId: update-an-email-template requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The ID of the email template that you wish to change new_id: type: string description: If provided, will update the email template ID template_name: type: string description: If provided, will update the email template name subject: type: string description: If provided, will update the email template subject html_body: type: string description: If provided, will update the email template HTML body text_body: type: string description: If provided, will update the email template Plain Text body template_variables: type: object description: 'The pass-through values required by the template in the format `{"variable1": "value1", "variable2": "value2"}` (When template_id is provided)' tags: type: array description: If provided, will update the email template tags items: type: string responses: '200': description: Template updated content: application/json: examples: Result: value: request_id: 43ab454e-dde9-11eb-b4ce-1002b51e60a4 data: template_name: Shiny new name id: newid subject: Shiny new Subject html_body: Shiny HTML body. This is a {{ variable }} text_body: Shiny Text body template_variables: variable: strawberries tags: - tagged schema: type: object properties: request_id: type: string example: f00c0856-dde8-11eb-b4ce-1002b51e60a4 data: type: object required: - id - subject - tags properties: id: type: string example: '5355878' name: type: string example: Order receipt description: This parameter is only returned in 'search' response template_name: type: string example: Order receipt description: This parameter is not present in 'search' response subject: type: string example: Order receipt for {{ product_name }} tags: type: array required: - types - example items: type: string example: one last_updated: type: string example: '2024-01-01 12:00:00' description: A timestamp indicating when this template was last updated '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /template/search: post: tags: - TEMPLATES summary: View email templates description: Search your collection of email templates. Returns any templates that match your search criteria. operationId: search-email-templates requestBody: content: application/json: schema: type: object properties: fuzzy_search: type: boolean description: 'If provided, will determine whether search terms are matched exactly or using wildcards. Default: false' search_terms: type: array description: If provided, will return email templates containing any of the strings provided in name, tag, id or subject fields. items: type: string tags: type: array description: If provided, will return email templates containing any of the tags provided items: type: string sort_direction: type: string description: 'If provided, will sort the returned email templates in ascending or descending order. Default: asc

Values: asc or desc' page_size: type: integer description: If provided, will limit the number of email templates returned. Default 100 format: int32 continue_token: type: string description: If provided, will fetch the next page of results, following on from the previous page of results from which this continue token was returned responses: '200': description: Matching templates content: application/json: examples: Result: value: request_id: 13ab6f3a-ddea-11eb-b4ce-1002b51e60a4 data: continue_token: null templates: - name: Order receipt id: '5355878' subject: Order receipt for {{ product_name }} tags: - one - two - five - four last_updated: '2024-01-01 12:00:00' total_count: 1 schema: type: object properties: request_id: type: string example: 13ab6f3a-ddea-11eb-b4ce-1002b51e60a4 data: type: object properties: continue_token: {} templates: type: array items: type: object required: - id - subject - tags properties: id: type: string example: '5355878' name: type: string example: Order receipt description: This parameter is only returned in 'search' response template_name: type: string example: Order receipt description: This parameter is not present in 'search' response subject: type: string example: Order receipt for {{ product_name }} tags: type: array required: - types - example items: type: string example: one last_updated: type: string example: '2024-01-01 12:00:00' description: A timestamp indicating when this template was last updated '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /template/view: post: tags: - TEMPLATES summary: View template details description: Returns details of the email template with the specified ID. operationId: view-template-details requestBody: content: application/json: schema: type: object required: - id properties: id: type: string description: The case-sensitive ID of the email template that you wish to view responses: '200': description: Details of a template content: application/json: examples: Result: value: request_id: b0107930-6410-11ed-b1a0-f23c9216bf47 data: name: Shiny new name id: testid subject: Shiny new Subject tags: - tag1 - tag2 html_body: '' text_body: '' template_variables: variable: strawberries last_updated: '2024-01-01 12:00:00' schema: type: object properties: request_id: type: string example: f00c0856-dde8-11eb-b4ce-1002b51e60a4 data: type: object required: - html_body - id - subject - tags - name - template_variables - text_body properties: html_body: type: string example: Shiny HTML body. This is a {{ variable }} id: type: string example: testid subject: type: string example: Shiny new Subject tags: type: array items: type: string example: tagged name: type: string example: Shiny new name template_variables: type: object description: 'The pass-through values required by the template in the format `{"variable1": "value1", "variable2": "value2"}`' text_body: type: string example: Shiny Text body last_updated: type: string example: '2024-01-01 12:00:00' description: A timestamp indicating when this template was last updated '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /users/smtp/add: post: tags: - SMTP USERS summary: Add an SMTP user description: Add a new SMTP user to your account. Full details of the available options for new user accounts can be found in the SMTP User Guide. operationId: add-an-smtp-user requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: A username to access the SMTP2GO service via SMTP. Length = 5 to 100 email_password: type: string description: 'A valid password for your new SMTP User.

Must have an entropy of at least 64 bits. Consider using a password generator or leave blank for an auto generated value. Ideally contain at least: 12 characters, 1 digit, symbol, uppercase letter, and lowercase letter.' description: type: string description: A comment or description of your new SMTP User custom_ratelimit: type: boolean description: 'If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. Default: false' custom_ratelimit_value: type: integer description: If passed, defines the limit of emails this user can send in the period specified in custom_ratelimit_period.

Note: Only stores this value if custom_ratelimit is true. format: int32 custom_ratelimit_period: type: string description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

Note: Only stores this value if custom_ratelimit is true.' ip_pool: type: integer description: If passed, any emails sent with this SMTP user will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: 'If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. Default: false' feedback_domain: type: string description: 'The domain to insert into the custom feedback links via the unsubscribe footer. Default: blank

Warning:
  • In order to use the SMTP2go feedback handling feature, this parameter needs to be set to "default"
  • Setting this value to anything other than "default", disables the ability for SMTP2go to correctly manage the feedback responses and should not normally be set to anything other than "default"
    • ' default: default feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

      System Variables (Only available here):
      • Unsubscribe URL = %%UNSUBSCRIBE%%
      • Email address = %%EMAIL%%
      ' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

      System Variables (Only available here):
      • Unsubscribe URL = %%UNSUBSCRIBE%%
      • Email address = %%EMAIL%%
      ' open_tracking_enabled: type: boolean description: 'If true, open tracking will be enabled for this user. Default: false' click_tracking_enabled: type: boolean description: 'If true, click tracking will be enabled for this user. Default: false' archive_enabled: type: boolean description: 'If true, archiving (available on paid plans) will be enabled for this user. Default: false.' audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this SMTP User bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. Default is [from]. status: type: string description: The initial status of the SMTP user, one of ['allowed', 'blocked', 'sandbox'], defaults to 'allowed' default: allowed subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: SMTP User added content: application/json: examples: Result: value: request_id: 1d95eb4c-63c2-11ed-a771-f23c9216ce11 data: results: - username: test@example.com email_password: aklkweiyasdaf sending_allowed: true custom_ratelimit: false custom_ratelimit_value: null custom_ratelimit_period: 0:00:00 description: '' feedback_enabled: false feedback_domain: default feedback_html: '' feedback_text: '' archive_enabled: false open_tracking_enabled: false audit_email: null bounce_notifications: from status: allowed schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - results properties: results: type: array items: type: object required: - username - sending_allowed - custom_ratelimit properties: comments: type: string example: Comment explaining how amazing this Test person is username: type: string example: smtpuser@example.com email_password: type: string example: H#8dkK2djs deprecated: true sending_allowed: type: boolean example: true default: true custom_ratelimit: type: boolean example: true default: true custom_ratelimit_value: type: integer example: 100 default: 0 nullable: true custom_ratelimit_period: type: string example: 1 day default_ratelimit_value: type: string example: 123 description: The default limit of emails this SMTP user can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this SMTP user will be limited to the number of emails specified in default_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 description: type: string feedback_enabled: type: boolean example: true feedback_domain: type: string example: default feedback_html: type: string feedback_text: type: string archive_enabled: type: boolean example: true open_tracking_enabled: type: boolean example: true audit_email: type: string nullable: true bounce_notifications: type: string example: from '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /users/smtp/edit: post: tags: - SMTP USERS summary: Edit SMTP user details description: Update an SMTP user's details with the parameters passed. Full details of the available options for SMTP user accounts is found in the SMTP User Guide. operationId: edit-an-smtp-user requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: A valid username of your existing SMTP User that you wish to edit email_password: type: string description: 'A valid password for your new SMTP User.

      Must have an entropy of at least 64 bits. Consider using a password generator or leave blank for an auto generated value. Ideally contain at least: 12 characters, 1 digit, symbol, uppercase letter, and lowercase letter.' description: type: string description: A comment or description of your new SMTP User custom_ratelimit: type: boolean description: If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. default: false custom_ratelimit_value: type: integer description: 'If passed, defines the maximum number of emails this user can send in the custom_ratelimit_period. Values: 1 to 2147483647' format: int32 custom_ratelimit_period: type: string description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value. Syntax: " {hour[s]|day[s]|week[s]|month[s]}[,hh:mm:ss]". Examples: "1 day", "1 week", "1 month", "2 months 3:00:00"' ip_pool: type: integer description: If passed, any emails sent with this SMTP user will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: 'If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. Default: false' feedback_domain: type: string description: The domain to insert into the custom feedback links via the unsubscribe footer feedback_html: type: string description: The HTML content to insert into the custom feedback email body via the unsubscribe footer feedback_text: type: string description: The text content to insert into the custom feedback email body via the unsubscribe footer open_tracking_enabled: type: boolean description: 'If true, open tracking will be enabled for this user. Default: false' click_tracking_enabled: type: boolean description: 'If true, click tracking will be enabled for this user. Default: false' archive_enabled: type: boolean description: 'If true, archiving will be enabled for this user. Default: false' audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this SMTP User bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. Default is [from]. status: type: string description: If passed will set the status of the SMTP user, one of ['allowed', 'blocked', 'sandbox'] subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: SMTP User edited content: application/json: examples: Result: value: request_id: 2c1e4002-63c6-11ed-8bc9-f23c9216ceac data: results: - username: smtpuser@example.com email_password: qet_^3qU1341%*ert sending_allowed: true custom_ratelimit: false custom_ratelimit_value: null custom_ratelimit_period: 0:00:00 description: '' feedback_enabled: false feedback_domain: default feedback_html: '' feedback_text: '' archive_enabled: false open_tracking_enabled: false audit_email: null bounce_notifications: from status: allowed schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - results properties: results: type: array items: type: object required: - username - sending_allowed - custom_ratelimit properties: comments: type: string example: Comment explaining how amazing this Test person is username: type: string example: smtpuser@example.com email_password: type: string example: H#8dkK2djs deprecated: true sending_allowed: type: boolean example: true default: true custom_ratelimit: type: boolean example: true default: true custom_ratelimit_value: type: integer example: 100 default: 0 nullable: true custom_ratelimit_period: type: string example: 1 day default_ratelimit_value: type: string example: 123 description: The default limit of emails this SMTP user can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this SMTP user will be limited to the number of emails specified in default_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 description: type: string feedback_enabled: type: boolean example: true feedback_domain: type: string example: default feedback_html: type: string feedback_text: type: string archive_enabled: type: boolean example: true open_tracking_enabled: type: boolean example: true audit_email: type: string nullable: true bounce_notifications: type: string example: from '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false patch: tags: - SMTP USERS summary: Patch an SMTP user description: Patch an existing SMTP user ignoring missing properties operationId: patch-smtp-user requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: A valid username of your existing SMTP User that you wish to edit example: my_user email_password: type: string description: A valid SMTP2GO password for your existing SMTP User.

      Must have an entropy of at least 64 bits. Consider using a password generator or leave blank for an auto generated value. description: type: string description: A comment or description of the SMTP user example: test smtp user custom_ratelimit: type: boolean description: If true, a custom rate limit will be enabled for this user, and defined by the custom_ratelimit_value and custom_ratelimit_period. custom_ratelimit_value: type: integer description: If passed, defines the limit of emails this user can send in the period specified in custom_ratelimit_period.

      Note: Only stores this value if custom_ratelimit is true. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Only stores this value if custom_ratelimit is true.' ip_pool: type: integer description: If passed, any emails sent with this API key will use dedicated IP's in this IP Pool, This value can be found on the /v3/dedicated_ips/view endpoint. example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: null feedback_html: type: string description: The HTML content to insert into the custom feedback email body via the unsubscribe footer.

      System Variables (Only available here):
      • Unsubscribe URL = %%UNSUBSCRIBE%%
      • Email address = %%EMAIL%%
      example: test_html default: null feedback_text: type: string description: The text content to insert into the custom feedback email body via the unsubscribe footer.

      System Variables (Only available here):
      • Unsubscribe URL = %%UNSUBSCRIBE%%
      • Email address = %%EMAIL%%
      example: test_text default: null open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this SMTP user. default: null click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this SMTP user. default: null archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this SMTP user. default: null audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this SMTP user. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: null status: type: string description: The initial status of the SMTP user, one of ['allowed', 'blocked', 'sandbox']. default: null subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Successfully patched SMTP user content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: - username: my_user description: test smtp user feedback_enabled: true feedback_html: test_html feedback_text: test_text ippool: 1234 bounce_notifications: from status: allowed schema: type: object required: - data - request_id properties: data: type: array description: An array of SMTP user results items: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object properties: username: type: string example: username description: The username of the SMTP user description: type: string description: A comment or description of the SMTP user. custom_rate_limit: type: boolean example: true default: false description: If enabled will use the values of custom_ratelimit_value and custom_ratelimit_period for rate limiting. custom_ratelimit_value: type: integer example: 123 description: If passed, defines the limit of emails this SMTP user can send in the period specified in custom_ratelimit_period. custom_ratelimit_period: type: string example: 0:30:00 description: 'If passed, defines the period for which this user will be limited to the number of emails specified in custom_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Only stores this value if custom_ratelimit is true.' default_ratelimit_value: type: string example: 123 description: The default limit of emails this SMTP user can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this SMTP user will be limited to the number of emails specified in default_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 feedback_enabled: type: boolean description: If true, custom feedback via the unsubscribe footer will be enabled and defined by the below settings. default: false feedback_html: type: string description: 'The HTML content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

      System Variables (Only available here):
      • Unsubscribe URL = %%UNSUBSCRIBE%%
      • Email address = %%EMAIL%%
      ' feedback_text: type: string description: 'The text content to insert into the custom feedback email body via the unsubscribe footer. Default: blank

      System Variables (Only available here):
      • Unsubscribe URL = %%UNSUBSCRIBE%%
      • Email address = %%EMAIL%%
      ' open_tracking_enabled: type: boolean description: If true, open tracking will be enabled for this SMTP user. default: false click_tracking_enabled: type: boolean description: If true, click tracking will be enabled for this SMTP user. default: false archive_enabled: type: boolean description: If true, archiving (available on paid plans) will be enabled for this SMTP user. default: false audit_email: type: string description: If passed, this email will be BCC'd on all emails sent by this SMTP user. bounce_notifications: type: string description: If passed, will control how bounce notifications are handled. Must be one of [from, drop, or a valid email address]. [from] will return the email to sender, [drop] will discard the event, and the inclusion of an email address will send the event on to this account. default: from status: type: string description: The initial status of the SMTP user, one of ['allowed', 'blocked', 'sandbox']. default: allowed request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /users/smtp/remove: post: tags: - SMTP USERS summary: Remove an SMTP user description: Remove an SMTP user from your account operationId: remove-an-smtp-user requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: A valid SMTP2GO username of your existing SMTP User that you wish to remove subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: SMTP User removed content: application/json: examples: Result: value: request_id: 2fde4fc4-63c7-11ed-a210-f23c93560c0e data: results: - username: temp2 email_password: 8dkK2djs sending_allowed: true custom_ratelimit: false custom_ratelimit_value: null custom_ratelimit_period: 0:00:00 description: '' feedback_enabled: false feedback_domain: default feedback_html: '' feedback_text: '' archive_enabled: false open_tracking_enabled: false audit_email: null bounce_notifications: from status: allowed schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - results properties: results: type: array items: type: object required: - username - sending_allowed - custom_ratelimit properties: comments: type: string example: Comment explaining how amazing this Test person is username: type: string example: smtpuser@example.com email_password: type: string example: H#8dkK2djs deprecated: true sending_allowed: type: boolean example: true default: true custom_ratelimit: type: boolean example: true default: true custom_ratelimit_value: type: integer example: 100 default: 0 nullable: true custom_ratelimit_period: type: string example: 1 day default_ratelimit_value: type: string example: 123 description: The default limit of emails this SMTP user can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this SMTP user will be limited to the number of emails specified in default_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 description: type: string feedback_enabled: type: boolean example: true feedback_domain: type: string example: default feedback_html: type: string feedback_text: type: string archive_enabled: type: boolean example: true open_tracking_enabled: type: boolean example: true audit_email: type: string nullable: true bounce_notifications: type: string example: from '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /users/smtp/view: post: tags: - SMTP USERS summary: View SMTP users description: Returns a list of all SMTP users that are managed by this account, or details of a specific user, when you include the [username] in your request. If no users are available, this will return an empty list. operationId: view-smtp-users requestBody: content: application/json: schema: type: object properties: username: type: string description: If passed, a valid SMTP2GO username of your existing SMTP User that you wish to view subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here responses: '200': description: List of SMTP Users content: application/json: examples: Result: value: request_id: ae4a8446-63c6-11ed-95d3-f23c92160e3c data: results: - username: smtpuser@example.com email_password: ',w0z9YFTT[izrH7>' sending_allowed: true custom_ratelimit: false custom_ratelimit_value: null custom_ratelimit_period: 0:00:00 description: '' feedback_enabled: false feedback_domain: default feedback_html: '' feedback_text: '' archive_enabled: false open_tracking_enabled: false audit_email: null bounce_notifications: from status: allowed default_ratelimit_value: 0 default_ratelimit_period: unlimited schema: type: object required: - request_id - data properties: request_id: type: string example: aa253464-0bd0-467a-b24b-6159dcd7be60 data: type: object required: - results properties: results: type: array items: type: object required: - username - sending_allowed - custom_ratelimit properties: comments: type: string example: Comment explaining how amazing this Test person is username: type: string example: smtpuser@example.com email_password: type: string example: H#8dkK2djs deprecated: true sending_allowed: type: boolean example: true default: true custom_ratelimit: type: boolean example: true default: true custom_ratelimit_value: type: integer example: 100 default: 0 nullable: true custom_ratelimit_period: type: string example: 1 day default_ratelimit_value: type: string example: 123 description: The default limit of emails this SMTP user can send in the period specified in default_ratelimit_period. Note: Used if custom_ratelimit is false. default_ratelimit_period: type: string example: unlimited description: 'The default period for which this SMTP user will be limited to the number of emails specified in default_ratelimit_value.

      Syntax: "\ [hour[s]|day[s]|week[s]|month[s]] [hh:mm:ss]".

      Examples: "0:30:00", "1 hour", "2 days", "3 months", "4 months 5:00:00".

      Note: Used if custom_ratelimit is false.' ippool: type: integer example: 1234 description: type: string feedback_enabled: type: boolean example: true feedback_domain: type: string example: default feedback_html: type: string feedback_text: type: string archive_enabled: type: boolean example: true open_tracking_enabled: type: boolean example: true audit_email: type: string nullable: true bounce_notifications: type: string example: from '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /webhook/add: post: tags: - WEBHOOKS summary: Add a new Webhook description: Add a new webhook with the given configuration. Setup of webhooks can be done on the Settings > Webhooks page in your SMTP2GO control panel. operationId: add-webhook requestBody: content: application/json: schema: type: object required: - url properties: url: type: string description: The URL of the webhook. events: type: array description: A list of events the webhook will receive, from this list [delivered,unsubscribe,spam,bounce,processed,reject,click,open]. items: type: string sms_events: type: array description: A list of SMS events the webhook will receive, from this list [delivered,failed,rejected,sending,submitted]. items: type: string headers: type: array description: Custom headers you would specifically like sent in the event data. The headers must already exist in the emails. Subject and Message-id headers are sent by default. items: type: string usernames: type: array description: Usernames to be included in this webhook. All usernames will be included if none are specified. items: type: string output_format: type: string description: The format of the webhook data. Either form or json. default: form subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. auth_header_type: type: string description: The type of authentiction header, Either bearer or basic or empty for no authentication. default: '' auth_header_value: type: string description: The value of authentiction header, Either base64(user:pass) or a custom token. default: '' responses: '200': description: Webhook added content: application/json: examples: Result: value: request_id: 5b6c5cf6-9517-44fd-a273-9a62efb12e57 data: url: https://example.com/test-webhook id: 4320 events: - processed headers: X-Test-Header usernames: MyUser1 sms_events: - sending output_format: json schema: type: object required: - data - request_id properties: data: type: object properties: url: type: string example: https://example.com/test-webhook description: The URL of the webhook. id: type: integer description: The ID of the webhook. events: type: array description: A list of events the webhook will receive, from this list [delivered,unsubscribe,spam,bounce,processed,reject,click,open]. items: type: string sms_events: type: array description: A list of SMS events the webhook will receive, from this list [delivered,failed,rejected,sending,submitted]. items: type: string headers: type: array description: Custom headers you would specifically like sent in the event data. The headers must already exist in the emails. Subject and Message-id headers are sent by default. items: type: string usernames: type: array description: Usernames to be included in this webhook. All usernames will be included if none are specified. items: type: string output_format: type: string description: The format of the webhook data. Either form or json. default: form auth_header_type: type: string description: The type of authentiction header, Either bearer or basic. default: '' auth_header_value: type: string description: The value of authentiction header, Either base64(user:pass) or a custom token. default: '' request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /webhook/edit: post: tags: - WEBHOOKS summary: Edit a specified Webhook description: Make changes to a specific webhook using its unique ID. operationId: edit-webhook requestBody: content: application/json: schema: type: object required: - id properties: id: type: integer description: The ID of an existing webhook you want to edit url: type: string description: The URL of the webhook. events: type: array description: A list of events the webhook will receive, from this list [delivered,unsubscribe,spam,bounce,processed,reject,click,open]. items: type: string sms_events: type: array description: A list of SMS events the webhook will receive, from this list [delivered,failed,rejected,sending,submitted]. items: type: string headers: type: array description: Custom headers you would specifically like sent in the event data. The headers must already exist in the emails. Subject and Message-id headers are sent by default. items: type: string usernames: type: array description: Usernames to be included in this webhook. All usernames will be included if none are specified. items: type: string output_format: type: string description: The format of the webhook data. Either form or json default: form subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. auth_header_type: type: string description: The type of authentiction header, Either bearer or basic or empty for no authentication. default: '' auth_header_value: type: string description: The value of authentiction header, Either base64(user:pass) or a custom token. default: '' responses: '200': description: Webhook updated content: application/json: examples: Result: value: request_id: 5b6c5cf6-9517-44fd-a273-9a62efb12e57 data: url: https://example.com/test-webhook-2" id: 4320 events: - processed - open - spam headers: X-Test-Header usernames: MyUser1 sms_events: [] output_format: form schema: type: object required: - data - request_id properties: data: type: object properties: url: type: string example: https://example.com/test-webhook description: The URL of the webhook. id: type: integer description: The ID of the webhook. events: type: array description: A list of events the webhook will receive, from this list [delivered,unsubscribe,spam,bounce,processed,reject,click,open]. items: type: string sms_events: type: array description: A list of SMS events the webhook will receive, from this list [delivered,failed,rejected,sending,submitted]. items: type: string headers: type: array description: Custom headers you would specifically like sent in the event data. The headers must already exist in the emails. Subject and Message-id headers are sent by default. items: type: string usernames: type: array description: Usernames to be included in this webhook. All usernames will be included if none are specified. items: type: string output_format: type: string description: The format of the webhook data. Either form or json. default: form auth_header_type: type: string description: The type of authentiction header, Either bearer or basic. default: '' auth_header_value: type: string description: The value of authentiction header, Either base64(user:pass) or a custom token. default: '' request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /webhook/remove: post: tags: - WEBHOOKS summary: Remove a specified Webhook description: Remove a specific webhook using its unique ID. operationId: remove-webhook requestBody: content: application/json: schema: type: object required: - id properties: id: type: integer description: The ID of an existing webhook you want to remove subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Webhook removed content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: url: https://example.com/webhook" id: 4317 events: - spam sms_events: [] headers: [] usernames: [] output_format: json schema: type: object required: - data - request_id properties: data: type: object properties: url: type: string example: https://example.com/test-webhook description: The URL of the webhook. id: type: integer description: The ID of the webhook. events: type: array description: A list of events the webhook will receive, from this list [delivered,unsubscribe,spam,bounce,processed,reject,click,open]. items: type: string sms_events: type: array description: A list of SMS events the webhook will receive, from this list [delivered,failed,rejected,sending,submitted]. items: type: string headers: type: array description: Custom headers you would specifically like sent in the event data. The headers must already exist in the emails. Subject and Message-id headers are sent by default. items: type: string usernames: type: array description: Usernames to be included in this webhook. All usernames will be included if none are specified. items: type: string output_format: type: string description: The format of the webhook data. Either form or json. default: form auth_header_type: type: string description: The type of authentiction header, Either bearer or basic. default: '' auth_header_value: type: string description: The value of authentiction header, Either base64(user:pass) or a custom token. default: '' request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false /webhook/view: post: tags: - WEBHOOKS summary: View Webhooks description: Returns information for configured webhooks. operationId: view-webhook requestBody: content: application/json: schema: type: object required: - url properties: subaccount_id: type: string description: If you wish to make this API call on behalf of a subaccount then include its unique ID here. responses: '200': description: Returned webhook information content: application/json: examples: Result: value: request_id: f3e50113-deb2-4e54-9675-2ea497c3732e data: url: https://example.com/webhook" id: 4317 events: - spam sms_events: [] headers: [] usernames: [] output_format: json schema: type: object required: - data - request_id properties: data: type: object properties: url: type: string example: https://example.com/test-webhook description: The URL of the webhook. id: type: integer description: The ID of the webhook. events: type: array description: A list of events the webhook will receive, from this list [delivered,unsubscribe,spam,bounce,processed,reject,click,open]. items: type: string sms_events: type: array description: A list of SMS events the webhook will receive, from this list [delivered,failed,rejected,sending,submitted]. items: type: string headers: type: array description: Custom headers you would specifically like sent in the event data. The headers must already exist in the emails. Subject and Message-id headers are sent by default. items: type: string usernames: type: array description: Usernames to be included in this webhook. All usernames will be included if none are specified. items: type: string output_format: type: string description: The format of the webhook data. Either form or json. default: form auth_header_type: type: string description: The type of authentiction header, Either bearer or basic. default: '' auth_header_value: type: string description: The value of authentiction header, Either base64(user:pass) or a custom token. default: '' request_id: type: string example: 4b661d88-6b2d-11eb-8bb3-f23c92bb31d2 '400': description: '400' content: application/json: examples: Result: value: request_id: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: error: You do not have permission to access this API endpoint error_code: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED schema: type: object properties: request_id: type: string example: 22e5acba-43bf-11e6-ae42-408d5cce2644 data: type: object properties: error: type: string example: You do not have permission to access this API endpoint error_code: type: string example: E_ApiResponseCodes.ENDPOINT_PERMISSION_DENIED deprecated: false components: securitySchemes: sec0: type: apiKey in: header name: X-Smtp2go-Api-Key x-default: ${SMTP2GO_API_KEY}