Sign inGet Started

Get a template version

GET
/v1/whatsapp/templates/{template_ref}/versions/{version_id}
const version = await bird.whatsapp.templates.versions.get(
  "bird_otp",
  "wav_01ky4x8e4genzb7way45txfkm1",
);
console.log(version.id, Object.keys(version.languages));
Resposta200
{
  "id": "wav_01krdgeqcxet5s7t44vh8rt9mg",
  "template_id": "wat_01krdgeqcxet5s7t44vh8rt9mg",
  "version_number": 4,
  "submitted_at": "2026-07-20T11:04:00Z",
  "variables": [
    {
      "type": "code"
    }
  ],
  "languages": {
    "en": {
      "status": "approved",
      "components": [
        {
          "type": "body",
          "text": "Your verification code is {{1}}.",
          "example_parameters": [
            {
              "type": "text",
              "text": "123456"
            }
          ]
        }
      ]
    }
  },
  "created_at": "2026-07-20T10:31:00Z"
}

Returns one version: the content of every language it holds and what its submission did with each.

Parâmetros

template_refstring

Template ID (wat_ prefix) or slug. A value that parses as a valid ID resolves by ID; any other value resolves as a slug.

version_idstring

ID of the template version (wav_ prefix), as returned by the version list.

Payload de resposta

id
string
obrigatório

Stable Bird identifier for the version.

template_id
string
obrigatório

The template this version belongs to.

version_number
nullable integer

The version's sequence number, assigned when it is submitted. Null on a draft, which has not been submitted and has no place in the sequence yet.

submitted_at
nullable string
obrigatório

When this version was submitted to Meta. Null on a draft, which has not been submitted, and null for a built-in template's version, which Bird ships already approved rather than submitting on your behalf.

variables
array of object

The variable slots this version's content fills in from the values you supply when sending. Combined across every language, because languages need not declare the same slots: if the English body uses first_name and the French one uses last_name, both appear here. A template with named parameters keys them by name; a positional one keys them by their {{n}} position, as 1, 2 and so on. Supply the slots the language you send declares, by these keys in template.parameters or through components.

Mostrar atributos secundários
languages
object
obrigatório

This version's content, keyed by BCP-47 language tag, with what its submission did with each language.

created_at
nullable string
obrigatório

When the version was opened. Null for a built-in template's version, which Bird ships rather than stores.