SuprSend Template API

The Template API from SuprSend — 12 operation(s) for template.

OpenAPI Specification

suprsend-template-api-openapi.yml Raw ↑
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