SMTP2GO Webhooks API

Webhook configuration

Operations 4

POST /webhook/add Add a new Webhook #
POST /webhook/edit Edit a specified Webhook #
POST /webhook/remove Remove a specified Webhook #
POST /webhook/view View Webhooks #

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-webhooks-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-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SMTP2GO WEBHOOKS 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: WEBHOOKS
  description: Create and manage event webhooks
paths:
  /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 [<code>delivered</code>,<code>unsubscribe</code>,<code>spam</code>,<code>bounce</code>,<code>processed</code>,<code>reject</code>,<code>click</code>,<code>open</code>].
                  items:
                    type: string
                sms_events:
                  type: array
                  description: A list of SMS events the webhook will receive, from this list [<code>delivered</code>,<code>failed</code>,<code>rejected</code>,<code>sending</code>,<code>submitted</code>].
                  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 <code>form</code> or <code>json</code>.
                  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 <code>bearer</code> or <code>basic</code> or empty for no authentication.
                  default: ''
                auth_header_value:
                  type: string
                  description: The value of authentiction header, Either <code>base64(user:pass)</code> or <code>a custom token</code>.
                  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 [<code>delivered</code>,<code>unsubscribe</code>,<code>spam</code>,<code>bounce</code>,<code>processed</code>,<code>reject</code>,<code>click</code>,<code>open</code>].
                        items:
                          type: string
                      sms_events:
                        type: array
                        description: A list of SMS events the webhook will receive, from this list [<code>delivered</code>,<code>failed</code>,<code>rejected</code>,<code>sending</code>,<code>submitted</code>].
                        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 <code>form</code> or <code>json</code>.
                        default: form
                      auth_header_type:
                        type: string
                        description: The type of authentiction header, Either <code>bearer</code> or <code>basic</code>.
                        default: ''
                      auth_header_value:
                        type: string
                        description: The value of authentiction header, Either <code>base64(user:pass)</code> or <code>a custom token</code>.
                        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 [<code>delivered</code>,<code>unsubscribe</code>,<code>spam</code>,<code>bounce</code>,<code>processed</code>,<code>reject</code>,<code>click</code>,<code>open</code>].
                  items:
                    type: string
                sms_events:
                  type: array
                  description: A list of SMS events the webhook will receive, from this list [<code>delivered</code>,<code>failed</code>,<code>rejected</code>,<code>sending</code>,<code>submitted</code>].
                  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 <code>form</code> or <code>json</code>
                  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 <code>bearer</code> or <code>basic</code> or empty for no authentication.
                  default: ''
                auth_header_value:
                  type: string
                  description: The value of authentiction header, Either <code>base64(user:pass)</code> or <code>a custom token</code>.
                  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 [<code>delivered</code>,<code>unsubscribe</code>,<code>spam</code>,<code>bounce</code>,<code>processed</code>,<code>reject</code>,<code>click</code>,<code>open</code>].
                        items:
                          type: string
                      sms_events:
                        type: array
                        description: A list of SMS events the webhook will receive, from this list [<code>delivered</code>,<code>failed</code>,<code>rejected</code>,<code>sending</code>,<code>submitted</code>].
                        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 <code>form</code> or <code>json</code>.
                        default: form
                      auth_header_type:
                        type: string
                        description: The type of authentiction header, Either <code>bearer</code> or <code>basic</code>.
                        default: ''
                      auth_header_value:
                        type: string
                        description: The value of authentiction header, Either <code>base64(user:pass)</code> or <code>a custom token</code>.
                        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 [<code>delivered</code>,<code>unsubscribe</code>,<code>spam</code>,<code>bounce</code>,<code>processed</code>,<code>reject</code>,<code>click</code>,<code>open</code>].
                        items:
                          type: string
                      sms_events:
                        type: array
                        description: A list of SMS events the webhook will receive, from this list [<code>delivered</code>,<code>failed</code>,<code>rejected</code>,<code>sending</code>,<code>submitted</code>].
                        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 <code>form</code> or <code>json</code>.
                        default: form
                      auth_header_type:
                        type: string
                        description: The type of authentiction header, Either <code>bearer</code> or <code>basic</code>.
                        default: ''
                      auth_header_value:
                        type: string
                        description: The value of authentiction header, Either <code>base64(user:pass)</code> or <code>a custom token</code>.
                        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 [<code>delivered</code>,<code>unsubscribe</code>,<code>spam</code>,<code>bounce</code>,<code>processed</code>,<code>reject</code>,<code>click</code>,<code>open</code>].
                        items:
                          type: string
                      sms_events:
                        type: array
                        description: A list of SMS events the webhook will receive, from this list [<code>delivered</code>,<code>failed</code>,<code>rejected</code>,<code>sending</code>,<code>submitted</code>].
                        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 <code>form</code> or <code>json</code>.
                        default: form
                      auth_header_type:
                        type: string
                        description: The type of authentiction header, Either <code>bearer</code> or <code>basic</code>.
                        default: ''
                      auth_header_value:
                        type: string
                        description: The value of authentiction header, Either <code>base64(user:pass)</code> or <code>a custom token</code>.
                        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}