Sign inGet Started

Get an SMS template version

GET
/v1/sms/templates/{template_ref}/versions/{version_id}
const version = await bird.smsTemplates.versions.get(
  "bird_otp_verification",
  "smv_01ky4x8e4genzb7way45txfkm1",
);
console.log(version.id, Object.keys(version.languages));
Odpowiedź200
{
  "id": "smv_01krdgeqcxet5s7t44vh8rt9mg",
  "template_id": "smt_01krdgeqcxet5s7t44vh8rt9mg",
  "version_number": 1,
  "status": "published",
  "revision": 1,
  "variables": [
    {
      "key": "order_number",
      "type": "text",
      "required": true,
      "constraint": "A string, number, or boolean."
    }
  ],
  "languages": {
    "en": {
      "text": "Your order {{ order_number }} is on its way.",
      "revision": 1,
      "content_hash": "sha256:3d948846f5f773fb7bed8ab81b57f3d0ff2cbff24cb549718f4d389f1ab0300a",
      "updated_at": "2026-09-10T09:00:00Z"
    }
  },
  "default_language": "en",
  "created_at": "2026-09-10T09:00:00Z",
  "published_at": "2026-09-10T09:00:00Z"
}

Returns one version with its variables and text in every language. A workspace draft is editable, while published workspace versions are immutable. A built-in template exposes its current catalogue content through a synthetic published version.

Parametry

template_refstring

The template's ID (smt_…) or slug.

version_idstring

The version to read or reset.

Treść odpowiedzi

id
string
wymagane

Template version ID.

template_id
string
wymagane

The template this version belongs to.

version_number
nullable integer
wymagane

Sequential publication number. Null for the draft; a built-in template reports 1.

status
string
wymagane

Whether the version is the editable draft or published. Published workspace versions are immutable and remain published after a later version goes live. A built-in template's synthetic published version projects the current catalogue entry.

Possible values: draft, published

revision
integer
wymagane

The version revision. A draft revision advances with each metadata or content change. Published workspace versions are frozen; a built-in template's synthetic version reports 0.

variables
array of object
wymagane

Variables inferred from the version's text. Every language in a publishable SMS version uses the same set. Built-in templates may apply additional typed constraints described by each variable.

Pokaż atrybuty podrzędne
variables.key
string
wymagane

The key this slot is filled by. When system is true it is the reserved bird key or a dotted path beneath it, such as bird.contact.first_name, and naming it in a send is rejected. Otherwise, on email and SMS it is the key you set in the send's parameters object, and on WhatsApp the name you repeat on the matching parameter inside components, or, for a template whose placeholders are positional, the position itself as 1, 2 and so on.

variables.type
string
wymagane

The value type this slot accepts. Built-in SMS templates use typed slots (code, amount and the rest), each of which rejects a value that does not match its constraint. Email, WhatsApp and workspace SMS templates use text. Workspace SMS parameters must be scalar values. Open enum: treat an unrecognized value as a future type rather than an error.

Possible values (may grow over time): code, ttl, count, ref, date, date_time, amount, currency, text

variables.required
boolean
wymagane

Whether the send must supply this variable. Omitting a required value returns 422 on email, SMS, and WhatsApp sends. Always false when system is true, because you do not supply that slot's value.

variables.constraint
string
wymagane

A plain-language description of what values this variable accepts. When system is true it names where Bird takes the value from instead, because there is no value for you to send.

variables.sensitive
boolean

Whether this slot's value is redacted from stored message content. A placeholder replaces the sensitive value in message history; transport queues can still carry the text needed for delivery.

variables.system
boolean

Whether the value comes from Bird rather than from the send. Absent means false. Only email templates have system slots, identified by the reserved bird key or a dotted path beneath it; every SMS and WhatsApp slot is yours to fill. A draft can also name a reserved key no Bird value fills, including bird itself: constraint says so, and publishing that draft is rejected.

languages
object
wymagane

Full content for each language, keyed by canonical BCP-47 tag.

default_language
string
wymagane

The language this version treats as its default.

created_at
nullable string
wymagane

When the version was created. Null for a built-in template's synthetic version.

published_at
nullable string
wymagane

When the version was published. Null for the draft and for a built-in template's synthetic version.

Przejdź do dokumentacji, przewodników i przykładów dotyczących tego tematu.