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.
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.
OpenAPI Specification
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}