WhatsAble
API v1Templates

Read a template and the variables a send needs

gethttps://api.whatsable.app/v1/templates/{id}
Build a request to copy

This page never sends a request. Fill in the fields, then copy the request and run it from your server.

Request
curl -X GET 'https://api.whatsable.app/v1/templates/string'

Authorization

bearerAuth
headerAuthorizationBearer <nfy_live_<32 characters>>

An API key from Settings > API keys, sent as Authorization: Bearer <key>.

Path Parameters

id*string

The template id.

Length1 <= length <= 64

Response Body

The template.

application/json
  1. response

A WhatsApp message template, with the variable schema a send needs.

object*string
id*string
Length1 <= length <= 64
name*string

Meta's identifier: lowercase letters, digits and underscores.

display_name*|

The name people read. Null for a template created outside Whatsable.

language*string

Meta's language code, such as en_US.

category*|

Meta's category, which Meta may change during review.

status*|

Meta's review status. Only approved templates send.

rejected_reason*|

Meta's reason when status is rejected, otherwise null.

waba_id*string

The WhatsApp Business Account the template belongs to. Every number on it can send it.

body*string

The body text, with its {{n}} variables.

parameter_format*|

positional ({{1}}) or named ({{customer_name}}). The API lists a named template but cannot send it yet.

variables*array<>

Every value a send must or may supply. Build a send's template.variables from it.

buttons*array<>
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Example Request
curl -X GET 'https://api.whatsable.app/v1/templates/string'
Example Response
{  "object": "template",  "id": "cm2v8t1a00001qz8habcd1234",  "name": "order_shipped",  "display_name": "Order shipped",  "language": "en_US",  "category": "utility",  "status": "approved",  "rejected_reason": null,  "waba_id": "9876543210",  "body": "Hi {{1}}, your order {{2}} is on its way.",  "parameter_format": "positional",  "variables": [    {      "key": "header_image",      "component": "header",      "type": "image",      "required": true,      "example": null    },    {      "key": "1",      "component": "body",      "type": "text",      "required": true,      "example": "Ana"    },    {      "key": "2",      "component": "body",      "type": "text",      "required": true,      "example": "#1042"    },    {      "key": "button_0",      "component": "button",      "type": "text",      "required": true,      "example": "1042"    }  ],  "buttons": [    {      "type": "url",      "text": "Track",      "url": "https://acme.example/t/{{1}}",      "phone": null    }  ],  "created_at": "2026-09-01T12:00:00Z",  "updated_at": "2026-09-02T08:00:00Z"}