# Get an SMS template version's language

`GET /v1/sms/templates/{template_ref}/versions/{version_id}/languages/{language}`

Returns one language's full text, revision, content hash, and update time. The response echoes the language in its canonical BCP-47 form.

## Code samples

### TypeScript

```ts
const language = await bird.smsTemplates.versions.languages.get(
  "bird_otp_verification",
  "smv_01ky4x8e4genzb7way45txfkm1",
  "en",
);
console.log(language.language, language.text);
```

### Python

```py
language = client.sms_templates.versions.languages.get(
    "bird_otp_verification", "smv_01ky4x8e4genzb7way45txfkm1", "en"
)
print(language.language, language.text)
```

### Go

```go
language, err := client.SmsTemplates.Versions.Languages.Get(context.Background(), "bird_otp_verification", "smv_01ky4x8e4genzb7way45txfkm1", "en")
if err != nil {
	log.Fatal(err)
}
fmt.Println(language.Language, language.Text)
```

### PHP

```php
$language = $bird->smsTemplates->versions->languages->get(
    'bird_otp_verification',
    'smv_01ky4x8e4genzb7way45txfkm1',
    'en',
);
echo $language->getLanguage(), ' ', $language->getText();
```

### CLI

```sh
bird sms templates versions languages get <template-ref> <version-id> <language>
```

### cURL

```sh
curl -X GET "https://us1.platform.bird.com/v1/sms/templates/{template_ref}/versions/{version_id}/languages/{language}" \
  -H "Authorization: Bearer $TOKEN"
```

## Example response `200`

```json
{
  "language": "en",
  "text": "Your order {{ order_number }} is on its way.",
  "revision": 1,
  "content_hash": "sha256:3d948846f5f773fb7bed8ab81b57f3d0ff2cbff24cb549718f4d389f1ab0300a",
  "updated_at": "2026-09-10T09:00:00Z"
}
```

## Path parameters

- `template_ref` (string): The template's ID (`smt_…`) or slug.
- `version_id` (string): The version that holds the language.
- `language` (string): The language as a BCP-47 tag. Case and separator differences are accepted and canonicalized.

## Response body

- `language` (string, required): The language in canonical BCP-47 form.
- `text` (string, required): Stored template text, including its `{{ variable }}` placeholders.
- `revision` (integer, required): This language's revision counter, used for concurrent-edit checks on draft writes.
- `content_hash` (string, required): A fingerprint of SMS template text, prefixed with its algorithm. Compare it within this API version to identify the exact source without transferring it.
- `updated_at` (nullable string, required): When this language was last saved. Null for a built-in template.

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
