Everbridge Template APIs API

The Template APIs API from Everbridge — 6 operation(s) for template apis.

Operations 10

GET /templates/ List templates #
HEAD /templates/ query templates #
POST /templates/ Create Template #
GET /templates/{templateId} Get template #
PATCH /templates/{templateId} Partial Update Template #
DELETE /templates/{templateId} Delete Template #
PATCH /templates/{templateId}/{representationId} Update template representation #
POST /templates/convert Convert legacyTemplate #
GET /templates/{templateId}/plans Get template plans #
POST /templates/lookup Lookup templates by IDs #

Documentation

📖
Documentation
https://developers.everbridge.net/home/docs/overview
📖
APIReference
https://developers.everbridge.net/home/reference
📖
GettingStarted
https://developers.everbridge.net/home/docs/ebs-gs-guide
📖
Authentication
https://developers.everbridge.net/home/docs/ebs-gs-guide-authentication-types
📖
APIReference
https://developers.everbridge.net/home/reference/generate-token
📖
APIReference
https://developers.everbridge.net/home/reference/comms-apis
📖
APIReference
https://developers.everbridge.net/home/reference/authorization
📖
GettingStarted
https://developers.everbridge.net/home/docs/notifications
📖
APIReference
https://developers.everbridge.net/home/reference/cema-query-public
📖
APIReference
https://developers.everbridge.net/home/reference/cema-query-stream-1
📖
APIReference
https://developers.everbridge.net/home/reference/assets
📖
APIReference
https://developers.everbridge.net/home/reference/assets-query
📖
APIReference
https://developers.everbridge.net/home/reference/travel-risk-intelligence
📖
APIReference
https://developers.everbridge.net/home/reference/checks
📖
APIReference
https://developers.everbridge.net/home/reference/risk-events
📖
APIReference
https://developers.everbridge.net/home/reference/safety-devices-event
📖
APIReference
https://developers.everbridge.net/home/reference/snapcomms-authentication
📖
GettingStarted
https://support.snapcomms.com/hc/en-us/articles/19361020051867-Integration-Through-API-Overview

Specifications

Other Resources

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/everbridge-template-apis-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

everbridge-template-apis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Communications Template APIs API
  description: Unified Communications APIs
  version: '1.0'
