openapi: 3.2.0 info: title: SMTP2GO EMAIL ARCHIVE 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: EMAIL ARCHIVE description: Search and retrieve archived email content paths: /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 components: securitySchemes: sec0: type: apiKey in: header name: X-Smtp2go-Api-Key x-default: ${SMTP2GO_API_KEY}