SuprSend Template API
The Template API from SuprSend — 12 operation(s) for template.
The Template API from SuprSend — 12 operation(s) for template.
openapi: 3.1.1
info:
title: SuprSend Broadcast Template API
description: APIs supported on suprsend platform
version: 1.2.2
servers:
- url: https://hub.suprsend.com
security:
- sec0: []
- BearerAuth: []
tags:
- name: Template
paths:
/v1/template/{template_slug}/:
get:
summary: Fetch Template details
security:
- BearerAuth: []
description: API to fetch content of a template group (active & draft versions) across all associated channels and languages.
operationId: fetch-template-details
parameters:
- name: template_slug
in: path
description: Template group slug you want to fetch content details. You'll get the template slug by clicking on copy button next to template group name on SuprSend dashboard -> template details page.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
id: '166277'
name: Task Reminder
slug: task-reminder
description: Batched template for all pending tasks
is_active: true
default_language:
name: English
slug: en
created_at: '2023-01-25T04:53:39.237291Z'
updated_at: '2023-08-28T05:06:22.461443Z'
updated_by:
name: team_member
email: user@example.com
last_triggered_at: '2023-08-10T12:44:03.361158Z'
is_auto_translate_enabled: false
enabled_languages:
- en
- fr
- es
channels:
- id: '1244'
channel:
name: Email
slug: email
is_template_approval_needed: true
is_active: true
is_enabled: true
created_at: '2023-01-25T04:53:39.268299Z'
updated_at: '2023-01-25T04:53:39.404273Z'
disabled_languages: []
versions: []
tags:
- id: 01H9HPT1C5ABN61S12D85J9DJ7
name: tag
schema:
type: object
properties:
id:
type: integer
description: internal template_id
name:
type: string
description: template name given by user
slug:
type: string
description: unique template slug generated from name
description:
type: string
nullable: true
description: template description given by user
is_active:
type: boolean
description: is true when atleast 1 template version is live for the channel
default_language:
type: object
properties:
name:
type: string
example: English
slug:
type: string
example: en
created_at:
type: string
format: date-time
description: template creation time
updated_at:
type: string
format: date-time
description: latest template modification time
updated_by:
type: object
properties:
name:
type: string
description: team member name who last updated the template
email:
type: string
format: email
description: team member email who last updated the template
last_triggered_at:
type: string
format: date-time
description: time when the workflow was last triggered
is_auto_translate_enabled:
type: boolean
example: false
enabled_languages:
type: array
items:
type: string
examples:
english:
summary: English language
value: en
french:
summary: French language
value: fr
spanish:
summary: Spanish language
value: es
channels:
type: array
description: array of all template enabled channels along with their language and active status
items:
type: object
tags:
type: array
description: tags added in the template group
items:
type: object
properties:
id:
type: string
description: unique tag identifier
example: 01H9HPT1C5ABN61S12D85J9DJ7
name:
type: string
description: tag name
example: tag
deprecated: false
tags:
- Template
/v1/template/{template_slug}/channel/{channel_slug}/:
get:
summary: Fetch Template content for a channel
security:
- BearerAuth: []
description: API to fetch content of a particular channel in a template group (live & draft versions).
operationId: fetch-template-details-channel
parameters:
- name: template_slug
in: path
description: Template group slug you want to fetch content details. You'll get the template slug by clicking on copy button next to template group name on SuprSend dashboard -> template details page.
schema:
type: string
required: true
- name: channel_slug
in: path
description: add one of the template channels - `email`, `sms`, `whatsapp`, `inbox`, `slack`, `androidpush`, `iospush`, `webpush`
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
id: 1121
channel:
name: In-App Inbox
slug: inbox
is_template_approval_needed: false
is_active: true
is_enabled: true
created_at: '2022-06-18T04:53:58.690274Z'
updated_at: '2025-01-21T11:49:23.247217Z'
disabled_languages: []
versions:
- id: 69989
templates:
- id: 74660
language:
name: English
slug: en
is_enabled: true
approval_status: auto_approved
content:
'...': null
created_at: '2024-09-15T04:33:22.727005Z'
updated_at: '2024-09-15T04:36:56.103368Z'
updated_by:
name: Jane Doe
email: user@example.com
approval_cycle: null
is_approval_needed: false
is_cloned_from_last_version: false
status: active
version_tag: '17'
created_at: '2024-09-15T04:33:22.714274Z'
updated_at: '2024-09-15T04:36:58.752580Z'
updated_by:
name: Jane Doe
email: user@example.com
version_tag_user: v1
published_languages:
- en
apparent_published_languages:
- en
system_approval_info: {}
schema:
type: object
properties:
id:
type: integer
description: template id generated by SuprSend
channel:
type: object
properties:
name:
type: string
description: channel type
example: In-App Inbox
slug:
type: string
description: unique slug of the channel
example: inbox
is_template_approval_needed:
type: boolean
description: is true for channels like whatsapp where template needs to be pre-approved for sending notification
example: false
is_active:
type: boolean
description: active templates have atleast 1 live version
is_enabled:
type: boolean
description: disabled channels are not picked for sending the message
example: true
created_at:
type: string
format: date-time
example: '2023-01-25T04:53:40.011112Z'
updated_at:
type: string
format: date-time
example: '2023-07-27T14:55:23.939438Z'
disabled_languages:
type: array
items:
type: string
versions:
type: array
items:
type: object
properties:
id:
type: integer
example: 10830
templates:
type: array
items:
type: object
properties:
id:
type: integer
example: 11876
language:
type: object
properties:
name:
type: string
description: language name
example: English
slug:
type: string
description: language code
example: en
is_enabled:
type: boolean
description: whether the template is enabled for this language
example: true
approval_status:
type: string
description: approval status of the template (auto_approved, pending, rejected)
example: auto_approved
content:
type: object
description: json content of the template
created_at:
type: string
format: date-time
description: timestamp of template creation
updated_at:
type: string
format: date-time
description: timestamp when the template channel content was last updated
updated_by:
type: object
properties:
name:
type: string
description: team member name who last updated the content
email:
type: string
description: email of the team member who last updated the content
example: user@example.com
approval_cycle:
type: string
nullable: true
description: approval cycle information
example: null
is_approval_needed:
type: boolean
description: whether approval is needed for this template
example: false
is_cloned_from_last_version:
type: boolean
description: whether this template was cloned from the last version
example: false
status:
type: string
description: version status (active, draft, archived)
example: active
version_tag:
type: string
description: version number
created_at:
type: string
format: date-time
example: '2023-01-25T04:53:40.016463Z'
updated_at:
type: string
format: date-time
example: '2023-01-25T04:53:40.083969Z'
updated_by:
type: object
description: team member details who last updated the content for the channel
version_tag_user:
type: string
description: version name added on publish
published_languages:
type: array
description: languages last published in the channel
items:
type: string
examples:
english:
summary: English language
value: en
apparent_published_languages:
type: array
description: languages that appear to be published in the channel
items:
type: string
example:
- en
system_approval_info:
type: object
description: system approval information for the template
example: {}
'404':
description: 404 - Not Found
content:
application/json:
examples:
Result:
value:
code: 404
type: DoesNotExist
message: TemplateGroup matching query does not exist.
schema:
type: object
properties:
code:
type: integer
description: error code
type:
type: string
description: error type
message:
type: string
description: error message giving reason of the failure
deprecated: false
tags:
- Template
/v1/template/:
get:
summary: Fetch Template List
security:
- BearerAuth: []
description: API to fetch paginated list of all templates in a given workspace.
operationId: fetch-template-list
parameters:
- name: has_tag_ids_any
in: query
description: comma separated string of tag ids attached to the template
schema:
type: string
- name: has_channels_any
in: query
description: comma separated string of channels. Returns templates which has any of the channels present from the channel string. Use these keys for channels - `email`, `sms`, `whatsapp`, `inbox`, `slack`, `androidpush`, `iospush`, `webpush`
schema:
type: string
- name: is_active
in: query
description: Set `true` for published templates, `false` for templates which are in draft. Do not pass this key to return all templates.
schema:
type: boolean
- name: is_archived
in: query
description: Set `true` to get archived templates, default = `false`
schema:
type: boolean
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
meta:
count: 1
limit: 10
offset: 0
results:
- id: '166277'
name: Task Reminder
slug: task-reminder
description: Batched template for all pending tasks
is_active: true
default_language:
name: English
slug: en
created_at: '2023-01-25T04:53:39.237291Z'
updated_at: '2023-08-28T05:06:22.461443Z'
updated_by:
name: team_member
email: user@example.com
last_triggered_at: '2023-08-10T12:44:03.361158Z'
is_auto_translate_enabled: false
enabled_languages:
- en
- fr
- es
channels:
- id: <integer>
channel:
name: Email
slug: email
is_template_approval_needed: true
is_active: true
is_enabled: true
created_at: '2023-01-25T04:53:39.268299Z'
updated_at: '2023-01-25T04:53:39.404273Z'
disabled_languages: []
versions: []
tags:
- id: 01H9HPT1C5ABN61S12D85J9DJ7
name: tag
schema:
type: object
properties:
meta:
type: object
properties:
count:
type: integer
description: total template count
example: 1
limit:
type: integer
description: number of results per page
example: 10
offset:
type: integer
description: offset value passed in the request
results:
type: array
items:
type: object
properties:
id:
type: integer
description: internal template_id
name:
type: string
description: template name given by user
slug:
type: string
description: unique template slug generated from name
description:
type: string
nullable: true
description: template description given by user
is_active:
type: boolean
description: is true when atleast 1 template version is live for the channel
default_language:
type: object
properties:
name:
type: string
example: English
slug:
type: string
example: en
created_at:
type: string
format: date-time
description: template creation time
updated_at:
type: string
format: date-time
description: latest template modification time
updated_by:
type: object
properties:
name:
type: string
description: team member name who last updated the template
email:
type: string
format: email
description: team member email who last updated the template
last_triggered_at:
type: string
format: date-time
description: time when the workflow was last triggered
is_auto_translate_enabled:
type: boolean
example: false
enabled_languages:
type: array
items:
type: string
examples:
english:
summary: English language
value: en
hindi:
summary: Hindi language
value: hi
kannada:
summary: Kannada language
value: kn
channels:
type: array
description: array of all template enabled channels along with their language and active status
items:
type: object
tags:
type: array
items:
type: object
properties:
id:
type: string
description: unique tag identifier
example: 01H9HPT1C5ABN61S12D85J9DJ7
name:
type: string
description: tag name
example: tag
example: null
deprecated: false
tags:
- Template
/v2/{workspace}/template/:
get:
summary: List Templates
description: Retrieve a paginated list of templates in a workspace. Returns template metadata including name, slug, status, enabled channels, and linked workflows.
operationId: list-templates-v2
servers:
- url: https://management-api.suprsend.com
security:
- ServiceTokenAuth: []
x-codeSamples:
- lang: cURL
label: List Templates
source: "curl -X GET \"https://management-api.suprsend.com/v2/{workspace}/template/?mode=live\" \\\n --header 'Authorization: ServiceToken <token>' \\\n --header 'Content-Type: application/json'\n"
parameters:
- in: path
name: workspace
required: true
schema:
type: string
description: Workspace slug (e.g., `staging`, `production`).
- in: query
name: mode
schema:
type: string
enum:
- draft
- live
default: draft
description: Return draft or live version of templates.
- in: query
name: limit
schema:
type: integer
default: 20
description: Number of results per page.
- in: query
name: offset
schema:
type: integer
default: 0
description: Offset for pagination.
- in: query
name: q
schema:
type: string
description: Search by template name or slug.
responses:
'200':
description: Successfully retrieved list of templates
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
count:
type: integer
description: Total number of templates matching the query
example: 22
limit:
type: integer
example: 10
offset:
type: integer
example: 0
results:
type: array
items:
type: object
properties:
$schema:
type: string
description: Schema URL for template validation
example: https://schema.suprsend.com/template/v2/schema.json
name:
type: string
example: Order Confirmation Email
slug:
type: string
example: order-confirmation-email
description:
type: string
nullable: true
tags:
type: array
items:
type: string
enabled_channels:
type: array
items:
type: string
example:
- email
- inbox
status:
type: string
enum:
- draft
- active
example: active
version_no:
type: integer
nullable: true
hash:
type: string
commit_message:
type: string
nullable: true
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
active_at:
type: string
format: date-time
nullable: true
last_triggered_at:
type: string
format: date-time
nullable: true
description: Timestamp of the last workflow run that used this template
updated_by:
type: object
properties:
name:
type: string
email:
type: string
description: User who last updated the template
channels:
type: array
items:
type: object
properties:
channel:
type: string
is_active:
type: boolean
variants_count:
type: integer
example:
meta:
count: 22
limit: 10
offset: 0
results:
- $schema: https://schema.suprsend.com/template/v2/schema.json
slug: order-confirmation-email
created_at: '2026-04-07T10:39:28.502737Z'
last_triggered_at: '2026-04-07T16:45:34.549989Z'
name: Order Confirmation Email
description: Email template for order confirmation notifications
tags: []
enabled_channels:
- email
status: active
version_no: 4
hash: 637edaabc624d09db3793829ea872a3516ed0362ce79ee3875607fc7317381b9
commit_message: null
active_at: '2026-04-07T16:42:13.821446Z'
updated_at: '2026-04-07T16:42:13.827644Z'
updated_by:
name: Jane Smith
email: jane.smith@example.com
channels:
- channel: email
is_active: true
variants_count: 1
- $schema: https://schema.suprsend.com/template/v2/schema.json
slug: payment-confirmation
created_at: '2026-04-07T07:05:13.747248Z'
last_triggered_at: null
name: Payment Confirmation
description: Payment confirmation notification with order details
tags: []
enabled_channels:
- email
- inbox
status: active
version_no: 2
hash: ea6007ab4cffac8f110e15145eedbd40b5897fcc880717411416b9cdb64b170e
commit_message: null
active_at: '2026-04-07T07:27:53.708887Z'
updated_at: '2026-04-07T07:27:53.715438Z'
updated_by:
name: Alex Johnson
email: alex.johnson@example.com
channels:
- channel: email
is_active: true
variants_count: 1
- channel: inbox
is_active: true
variants_count: 1
'401':
$ref: '#/components/responses/AuthenticationError'
tags:
- Template
/v2/{workspace}/template/{template_slug}/:
get:
summary: Get Template Detail
description: Retrieve detailed information about a specific template including its metadata, enabled channels, and version info.
operationId: get-template-v2
servers:
- url: https://management-api.suprsend.com
security:
- ServiceTokenAuth: []
x-codeSamples:
- lang: cURL
label: Get Template
source: "curl -X GET \"https://management-api.suprsend.com/v2/{workspace}/template/{template_slug}/?mode=live\" \\\n --header 'Auth
# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/suprsend/refs/heads/main/openapi/suprsend-template-api-openapi.yml