SMTP2GO SENDER DOMAINS API

Add, verify and manage sender domains, tracking and return-path subdomains

Operations 7

POST /domain/add Add a sender domain #
POST /domain/remove Remove a sender domain #
POST /domain/returnpath Edit the return-path subdomain #
POST /domain/subaccount_access Edit subaccount access #
POST /domain/tracking Edit the tracking subdomain #
POST /domain/verify Verify a sender domain #
POST /domain/view View sender domains #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/smtp2go-sender-domains-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

smtp2go-sender-domains-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SMTP2GO SENDER DOMAINS 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: SENDER DOMAINS
  description: Add, verify and manage sender domains, tracking and return-path subdomains
paths:
  /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.<br> <br> <strong>Note:</strong> 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 <code>/subaccounts/search</code>
                    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: <url>
                        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 <code>/subaccounts/search</code>
                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
               

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/smtp2go/refs/heads/main/openapi/smtp2go-sender-domains-api-openapi.yml