Templates are pre-approved message formats that ensure your WhatsApp communications comply with WhatsApp Business policies while maintaining consistent messaging with your audience.

WhatsApp templates are essential for business messaging, enabling you to send structured communications to customers while complying with WhatsApp’s policies. This guide covers how to retrieve your templates using our API.

Overview

Templates serve as the foundation for all non-session messages on WhatsApp Business. Each template:

  • Must be pre-approved by WhatsApp before use
  • Belongs to a specific category (Marketing, Utility, Authentication)
  • Can include variables that personalize messages for each recipient
  • Supports multiple languages and formats (text, media, interactive components)

Try it in the API Reference

Experiment with the Get Templates API and view responses in real-time

Get Templates

Retrieve all WhatsApp templates associated with your account, including approval status, variables, and other key properties.

Endpoint

GET https://api.insightssystem.com/api:AFRA_QCy/get_templates

Authentication

All API requests require authentication using your API key. Never share your API keys in client-side code.

Include your API key in all requests using Bearer authentication:

Authorization: Bearer YOUR_API_KEY

Response

The API returns an array of template objects, each containing detailed information about your WhatsApp templates.

id
integer

Unique identifier for the template

user_id
string

UUID of the account that owns the template

name
string

Unique name identifier of the template

category
string
type
string

Format type of the template (text, media, etc.)

language
string

Language code (e.g., “en”, “en_US”)

status
string
variable_counts
integer

Number of variable placeholders in the template

template_formate
string

Format string showing variable placement (e.g., “[b:7]”)

template_id
string

UUID of the template in our system

Example Request

curl -X GET \
  https://api.insightssystem.com/api:AFRA_QCy/get_templates \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Example Response

[
  {
    "id": 300,
    "user_id": "a9d7c221-62d2-43b5-810a-8a1a71c7820c",
    "name": "exclusive_offer_alert",
    "category": "MARKETING",
    "type": "text",
    "language": "en",
    "status": "APPROVED",
    "variable_counts": 7,
    "template_formate": "[b:7]",
    "template_id": "6f6e4113-cc8a-4fbe-b98d-2c631d299c6b"
  },
  {
    "id": 150,
    "user_id": "a9d7c221-62d2-43b5-810a-8a1a71c7820c",
    "name": "general_communication_message",
    "category": "UTILITY",
    "type": "text",
    "language": "en",
    "status": "REJECTED",
    "variable_counts": 0,
    "template_formate": "[]",
    "template_id": "75521873-72cd-4c33-9072-c8b901d6f687"
  }
]

Response Codes

Working with Templates

1

Retrieve templates

Use the Get Templates API to fetch all templates associated with your account.

2

Check template status

Verify that your templates are in the “APPROVED” status before using them.

3

Identify variable placeholders

Note the variable_counts and template_formate to understand how many variables need to be provided when sending a message.

4

Send messages

Use the template ID and required variables to send messages via the Send Template API.

Template Best Practices

Variable Management

Keep track of which variables correspond to which placeholders in your template. Consider creating a mapping in your application.

Template Versioning

Templates can’t be edited after submission, but you can create new versions. Use a versioning system in your template names (e.g., welcome_v2).

Status Monitoring

Regularly check the status of your templates, as WhatsApp can change approval statuses based on user feedback.

Language Support

Create templates in multiple languages to communicate with your global audience in their preferred language.

Rate Limiting

This API endpoint is subject to the following rate limits:

PlanRate Limit
Free60 requests per hour
Pro600 requests per hour
EnterpriseCustom limits

If you exceed your rate limit, the API will return a 429 status code. Implement exponential backoff and retries in your code to handle rate limiting gracefully.

FAQs

Need help?

Our support team is available 24/7 to assist with template issues, API integration, or any other questions.

2024-03-15
v1.2.0

Enhanced Template API

  • Added support for interactive templates
  • Improved error handling for better debugging
  • New language options added for global messaging
2023-11-10
v1.1.0

Template API Updates

  • Added multiple code examples
  • Expanded response fields
  • Introduced rate limiting documentation