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));version = client.sms_templates.versions.get(
"bird_otp_verification", "smv_01ky4x8e4genzb7way45txfkm1"
)
print(version.id, list(version.languages))version, err := client.SmsTemplates.Versions.Get(context.Background(), "bird_otp_verification", "smv_01ky4x8e4genzb7way45txfkm1")
if err != nil {
log.Fatal(err)
}
if version.Languages == nil {
log.Fatal("version has no languages")
}
fmt.Println(version.Id, len(*version.Languages))$version = $bird->smsTemplates->versions->get(
'bird_otp_verification',
'smv_01ky4x8e4genzb7way45txfkm1',
);
echo $version->getId(), ' ', count($version->getLanguages() ?? []);bird sms templates versions get <template-ref> <version-id>curl -X GET "https://us1.platform.bird.com/v1/sms/templates/{template_ref}/versions/{version_id}" \
-H "Authorization: Bearer $TOKEN"Resposta200
{
"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.
Parâmetros
template_ref
string
The template's ID (smt_…) or slug.
version_id
string
The version to read or reset.
Payload de resposta
id
string
obrigatório
Template version ID.
template_id
string
obrigatório
The template this version belongs to.
version_number
nullable integer
obrigatório
Sequential publication number. Null for the draft; a built-in template reports 1.
status
string
obrigatório
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
obrigatório
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
obrigatório
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.
Mostrar atributos secundários
variables.key
string
obrigatório
The key this slot is filled by. On email and SMS it is the key you set in the send's parameters object. On WhatsApp it is 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
obrigatório
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
obrigatório
Whether the send must supply this variable. Omitting a required value returns 422 on email, SMS, and WhatsApp sends.
variables.constraint
string
obrigatório
A plain-language description of what values this variable accepts.
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.
languages
object
obrigatório
Full content for each language, keyed by canonical BCP-47 tag.
default_language
string
obrigatório
The language this version treats as its default.
created_at
nullable string
obrigatório
When the version was created. Null for a built-in template's synthetic version.
published_at
nullable string
obrigatório
When the version was published. Null for the draft and for a built-in template's synthetic version.
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Entenda o conceitoShould I use a Bird SDK or call the API directly?Siga o percurso de aprendizagemBuild your first integrationGuia de implementaçãoSend your first email
Obtenha um resumo de implementação