> ## Documentation Index
> Fetch the complete documentation index at: https://developer.chatsyncs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bot Template Get

> List WhatsApp message templates created on a bot via the ChatSyncs API, including approval status and template JSON. Use when a developer asks how to programmatically check template approval status or pull a template's structure.

Returns the WhatsApp message templates created on a bot, including their approval status and
underlying template JSON.

## Example Request

```bash theme={null}
curl --request GET \
  --url 'https://platform.chatsyncs.com/api/v1/whatsapp/get/template/list?apiToken=API-KEY&phone_number_id=PHONE-NUMBER-ID'
```

<Tip>
  To create a template from code, use [Create Template](/developer-api/whatsapp/create-template), then follow its review with
  [Template Status](/developer-api/whatsapp/template-status), which asks WhatsApp directly. See
  [Creating a WhatsApp Message Template](https://help.chatsyncs.com/docs/create-whatsapp-template) for how templates are created and
  approved in the dashboard, and
  [Why Templates Get Rejected and How to Fix Them](https://help.chatsyncs.com/docs/whatsapp-template-rejected) for what
  each status means.
</Tip>

The response is a list, one object per template.

<Note>
  Each template has two ID-looking fields: **`id`** (a short ChatSyncs number, e.g. `48`) and
  **`template_id`** (a long Meta-assigned number, e.g. `437509121867805`). When sending with
  [Send Template Message](/developer-api/whatsapp/send-template-message), use the **`id`** as that
  request's `template_id`. Meta's long `template_id` is answered with *Message template not found*.
</Note>

<Warning>
  `template_json` is the request ChatSyncs sent to Meta and can include your WhatsApp access token.
  Treat the whole response as confidential and never paste it into a chat, a ticket or a log.
</Warning>


## OpenAPI

````yaml GET /whatsapp/get/template/list
openapi: 3.1.0
info:
  title: ChatSyncs Developer API
  version: 1.0.0
  description: >-
    REST API for sending WhatsApp messages and managing subscribers through
    ChatSyncs.


    **Authentication.** Send your key as the `apiToken` parameter, or as
    `Authorization: Bearer <key>` — both work on every endpoint **except Custom
    Fields List**, which only accepts the `apiToken` parameter (a Bearer header
    alone is answered with *The api token field is required.*). A wrong key
    returns HTTP 401 `{"status":"0","message":"Unauthenticated."}`; no key at
    all redirects to the login page.


    **Methods.** Every endpoint accepts both GET and POST with the same
    parameters, except Upload Media, which is POST-only. Use POST for anything
    that changes data.


    **Errors.** Failures usually come back as HTTP 200 with `"status":"0"` and
    the reason in `message`, so always check `status`. `status` is the string
    `"1"` or `"0"` on most endpoints and a boolean on a few.


    **Lists.** Endpoints that return rows put them in `message` as a list; there
    is no `data` field (Custom Fields List is the exception and uses `data`).
servers:
  - url: https://platform.chatsyncs.com/api/v1
security: []
paths:
  /whatsapp/get/template/list:
    get:
      tags:
        - WhatsApp API
      summary: Bot Template Get
      description: >-
        Returns every template on the WhatsApp number as a list. Use a
        template's `id` with Send Template Message. Each row also carries
        `variable_map` (how ChatSyncs fills its variables) and the Meta
        definition in `template_json`.
      operationId: getTemplateList
      parameters:
        - name: apiToken
          in: query
          required: true
          schema:
            type: string
            example: API-KEY
          description: >-
            Your ChatSyncs API key (not a WhatsApp/Meta access token). [Where to
            find it](/developer-api/finding-ids#api-token-apitoken).
        - name: phone_number_id
          in: query
          required: true
          schema:
            type: string
            example: PHONE-NUMBER-ID
          description: >-
            The WhatsApp account's phone number ID. [Where to find
            it](/developer-api/finding-ids#phone-number-id-phone_number_id).
      responses:
        '200':
          description: >-
            Standard ChatSyncs response. `status` is `"1"` on success and `"0"`
            on failure.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: '`"1"` = success, `"0"` = failure.'
                  message:
                    type: array
                    description: >-
                      The rows, as a list. There is no `data` field on this
                      endpoint.
                    items:
                      type: object
              examples:
                success:
                  summary: Success
                  value:
                    status: '1'
                    message:
                      - id: 428445
                        template_id: '919044791277254'
                        whatsapp_business_id: 11
                        template_name: order_confirmation
                        template_type: single
                        template_category: Utility
                        locale: en_US
                        header_type: text
                        header_subtype: text
                        header_content: Order Confirmed
                        body_content: >-
                          Hi there 👋


                          Your order has been confirmed! We'll send you a
                          tracking update soon. 📦
                        footer_content: Thanks for shopping with us
                        button_content: >-
                          {"type":"buttons","buttons":[{"type":"url","text":"Track
                          Order","url":"https:\/\/www.chatsyncs.com\/"}]}
                        template_json: >-
                          {"name": "order_confirmation", "language": "en_US",
                          "category": "UTILITY", "components": [{"type":
                          "header", "format": "text", "text": "Order
                          Confirmed"}, {"type": "body", "text": "Hi there"}]}
                        button_type: cta
                        variable_map: '{"header":[],"body":[],"button":[]}'
                        updated_at: '2026-08-19 07:04:40'
                        user_id: 1
                        status: Approved
                        system_template: '0'
                        map_needed: '0'
                        check_wp_type: general
                        raw_data: null
                error:
                  summary: A required field is missing
                  value:
                    status: '0'
                    message: The phone number id field is required.
        '401':
          description: >-
            `apiToken` is wrong. (With no token at all the API redirects to the
            login page with HTTP 302 instead of returning JSON.)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
              examples:
                unauthenticated:
                  summary: Wrong apiToken
                  value:
                    status: '0'
                    message: Unauthenticated.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.