servers:
- url: https://api.everbridge.net/managerapps/communications/v1
tags:
- name: Template APIs
paths:
  /templates/:
    get:
      tags:
      - Template APIs
      operationId: getTemplates
      summary: List templates
      description: List available Comms templates.
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Filters by the name of the template. Returns any category that contains any word provided in `name` by default.
      - in: query
        name: exactName
        schema:
          type: boolean
        description: Filters by the name of the template.Returns the template exact match the name.
      - in: query
        name: status
        schema:
          type: string
          enum:
          - DRAFT
          - LIVE
        description: Filter the record set by the  status of the template. If `status` is not provided, then the record set will include all templates.
      - in: query
        name: category
        schema:
          type: array
          items:
            type: string
        description: Filter the records returned by the categories. If `categories` is not specified, then the record set will include all categories of templates.
      - in: query
        name: eventType
        schema:
          type: array
          items:
            type: string
        description: Filter the records returned by the event types. If `eventTypes` is not specified, then the record set will include all eventTypes of templates.
      - in: query
        name: messageType
        schema:
          type: array
          items:
            type: string
            enum:
            - Conference
            - Quota
            - Polling
            - Standard
        description: Filter the records returned by the message types. If `messageType` is not specified, then the record set will include all messageType of templates.
      - in: query
        name: automatable
        schema:
          type: boolean
        description: Filters templates by whether they are automatable. A template is automatable when its status is `LIVE`, it has a non-empty message, and it has either public messages or recipients.
      - in: query
        name: responseId
        schema:
          type: string
        description: Filters templates by response management ID, which is resolved through the crisis event service before querying templates.
      - in: query
        name: sortBy
        schema:
          type: string
          enum:
          - created
          - updated
          - category
          - name
          - lastUsed
        description: 'The field to sort the result set by. See `sortDirection` for adjusting the order in which the result set is sorted.

          Defaults to `CREATED`.'
      - in: query
        name: sortDirection
        schema:
          type: string
          enum:
          - ASC
          - ASCENDING
          - DESC
          - DESCENDING
        description: 'The order by which to sort the result set by. `ASC` and `ASCENDING` have the same effect of ordering the values in ascending order; additionally, `DESC` and `DESCENDING` also have the same effect of ordering the values in descending order. See `sortBy` for details on changing which field is used in sorting.

          Defaults to `DESCENDING`.'
      - in: query
        name: pageSize
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 100
        description: The size of each page of search results. Defaults to ten records.
      - in: query
        name: pageNumber
        schema:
          type: integer
          format: int32
          minimum: 1
        description: The requested page number out of the total number of pages. Defaults to the first page, which is page number 1.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPaginatedResponse'
        '400':
          description: 'Invalid value for: header Authorization, Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: GET
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates
        responses:
          default:
            statusCode: '200'
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
    head:
      tags:
      - Template APIs
      operationId: Check matched templates exist or not
      summary: query templates
      description: Check matched templates exist or not.
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Filters by the name of the template.  If there is any record match the value ,will return 200.
      - in: query
        name: exactName
        schema:
          type: boolean
        description: Filters by the name of the template. If there is any record exact match the name ,will return 200.
      - in: query
        name: status
        schema:
          type: string
          enum:
          - DRAFT
          - LIVE
        description: Filter the record set by the status of template. If there is any record exact match the status ,will return 200
      - in: query
        name: category
        schema:
          type: array
          items:
            type: string
        description: Filter the records returned by the categories. If there is any record exact match the category ,will return 200.
      - in: query
        name: eventType
        schema:
          type: array
          items:
            type: string
        description: Filter the records returned by the event types. If there is any record exact match the status ,will return 200
      - in: query
        name: messageType
        schema:
          type: array
          items:
            type: string
            enum:
            - Conference
            - Quota
            - Polling
            - Standard
        description: Filter the records returned by the message types. If `messageTypes` is not specified, then the record set will include all messageType of templates.
      - in: query
        name: responseId
        schema:
          type: string
        description: Filters templates by response management ID, which is resolved through the crisis event service before querying templates.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: string
        '400':
          description: 'Invalid value for: header Authorization, Invalid value for: parameters'
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: There are not matched templates
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: HEAD
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates
        responses:
          default:
            statusCode: '200'
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
    post:
      tags:
      - Template APIs
      operationId: createTemplate
      summary: Create Template
      description: Create a new Comms template.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateCreateRequest'
            examples:
              Creating a Draft Template without Permissions and Variables:
                summary: Create a Draft template without permissions and variables.
                value:
                  name: May 2nd, 2015 - Earthquake - Galesburg, Michigan
                  description: Earthquake in Michigan.
                  priority: Normal
                  eventTypes:
                  - Earthquake
                  status: DRAFT
                  category: Disaster
                  publicSafety: true
                  message:
                    contents:
                    - type: Textual
                      contentType: text/plain
                      title: Earthquake in Galesburg, Michigan
                      content: An earthquake was reported in Galesburg, Michigan. Assess the situation and await further communication.
                      paths:
                      - CATEGORY:EMAIL
                  recipients:
                    contacts:
                    - type: ExternalId
                      externalId: jsmith1
                    - type: Id
                      id: '873461568734615'
                    - type: Name
                      firstName: Jimi
                      lastName: Hendrix
                    publicUsers:
                    - type: SemanticQuery
                      command:
                        type: SemanticQuery
                        subscribedToIds:
                        - 6858fdb7d988820e9d08db7b
              Creating a Live Template with Permissions and Variables:
                summary: Create a Live template.
                value:
                  name: May 2nd, 2015 - Earthquake - Galesburg, Michigan
                  description: Earthquake in Michigan.
                  priority: Normal
                  eventTypes:
                  - Earthquake
                  status: LIVE
                  category: Disaster
                  publicSafety: true
                  message:
                    contents:
                    - type: Textual
                      contentType: text/plain
                      title: Earthquake in Galesburg, Michigan
                      content: An earthquake was reported in Galesburg, Michigan. Assess the situation and await further communication.
                      paths:
                      - CATEGORY:EMAIL
                  recipients:
                    contacts:
                    - type: ExternalId
                      externalId: jsmith1
                    - type: Id
                      id: '873461568734615'
                    - type: Name
                      firstName: Jimi
                      lastName: Hendrix
                  permissions:
                    message: EDIT
                    settings: VIEW
                    recipients: ADD_REMOVE
                    publicMessage:
                      webWidget: VIEW
                      alertUs: NONE
                      genericOneWay: EDIT
                      audioBulletinBoard: VIEW
                      memberPortal: EDIT
                      network: VIEW
                      socialMedia: ADD_REMOVE
                  variables:
                  - variableId: location
                    value: Galesburg, Michigan
                    permission: EDIT
                    required: true
                    type: CUSTOM
                  - variableId: severity
                    value: High
                    permission: VIEW
                    required: false
                    type: CUSTOM
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
        '400':
          description: 'Invalid value for: header Authorization, Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: POST
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates
        responses:
          default:
            statusCode: '200'
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
  /templates/{templateId}:
    get:
      tags:
      - Template APIs
      operationId: getTemplate
      summary: Get template
      description: Retrieves the details of an existing Comms template
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateDetail'
        '400':
          description: Invalid templateId
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: resource could not be found
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: GET
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/{templateId}
        responses:
          default:
            statusCode: '202'
        requestParameters:
          integration.request.path.templateId: method.request.path.templateId
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
    patch:
      tags:
      - Template APIs
      operationId: partial update Template
      summary: Partial Update Template
      description: partial Updates an existing Comms template.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateUpdateRequest'
            examples:
              Update Template Status:
                summary: Update the status of a template to LIVE.
                value:
                  status: LIVE
              Update Recipients of the template:
                summary: Update the recipients of a template.
                value:
                  recipients:
                    contacts:
                    - type: ExternalId
                      externalId: newuser123
                    - type: Id
                      id: '987654321'
              Update Name and Description of the template:
                summary: Update the name and description of a template.
                value:
                  name: Updated Template Name
                  description: Updated description for the template.
        required: true
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
        '400':
          description: 'Invalid value for: header Authorization, Invalid value for templateId, Invalid value for : body'
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: Resource could not be found
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: PATCH
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/{templateId}
        responses:
          default:
            statusCode: '202'
        requestParameters:
          integration.request.path.templateId: method.request.path.templateId
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
    delete:
      tags:
      - Template APIs
      operationId: deleteTemplate
      summary: Delete Template
      description: Delete an existing Comms template.
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
        '400':
          description: 'Invalid value for: header Authorization, Invalid value for templateId'
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: Resource could not be found
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: DELETE
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/{templateId}
        responses:
          default:
            statusCode: '200'
        requestParameters:
          integration.request.path.templateId: method.request.path.templateId
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
  /templates/{templateId}/{representationId}:
    patch:
      tags:
      - Template APIs
      operationId: updateTemplateRepresentation
      summary: Update template representation
      description: Updates an existing template representation in an existing Comms template.
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          type: string
      - name: representationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
        '400':
          description: 'Invalid value for: header Authorization, Invalid value for: query parameter action'
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: PATCH
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/{templateId}/{representationId}
        responses:
          default:
            statusCode: '202'
        requestParameters:
          integration.request.path.templateId: method.request.path.templateId
          integration.request.path.representationId: method.request.path.representationId
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
  /templates/convert:
    post:
      tags:
      - Template APIs
      operationId: convert legacyTemplate
      summary: Convert legacyTemplate
      description: Convert a legacy template (including templates of type IC and MN) into a new Comms template structure. This API accepts the identifier of a legacy template and transforms its data into the standardized Comms template format, preserving relevant fields and content. The conversion process ensures compatibility with the Comms Template APIs, enabling legacy templates to be managed, updated, and used within the new system. Use this endpoint to migrate existing legacy templates to the Comms template.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateConvertRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateDetail'
        '400':
          description: Invalid  legacy type or id
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: resource could not be found
          content:
            text/plain:
              schema:
                type: string
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: POST
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/convert
        responses:
          default:
            statusCode: '200'
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
  /templates/{templateId}/plans:
    get:
      tags:
      - Template APIs
      operationId: get-template-plans
      summary: Get template plans
      description: Retrieve a list of plans using the template
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          type: string
        description: The identifier of the communication template
      responses:
        '200':
          description: An array of communication plans using the template.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanList'
              examples:
                plans:
                  value:
                  - id: 4e274d1d-c714-4a58-ac50-e28e424656f9
                    nane: plan 1
                    description: plan 1 for earthquake
                    phases:
                    - NEW
                  - id: 5f274d1d-c714-4a58-ac50-e28e424656f9
                    nane: plan 2
        '404':
          description: The communication could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
              examples:
                templateNotFound:
                  value:
                    errorCode: '404'
                    message: The specified template does not exist.
        '500':
          description: An internal error has occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: GET
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/{templateId}/plans
        responses:
          default:
            statusCode: '200'
        requestParameters:
          integration.request.path.templateId: method.request.path.templateId
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
  /templates/lookup:
    post:
      tags:
      - Template APIs
      operationId: lookupTemplates
      summary: Lookup templates by IDs
      description: Returns a list of templates matching the provided IDs.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateLookupRequest'
      responses:
        '200':
          description: A list of matching templates.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TemplateBase'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
        '500':
          description: An internal error has occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommsResponse'
      security:
      - API_Authorizer: []
      x-amazon-apigateway-integration:
        type: http_proxy
        connectionId: 11ofco
        httpMethod: POST
        uri: https://prod-us-us-east-1-0-os-nginx.ue1-0.prod-us.prod.us-east-1.evbg.io/cem-comms/communications/templates/lookup
        responses:
          default:
            statusCode: '200'
        passthroughBehavior: when_no_match
        connectionType: VPC_LINK
