SMTP2GO SMS API

Send and receive SMS messages

Operations 4

POST /sms/send Send SMS #
POST /sms/summary SMS Summary #
POST /sms/view-received View received SMS #
POST /sms/view-sent View sent SMS #

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-sms-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-sms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SMTP2GO SMS 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: SMS
  description: Send SMS and view sent/received messages and summaries
paths:
  /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
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: X-Smtp2go-Api-Key
      x-default: ${SMTP2GO_API_KEY}