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-templates-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 TEMPLATES 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: TEMPLATES
description: Create and manage email templates
paths:
/template/add:
post:
tags:
- TEMPLATES
summary: Add an email template
description: Adds a new email template that you can use to format your emails.
operationId: add-an-email-template
requestBody:
content:
application/json:
schema:
type: object
required:
- template_name
- id
- subject
- html_body
- text_body
properties:
template_name:
type: string
description: 'The name of the email template. Min length: 1 Character. Max length: 64 Characters.'
id:
type: string
description: 'The case-sensitive ID of the email template. Min length: 5 Character. Max length: 24 Characters.'
subject:
type: string
description: The subject of the email template.
html_body:
type: string
description: The HTML body of the email template.
text_body:
type: string
description: The Plain Text body of the email template.
template_variables:
type: object
description: 'The variables to use within this email template in the format `{"variable1": "value1", "variable2": "value2"}`'
tags:
type: array
description: The list of Tags to associate to this email template
items:
type: string
responses:
'200':
description: Template added
content:
application/json:
examples:
Result:
value:
request_id: f00c0856-dde8-11eb-b4ce-1002b51e60a4
data:
template_name: Shiny new name
id: testid
subject: Shiny new Subject
html_body: Shiny HTML body. This is a {{ variable }}
text_body: Shiny Text body
template_variables:
variable: strawberries
tags:
- tagged
schema:
type: object
properties:
request_id:
type: string
example: f00c0856-dde8-11eb-b4ce-1002b51e60a4
data:
type: object
required:
- id
- subject
- tags
properties:
id:
type: string
example: '5355878'
name:
type: string
example: Order receipt
description: This parameter is only returned in 'search' response
template_name:
type: string
example: Order receipt
description: This parameter is not present in 'search' response
subject:
type: string
example: Order receipt for {{ product_name }}
tags:
type: array
required:
- types
- example
items:
type: string
example: one
last_updated:
type: string
example: '2024-01-01 12:00:00'
description: A timestamp indicating when this template was last updated
'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
/template/delete:
post:
tags:
- TEMPLATES
summary: Remove an email template
description: Deletes the specified email template.
operationId: remove-an-email-template
requestBody:
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
description: The case-sensitive ID of the email template that you wish to remove
responses:
'200':
description: Template removed
content:
application/json:
examples:
Result:
value:
request_id: 0ad5c75a-640f-11ed-83e8-f23c9216bf70
data: Successfully deleted template 'example'
schema:
type: object
required:
- request_id
- data
properties:
request_id:
type: string
example: 22e5acba-43bf-11e6-ae42-408d5cce2644
data:
type: string
example: Successfully deleted template 'example'
'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
/template/edit:
post:
tags:
- TEMPLATES
summary: Update an email template
description: Changes details of an existing email template.
operationId: update-an-email-template
requestBody:
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
description: The ID of the email template that you wish to change
new_id:
type: string
description: If provided, will update the email template ID
template_name:
type: string
description: If provided, will update the email template name
subject:
type: string
description: If provided, will update the email template subject
html_body:
type: string
description: If provided, will update the email template HTML body
text_body:
type: string
description: If provided, will update the email template Plain Text body
template_variables:
type: object
description: 'The pass-through values required by the template in the format `{"variable1": "value1", "variable2": "value2"}` (When template_id is provided)'
tags:
type: array
description: If provided, will update the email template tags
items:
type: string
responses:
'200':
description: Template updated
content:
application/json:
examples:
Result:
value:
request_id: 43ab454e-dde9-11eb-b4ce-1002b51e60a4
data:
template_name: Shiny new name
id: newid
subject: Shiny new Subject
html_body: Shiny HTML body. This is a {{ variable }}
text_body: Shiny Text body
template_variables:
variable: strawberries
tags:
- tagged
schema:
type: object
properties:
request_id:
type: string
example: f00c0856-dde8-11eb-b4ce-1002b51e60a4
data:
type: object
required:
- id
- subject
- tags
properties:
id:
type: string
example: '5355878'
name:
type: string
example: Order receipt
description: This parameter is only returned in 'search' response
template_name:
type: string
example: Order receipt
description: This parameter is not present in 'search' response
subject:
type: string
example: Order receipt for {{ product_name }}
tags:
type: array
required:
- types
- example
items:
type: string
example: one
last_updated:
type: string
example: '2024-01-01 12:00:00'
description: A timestamp indicating when this template was last updated
'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
/template/search:
post:
tags:
- TEMPLATES
summary: View email templates
description: Search your collection of email templates. Returns any templates that match your search criteria.
operationId: search-email-templates
requestBody:
content:
application/json:
schema:
type: object
properties:
fuzzy_search:
type: boolean
description: 'If provided, will determine whether search terms are matched exactly or using wildcards. Default: false'
search_terms:
type: array
description: If provided, will return email templates containing any of the strings provided in name, tag, id or subject fields.
items:
type: string
tags:
type: array
description: If provided, will return email templates containing any of the tags provided
items:
type: string
sort_direction:
type: string
description: 'If provided, will sort the returned email templates in ascending or descending order. Default: asc<br><br><strong>Values:</strong> asc or desc'
page_size:
type: integer
description: If provided, will limit the number of email templates returned. Default 100
format: int32
continue_token:
type: string
description: If provided, will fetch the next page of results, following on from the previous page of results from which this continue token was returned
responses:
'200':
description: Matching templates
content:
application/json:
examples:
Result:
value:
request_id: 13ab6f3a-ddea-11eb-b4ce-1002b51e60a4
data:
continue_token: null
templates:
- name: Order receipt
id: '5355878'
subject: Order receipt for {{ product_name }}
tags:
- one
- two
- five
- four
last_updated: '2024-01-01 12:00:00'
total_count: 1
schema:
type: object
properties:
request_id:
type: string
example: 13ab6f3a-ddea-11eb-b4ce-1002b51e60a4
data:
type: object
properties:
continue_token: {}
templates:
type: array
items:
type: object
required:
- id
- subject
- tags
properties:
id:
type: string
example: '5355878'
name:
type: string
example: Order receipt
description: This parameter is only returned in 'search' response
template_name:
type: string
example: Order receipt
description: This parameter is not present in 'search' response
subject:
type: string
example: Order receipt for {{ product_name }}
tags:
type: array
required:
- types
- example
items:
type: string
example: one
last_updated:
type: string
example: '2024-01-01 12:00:00'
description: A timestamp indicating when this template was last updated
'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
/template/view:
post:
tags:
- TEMPLATES
summary: View template details
description: Returns details of the email template with the specified ID.
operationId: view-template-details
requestBody:
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
description: The case-sensitive ID of the email template that you wish to view
responses:
'200':
description: Details of a template
content:
application/json:
examples:
Result:
value:
request_id: b0107930-6410-11ed-b1a0-f23c9216bf47
data:
name: Shiny new name
id: testid
subject: Shiny new Subject
tags:
- tag1
- tag2
html_body: ''
text_body: ''
template_variables:
variable: strawberries
last_updated: '2024-01-01 12:00:00'
schema:
type: object
properties:
request_id:
type: string
example: f00c0856-dde8-11eb-b4ce-1002b51e60a4
data:
type: object
required:
- html_body
- id
- subject
- tags
- name
- template_variables
- text_body
properties:
html_body:
type: string
example: Shiny HTML body. This is a {{ variable }}
id:
type: string
example: testid
subject:
type: string
example: Shiny new Subject
tags:
type: array
items:
type: string
example: tagged
name:
type: string
example: Shiny new name
template_variables:
type: object
description: 'The pass-through values required by the template in the format `{"variable1": "value1", "variable2": "value2"}`'
text_body:
type: string
example: Shiny Text body
last_updated:
type: string
example: '2024-01-01 12:00:00'
description: A timestamp indicating when this template was last updated
'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}