<Intro>

<EndpointHeader />

<Description>

Returns a single WhatsApp message template by its id.

</Description>

</Intro>

<Parameters in="path">

<Parameter name="template_id" type="string">

<Description>

Template ID.

</Description>

</Parameter>

</Parameters>

<Payload kind="response">

<Field name="id" type="object" required>

<Description>

Stable Bird identifier for the template.

</Description>

</Field>

<Field name="name" type="object" required>

<Description>

The template's stable handle. Pass it as the template reference when sending.

</Description>

</Field>

<Field name="description" type="nullable string">

<Description>

Optional description of the template's purpose. Null when unset.

</Description>

</Field>

<Field name="scope" type="string" required>

<Description>

Whether the template is a built-in Bird template (`system`) or one your workspace authored (`workspace`).

</Description>

<Description>

Possible values: `system`, `workspace`

</Description>

</Field>

<Field name="language" type="object" required />

<Field name="category" type="object" required>

<Description>

Content classification applied to messages sent from this template.

</Description>

</Field>

<Field name="status" type="object" required>

<Description>

The template's review and health status.

</Description>

</Field>

<Field name="components" type="array of object" required>

<Description>

The content blocks that make up the template, in display order.

</Description>

<FieldChildren kind="response">

<Field name="type" type="string" prefix="components." required>

<Description>

The content block's type within the template.

</Description>

<Description>

Possible values (may grow over time): `header`, `body`, `footer`, `buttons`

</Description>

</Field>

<Field name="text" type="string" prefix="components.">

<Description>

The block's text content, with any variable placeholders shown inline. Present when the block carries text.

</Description>

</Field>

<Field name="example_parameters" type="array of object" prefix="components.">

<Description>

Example values for this block's variables, in placeholder order (one per `{{n}}`). Use them to see what a filled message looks like. Present when the block has variables.

</Description>

<FieldChildren kind="response">

<Field name="type" type="object" prefix="components.example_parameters." required>

<Description>

The kind of value this parameter accepts.

</Description>

</Field>

<Field name="text" type="string" prefix="components.example_parameters.">

<Description>

An example value for a text parameter. Present when `type` is `text`.

</Description>

</Field>

<Field name="name" type="string" prefix="components.example_parameters.">

<Description>

The named placeholder this example fills, for templates that use named parameters. Absent for system templates, which use positional parameters.

</Description>

</Field>

</FieldChildren>

</Field>

<Field name="buttons" type="array of object" prefix="components.">

<Description>

The buttons attached to this block. Present when the block carries buttons.

</Description>

<FieldChildren kind="response">

<Field name="type" type="string" prefix="components.buttons." required>

<Description>

The button's behavior type.

</Description>

<Description>

Possible values (may grow over time): `url`, `otp`

</Description>

</Field>

<Field name="otp_type" type="string" prefix="components.buttons.">

<Description>

How the recipient receives the one-time passcode. Present on authentication-template OTP buttons.

</Description>

<Description>

Possible values (may grow over time): `copy_code`

</Description>

</Field>

<Field name="text" type="string" prefix="components.buttons." required>

<Description>

The button's label text.

</Description>

</Field>

<Field name="url" type="string" prefix="components.buttons.">

<Description>

The URL the button opens, with any variable placeholder shown inline. Present on link buttons.

</Description>

</Field>

<Field name="example_parameters" type="array of object" prefix="components.buttons.">

<Description>

Example values for this button's variables, in placeholder order. Present when the button URL has variables.

</Description>

<FieldChildren kind="response">

<Field name="type" type="object" prefix="components.buttons.example_parameters." required>

<Description>

The kind of value this parameter accepts.

</Description>

</Field>

<Field name="text" type="string" prefix="components.buttons.example_parameters.">

<Description>

An example value for a text parameter. Present when `type` is `text`.

</Description>

</Field>

<Field name="name" type="string" prefix="components.buttons.example_parameters.">

<Description>

The named placeholder this example fills, for templates that use named parameters. Absent for system templates, which use positional parameters.

</Description>

</Field>

</FieldChildren>

</Field>

</FieldChildren>

</Field>

</FieldChildren>

</Field>

</Payload>