Dotdigital WhatsApp templates API

The WhatsApp templates API from Dotdigital — 2 operation(s) for whatsapp templates.

Operations 2

GET /cpaas/channels/whatsapp/businessaccounts/{wabaId}/templates Get WhatsApp templates
GET /cpaas/channels/whatsapp/businessaccounts/{wabaId}/templates/{templateId} Get WhatsApp template

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/dotdigital-whatsapp-templates-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

dotdigital-whatsapp-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: WhatsApp Channel WhatsApp templates API
  description: 'Provides methods for configuring and managing WhatsApp Cloud API channels

    within an API Space. Supports creating and retrieving WhatsApp

    configurations, registering and removing phone numbers, and retrieving

    WhatsApp message templates from a given WhatsApp Business Account.'
  version: 1.0.1
servers:
- url: https://{region}-api.dotdigital.com
  variables:
    region:
      description: The Dotdigital region id your account belongs to
      enum:
      - r1
      - r2
      - r3
      default: r1
security:
- basicAuth: []
tags:
- name: WhatsApp templates
paths:
  /cpaas/channels/whatsapp/businessaccounts/{wabaId}/templates:
    get:
      tags:
      - WhatsApp templates
      summary: Get WhatsApp templates
      description: Retrieves the WhatsApp templates for a specific WABA.
      parameters:
      - name: wabaId
        in: path
        description: The unique WhatsApp Business Account (WABA) identifier.
        required: true
        schema:
          $ref: '#/components/schemas/wabaId'
      responses:
        '200':
          description: The WhatsApp templates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_200'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '500':
          description: Internal server error
  /cpaas/channels/whatsapp/businessaccounts/{wabaId}/templates/{templateId}:
    get:
      tags:
      - WhatsApp templates
      summary: Get WhatsApp template
      description: Retrieves a WhatsApp template for a specific WABA.
      parameters:
      - name: wabaId
        in: path
        description: The unique WhatsApp Business Account (WABA) identifier.
        required: true
        schema:
          $ref: '#/components/schemas/wabaId'
      - name: templateId
        in: path
        description: The unique WhatsApp template identifier.
        required: true
        schema:
          $ref: '#/components/schemas/wabaId'
      responses:
        '200':
          description: The WhatsApp templates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/whatsAppTemplate'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: The WhatsApp template was not found.
        '500':
          description: Internal server error