components:
  schemas:
    MessageContent:
      required:
      - contents
      type: object
      description: Notification message content that is included within the communication. If a `templateId` is present, this value becomes optional and will override the template's message content if provided.
      properties:
        conferenceBridgeId:
          type: string
          description: The ID of a conference bridge for recipients to join. Retrieve conference bridge IDs from the [Everbridge List Conference Bridges API](https://developers.everbridge.net/internal/reference/ebs-list-conference-bridges). Note that this property is mutually exclusive with `questionnaire`; both may not be set in the same communication.
        questionnaire:
          type: object
          description: A list of answers to a provided question for recipients to respond with during confirmation. Note that this property is mutually exclusive with `conferenceBridgeId`; both may not be set in the same communication.
          required:
          - answers
          properties:
            answers:
              type: array
              items:
                type: object
                required:
                - name
                properties:
                  name:
                    type: string
                    description: The user-friendly text of the questionnaire answer.
                  responseQuota:
                    type: integer
                    description: Defines a minimum number of recipients that must respond with this questionnaire answer.
            questionText:
              type: string
              description: The text prompt to display to recipients when they are responding to the questionnaire.
        contents:
          type: array
          description: The bodies of the notification message shown to recipients. There may be multiple `Textual` message bodies but at most one `Audio` message body and/or at most one `WebPage` message body.
          items:
            anyOf:
            - $ref: '#/components/schemas/AudioMessageBody'
            - $ref: '#/components/schemas/TextualMessageBody'
            - $ref: '#/components/schemas/WebPageMessageBody'
    AudioBulletinBoardPublicMessage:
      type: object
      description: The ABB public message content.
      required:
      - title
      - body
      - settingId
      properties:
        title:
          type: string
          description: The title of abb.
        body:
          type: string
          description: The core content of abb.
        settingId:
          type: string
          description: The setting id of abb that defined in setting page.
        audioKey:
          type: string
          description: 'The system-generated audio Key referring to the audio file for this message. '
        expires:
          type: string
          description: How long the message expires. This is in formatted in the ISO 8601 "duration" format.
          example: PT5H
    AlertUsSetting:
      type: object
      description: The rest alert us setting content
      required:
      - id
      - profileId
      properties:
        id:
          type: string
          description: The identity of alert us rest setting that pre-defined on alert us setting page.
        profileId:
          type: string
          description: The profile identity of alert us rest setting that pre-defined on alert us setting page..
        duration:
          type: string
          description: The duration of the message,This is in formatted in the ISO 8601 "duration" format.
          example: PT5H
        groupNames:
          type: array
          description: The group name of alert us.
          items:
            type: string
    ApiSettings:
      type: object
      description: Settings that adjust how the communication is sent to the recipients.
      properties:
        id:
          type: string
          description: An optional ID of a preexisting set of settings. If provided along with any other settings in this object, the settings are merged so that any settings defined in this request override those stored in the settings at the given ID.
        defaultLanguage:
          $ref: '#/components/schemas/SupportedLanguages'
        sender:
          $ref: '#/components/schemas/SenderSettings'
        delivery:
          $ref: '#/components/schemas/DeliverySettings'
        recipientInteraction:
          $ref: '#/components/schemas/RecipientSettings'
    ContactRecipientId:
      type: object
      description: Refers to a contact recipient by its contact ID.
      required:
      - type
      - id
      properties:
        type:
          type: string
          description: Must be set to exactly `Id`.
          enum:
          - Id
        id:
          type: string
          description: The contact ID from the [Everbridge Contacts API](https://developers.everbridge.net/internal/reference/ebs-list-contacts).
    TextOnlyPathCategory:
      type: string
      description: A group of contact path types that only support textual messaging.
      enum:
      - CATEGORY:BUSINESSMESSAGINGAPPS
      - CATEGORY:COMMON
      - CATEGORY:EMAIL
      - CATEGORY:MOBILEAPP
      - CATEGORY:PLAINTEXT
      - CATEGORY:SMS
    ApiDeliveryPathPrompt:
      type: object
      description: The unique description, provided by the organization, for the delivery path.
      required:
      - type
      - prompt
      properties:
        type:
          type: string
          description: Must be set to exactly `Prompt`.
          enum:
          - Prompt
        prompt:
          type: string
          description: The unique description, provided by the organization, for the delivery path.
    WebPageMessageBody:
      allOf:
      - $ref: '#/components/schemas/LaunchMessageBody'
      - type: object
        description: ''
        required:
        - type
        - content
        - paths
        properties:
          attachments:
            type: array
            description: A set of system-generated IDs representing previously uploaded attachments. Note that attachments are aggregated across all message bodies (i.e. every message body gets the same attachments).
            items:
              type: string
          type:
            type: string
            description: A generic classifier of the message body, further refined by `contentType`. Must be set to exactly `WebPage`.
            enum:
            - WebPage
          content:
            type: string
            description: Text content to use as the body of the web page.
          paths:
            type: array
            description: A set of contact delivery path types or path categories that this message body should be sent to.
            items:
              type: string
              enum:
              - CATEGORY:SMS
          usePrefix:
            type: boolean
            description: If set to true, will prefix the message with organization-specific text prior to including the web page URL. Defaults to false.
          additionalContent:
            type: string
            description: Optional additional plain text content to send with the initial message. Not included in the web page.
    PlanList:
      type: array
      items:
        $ref: '#/components/schemas/Plan'
    TemplateDetail:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        organizationId:
          type: string
        description:
          type: string
        status:
          type: string
        priority:
          type: string
        publicSafety:
          type: boolean
        category:
          type: string
        eventType:
          type: string
        type:
          type: string
        created:
          type: string
        createdBy:
          type: string
        createdByName:
          type: string
        updated:
          type: string
        updatedBy:
          type: string
        updatedByName:
          type: string
        createdRoleId:
          type: string
        updatedRoleId:
          type: string
   

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/everbridge/refs/heads/main/openapi/everbridge-template-apis-api-openapi.yml