---
title: "Get template"
method: GET
path: "/v1/whatsapp/templates/{templateName}"
tags: ["WhatsApp"]
---

# Get template

`GET /v1/whatsapp/templates/{templateName}`

Retrieve one message template variant by name.

Meta stores one template per **name + language**, so a name identifies a family of variants,
each with its own Meta id. Pass `language` to address one variant. Without it, a name with a
single variant resolves to that variant; a name with several returns `409 ambiguous_template`
with `details.languages`. A bare language (`es`) matches a single regional variant (`es_ES`);
if the family has several regional variants for it, that is also a 409. A full code (`es_ES`)
must match exactly. Variants in `PENDING_DELETION` are not part of the family.

## Path parameters

- `templateName` string, required

## Query parameters

- `accountId` string, required
- `language` string

## Response `200`

Template retrieved successfully

- object
  - `success` boolean
  - `template` object
    - `id` string — Meta template id. Unique per language variant; usable on /v1/whatsapp/templates/id/{templateId}.
    - `name` string
    - `status` string
    - `category` string
    - `language` string — The variant actually returned.
    - `components` object[]
    - `message_send_ttl_seconds` integer — Only when a custom TTL is set; absent while the category default applies.
    - `rejected_reason` string — Only when status is REJECTED.
    - `quality_score` object — Post-approval quality (GREEN/YELLOW/RED), when Meta reports one.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Account not found, or no template with that name (and language, when given). details.languages lists the family's languages when the name exists (code template_not_found).
- `409` — The template name exists in several languages and no language was given (code ambiguous_template). details.languages lists them.
- `502` — Meta rejected the request or was unreachable. Meta 4xx statuses are forwarded as-is.

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status
- **2026-09-08** `d7a8fa118ef0` — 1 info
  - added the optional property `template/message_send_ttl_seconds` to the response with the `200` status
- **2026-08-29** `e6f7a453bfb1` — 1 breaking, 5 info
  - removed the media type `application/json` for the response with the status `404`
  - added the new optional `query` request parameter `language`
  - added the media type `application/json` for the response with the status `400`
  - added the non-success response with the status `409`
  - …2 more

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/whatsapp/templates/:templateName/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/a0d8f21b5abe?raw)