components:
  schemas:
    inline_response_200_paging_cursors:
      required:
      - after
      - before
      type: object
      properties:
        before:
          type: string
          description: Continuation token for the previous page.
          example: QVFIU1pNYzBEY2dNM0pjNlQ5Mm0wS1FSNnRBbkJSS0hhcTdka1FXdDBCV1kxYmMyMS1DZADBZAMTd1aHhRaWEta0RXVFNSQXFKVENYQWhyVW50bndDMUEwbXhn
        after:
          type: string
          description: Continuation token for the next page.
          example: QVFIU2RLSVkwNzNaSkpGYjk0YnhGWE1iMHpJS0tTRzFpRzNMRzFhVUVfUHVjd0UwYUdOSFpCOC1qOGtlTWNlSnktTEk2enhyWnV6YWItSDZANV0xIbVJCVk1n
    whatsAppTemplate:
      required:
      - category
      - components
      - id
      - language
      - name
      - parameter_format
      - status
      - sub_category
      type: object
      properties:
        name:
          type: string
          description: The templates name.
          example: 2025_april_promo
        parameter_format:
          type: string
          description: Whether the parameters for the template use positonal references or named references.
          example: POSITIONAL
          enum:
          - POSITIONAL
          - NAMED
        components:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/whatsAppComponent'
            - title: Carousel card
              required:
              - cards
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of the component.
                  enum:
                  - CAROUSEL
                cards:
                  minItems: 1
                  type: array
                  description: Cards for the carousel.
                  items:
                    required:
                    - components
                    type: object
                    properties:
                      components:
                        $ref: '#/components/schemas/whatsAppComponent'
              description: Carousel card content
            - title: Other component
              type: object
              description: A different type of component.
        language:
          type: string
          description: The language code for the template.
          example: en_US
        status:
          type: string
          description: The Meta review status of the template.
          example: APPROVED
          enum:
          - PENDING
          - APPROVED
          - REJECTED
          - PAUSED
          - DISABLED
        category:
          type: string
          description: The templates category.
          example: MARKETING
          enum:
          - MARKETING
          - UTILITY
          - AUTHENTICATION
        sub_category:
          type: string
          description: The sub category for the template.
          example: CUSTOM
        id:
          type: string
          description: The unique id for the template.
          example: '920070352646140'
      description: WhatsApp templates
    whatsAppComponent:
      title: WhatsApp template component
      type: object
      properties:
        type:
          type: string
          description: The type of the component.
          enum:
          - BODY
          - FOOTER
          - HEADER
          - BUTTONS
        text:
          type: string
          description: The text for the component.
          example: My text
        format:
          type: string
          example: TEXT
          enum:
          - TEXT
          - IMAGE
          - VIDEO
          - GIF
          - DOCUMENT
          - LOCATION
        parameters:
          type: array
          description: Additional component parameters.
          items:
            oneOf:
            - title: Location details
              required:
              - location
              - type
              type: object
              properties:
                type:
                  type: string
                  enum:
                  - location
                location:
                  required:
                  - address
                  - latitude
                  - longitude
                  - name
                  type: object
                  properties:
                    latitude:
                      type: string
                      example: '37.44211676562361'
                    longitude:
                      type: string
                      example: '122.16155960083124'
                    name:
                      type: string
                      description: The locations description.
                      example: Philz Coffee
                    address:
                      type: string
                      description: Location address.
                      example: 101 Forest Ave, Palo Alto, CA 94301
              description: Location details
            - title: Any other parameters
              type: object
              description: Any other template parameters.
        example:
          oneOf:
          - title: Named parameters
            required:
            - body_text_named_params
            type: object
            properties:
              body_text_named_params:
                minItems: 1
                type: array
                description: Create an example of each parameter.
                items:
                  required:
                  - example
                  - param_name
                  type: object
                  properties:
                    param_name:
                      type: string
                      description: The parameters name.
                      example: booking_date
                    example:
                      type: string
                      description: An example value for the parameter.
                      example: 2nd February
            description: Example of the parameter(s) usage when using **named** parameters
          - title: Positional parameters
            required:
            - body_text
            type: object
            properties:
              body_text:
                minItems: 1
                type: array
                description: Create an example of each parameter in the order they appear in the template.
                items:
                  type: string
                  description: An example value for the parameter.
            description: Example of the parameter(s) usage when using **positional** parameters
        buttons:
          minItems: 1
          type: array
          description: Buttons definitions for the template.
          items:
            oneOf:
            - title: Other button definiton.
              type: object
            - title: OTP buttons
              required:
              - otp_type
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - OTP
                otp_type:
                  type: string
                  description: The type of OTP.
                  enum:
                  - ONE_TAP
                  - ZERO_TAP
                  - COPY_CODE
                supported_apps:
                  minItems: 1
                  type: array
                  description: The apps that can use the OTP, needed only for One-tap and zero-tap buttons only.
                  items:
                    required:
                    - package_name
                    - signature_hash
                    type: object
                    properties:
                      package_name:
                        type: string
                        description: The apps package name.
                        example: com.example.luckyshrub
                      signature_hash:
                        type: string
                        description: The signature hash for the app.
                        example: K8a/AINcGX7
              additionalProperties: true
            - title: Copy code buttons
              required:
              - example
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - COPY_CODE
                example:
                  oneOf:
                  - minItems: 1
                    type: array
                    description: If using parameter(s) in your URL then you must provide an example value here.
                    items:
                      maxLength: 2000
                      type: string
                      description: Parameter example value
                  - maxLength: 15
                    type: string
                    description: For `COPY_CODE` buttons provide the value to be copied.
                    example: 250FF
              additionalProperties: true
            - title: Phone number buttons
              required:
              - phone_number
              - text
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - PHONE_NUMBER
                text:
                  maxLength: 25
                  type: string
                  description: The text to show on the button.
                  example: Yes, sign me up
                phone_number:
                  maxLength: 20
                  type: string
                  description: The phone number to dial in [E164 format](https://en.wikipedia.org/wiki/E.164).
              additionalProperties: true
            - title: Single product view buttons
              required:
              - text
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - SPM
                text:
                  maxLength: 25
                  type: string
                  description: The text to show on the button.
                  example: View
              additionalProperties: true
            - title: Multi product view buttons
              required:
              - text
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - MPM
                text:
                  maxLength: 25
                  type: string
                  description: The text to show on the button.
                  example: View products
              additionalProperties: true
            - title: Quick reply buttons
              required:
              - text
              - type
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - QUICK_REPLY
                text:
                  maxLength: 25
                  type: string
                  description: The text to show on the button.
                  example: Unsubscribe
              additionalProperties: true
            - title: URL buttons
              required:
              - text
              - type
              - url
              type: object
              properties:
                type:
                  type: string
                  description: The type of button based on it's action.
                  enum:
                  - URL
                text:
                  maxLength: 25
                  type: string
                  description: The text to show on the button.
                  example: Yes, sign me up
                url:
                  maxLength: 2000
                  type: string
                  description: URL of website that loads in the device’s default web browser when the button is tapped by the user. Supports 1 variable, appended to the end of the URL string e.g. {{1}}
                  format: uri
                example:
                  oneOf:
                  - minItems: 1
                    type: array
                    description: If using parameter(s) in your URL then you must provide an example value here.
                    items:
                      maxLength: 2000
                      type: string
                      description: Parameter example value
                  - maxLength: 15
                    type: string
                    description: For `COPY_CODE` buttons provide the value to be copied.
                    example: 250FF
              additionalProperties: true
    wabaId:
      type: string
      description: The unique WhatsApp Business Account (WABA) identifier.
      example: '226114410888722'
    inline_response_200_paging:
      type: object
      properties:
        cursors:
          $ref: '#/components/schemas/inline_response_200_paging_cursors'
      description: Pagination cursors
    inline_response_200:
      required:
      - data
      - paging
      type: object
      properties:
        data:
          type: array
          description: WhatsApp registered templates
          items:
            $ref: '#/components/schemas/whatsAppTemplate'
        paging:
          $ref: '#/components/schemas/inline_response_200_paging'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
x-readme:
  samples-languages:
  - curl
  - csharp
  - java
  - node
  - php
  - python
  - ruby
  explorer-enabled: true
  proxy-enabled: true
  samples-enabled: true