Skip to main content
Returns a Laravel-paginated list of WhatsApp templates registered in your workspace, along with Meta approval status.

Endpoint

GET /api/v1/{subdomain}/templates
Required ability: templates.read.

Headers

HeaderValue
AuthorizationBearer apitk_...
Acceptapplication/json

Path parameters

subdomain
string
required
Your workspace subdomain.

Query parameters

page
integer
1-indexed page number. Defaults to 1.
per_page
integer
Items per page. Defaults to 15, maximum 100.

Example request

curl "https://dash.xobito.com/api/v1/acme/templates" \
  -H "Authorization: Bearer apitk_your_token_here" \
  -H "Accept: application/json"

Example response

200 OK
{
  "status": "success",
  "data": {
    "current_page": 1,
    "data": [
      {
        "id": 11,
        "tenant_id": 13,
        "template_id": "123456789012345",
        "template_name": "order_confirmation",
        "language": "en_US",
        "status": "APPROVED",
        "category": "UTILITY",
        "header_data_format": "TEXT",
        "header_data_text": "Your order is confirmed",
        "header_params_count": 0,
        "body_data": "Hi {{1}}, your order {{2}} is confirmed.",
        "body_params_count": 2,
        "footer_data": "Thanks for shopping with us",
        "footer_params_count": 0,
        "buttons_data": null,
        "header_file_url": null,
        "header_variable_value": null,
        "body_variable_value": null,
        "template_type": null,
        "cards_json": null,
        "created_at": "2026-03-20T10:00:00.000000Z",
        "updated_at": "2026-03-20T10:00:00.000000Z"
      }
    ],
    "per_page": 15,
    "total": 5,
    "last_page": 1,
    "from": 1,
    "to": 5,
    "path": "https://dash.xobito.com/api/v1/acme/templates"
  }
}
See Data Types → WhatsApp Template for every field.
Only templates where status is APPROVED can be sent through POST /messages/template.

Error responses

StatusWhenBody
401Missing / invalid token{"status":"error","message":"Invalid API token"}
403Missing ability{"status":"error","message":"Token does not have the required ability: templates.read"}
429Rate limit{"message":"Too many requests","retry_after":45}
500Server error{"status":"error","message":"Failed to list templates"}