Skip to main content
Endpoint · GET /templates/{name}/{language}
Read-only endpoint: it returns information and changes nothing. It is not sent inside the actions array — you call it directly.
Returns the detail of an approved template, identified by its natural key (name, language) — the same key Meta uses and the one you see in the dashboard. Along with the status and the category, the response carries the parameters block already computed: which variables the body takes, whether the header expects a parameter, and which URL buttons accept a dynamic value. That is the point of this lookup: Meta serializes the placeholders ({{1}}, {{2}}, …) inside the template’s components structure, and here they arrive already parsed. You never have to parse Meta’s shape to know what to fill in. The usual flow is read first, act after: you look up what the template expects, then send the action with the values in place.
Templates are created and approved in the dashboard, and that is where their name and language are shown. This reference does not publish the full list of a business’s templates, so you take the name from the dashboard.
Parameters All three live in the path. There are no query parameters.
  • slug — the business identifier in the URL (required). It must match the token’s business.
  • name — the template name exactly as it appears in the dashboard (required). Alphanumeric plus underscore. Any casing is accepted: the server normalizes it to lowercase.
  • language — Meta language code (required): es, es_MX, en_US, pt_BR. The server normalizes it to the lower_UPPER format.

Response

  • status — status in Meta. The public API only exposes APPROVED templates.
  • category — Meta category: MARKETING, UTILITY, or AUTHENTICATION.
  • body_text — the approved body, with its placeholders. It can be null.
  • parameters.body_variables — one entry per body placeholder, with its index (1-based position) and the example loaded in Meta when the template was approved (null if there is none). Empty array when the body has no variables.
  • parameters.header_parametertype (text, image, video, or document) and example. It is null when the header expects no parameter.
  • parameters.button_parameters — only URL buttons with a placeholder: the button index, the sub_type (url), and example. Quick-reply buttons do not appear here.

Example

A single read, with no side effects: the GET sends nothing and does not touch the conversation, it only returns what the template expects.
That response tells you the body takes two variables, so the send action looks like this:

Errors

The shared authentication, permission, and rate-limit codes are in Errors. The data this lookup returns feeds the template field of the send actions: Send message and Send quick reply or template. The template concept and the 24-hour window are covered in Templates.