---
title: "Get published email template parameters"
method: GET
path: "/v1/email/templates/{template_ref}/parameters"
tags: ["email-templates"]
---

# Get published email template parameters

`GET /v1/email/templates/{template_ref}/parameters`

## Request

- Base URL: `https://us1.platform.bird.com`
- URL: `https://us1.platform.bird.com/v1/email/templates/{template_ref}/parameters`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `bird_session`

Get the parameters and variables used by the template's published content in one language. The result describes the template and holds no saved values. Parameters are the names a broadcast supplies in `template.parameters`, and variables are the `bird.` references Bird fills in. The result identifies list values, which broadcast parameters cannot supply. It also includes a fingerprint that identifies the published content without exposing contact values. You cannot select an older template version. Requires email_marketing read permission in addition to email_management read. Parameter sites cover template subject, HTML and text; envelope overrides are checked by broadcast validation.

## Path parameters

- `template_ref` string, required

## Query parameters

- `language` string: A language tag in BCP-47 form, for example `en` or `pt-BR`.

## Headers

- `X-Workspace-Id` string
- `X-Organization-Id` string

## Response `200`

The parameters and variables of the current published content.

- EmailTemplateParameters: The parameters and variables a template's current published content uses in one exact language, across its subject, HTML and plain-text body. The HTML includes its inbox preview text. This describes the template and holds no parameter or contact values.
  - `template_id` string, required
  - `observed_version_id` string, required
  - `requested_language` string: A language tag in BCP-47 form, for example `en` or `pt-BR`.
  - `effective_language` string, required: A language tag in BCP-47 form, for example `en` or `pt-BR`.
  - `requirements_fingerprint` string, required: An opaque value that changes when this content or the parameters and variables it uses change, including for built-in templates whose version ID stays the same. Compare it with an earlier value to tell whether they are still the same. Do not parse it.
  - `parameters` EmailTemplateParameter[], required: The parameters the broadcast supplies, sorted by name.
    - `name` string, required: The parameter name to use as a key in `template.parameters`.
    - `type` string, required: The value type the template declares for a parameter. A broadcast can still supply any scalar value; see `value_domain`. - `text`: any value. A parameter the template uses without declaring it is reported as a required `text` parameter. - `code`: 4 to 8 digits. - `ttl`: a whole number from 1 to 999. - `count`: a whole number from 1 to 999. - `ref`: up to 16 uppercase letters, digits or hyphens. - `date`: an ISO 8601 date (YYYY-MM-DD). - `date_time`: an ISO 8601 date and time, with an optional offset. - `amount`: a decimal amount in major units, with up to 4 decimal places. - `currency`: an ISO 4217 currency code of 3 uppercase letters.
    - `value_domain` string, required: The shape of value a broadcast may supply for a parameter, independent of the declared `type`. - `scalar`: a string, number, boolean or null, used as given.
    - `required` boolean, required: Whether the template declares the parameter required.
    - `sensitive` boolean: Whether the template marks the parameter sensitive. A broadcast cannot supply a sensitive parameter that its content uses.
    - `use_constraints` EmailTemplateUseConstraint[], required: Each place the content uses the parameter.
      - `kind` string, required: How the template uses a parameter or variable at one place in its content. - `value`: the template outputs or compares the value. - `iterable`: the template loops over the value.
      - `site` string, required: The part of the published content where a parameter or variable is used. - `subject`: the subject line. - `html`: the HTML body, including its inbox preview text. - `text`: the plain-text body.
      - `path` string: The parameter or variable path the template reads at this place, such as `offer` or `bird.contact.first_name`.
      - `operation` string: How the template uses the parameter or variable here, passed through from the template. `output` means it writes the value; other values name the Liquid tag that reads it, such as `if`, `case`, `for` or `assign`.
  - `variables` EmailTemplateVariable[], required: The `bird.` variables Bird fills in, sorted by path.
    - `path` string, required: The variable as the template writes it, such as `bird.contact.first_name`.
    - `source` string, required: Where Bird takes the value of a `bird.` variable from. - `contact`: a property of the recipient contact, read from `bird.contact.`. - `bird`: another value Bird fills in when it sends, such as `bird.unsubscribe_url`.
    - `source_type` string: The type of the contact property, from this workspace's current contact property definitions, such as `string`. Absent when the variable is not a defined contact property.
    - `use_constraints` EmailTemplateUseConstraint[]: Each place the content uses the variable.
      - `kind` string, required: How the template uses a parameter or variable at one place in its content. - `value`: the template outputs or compares the value. - `iterable`: the template loops over the value.
      - `site` string, required: The part of the published content where a parameter or variable is used. - `subject`: the subject line. - `html`: the HTML body, including its inbox preview text. - `text`: the plain-text body.
      - `path` string: The parameter or variable path the template reads at this place, such as `offer` or `bird.contact.first_name`.
      - `operation` string: How the template uses the parameter or variable here, passed through from the template. `output` means it writes the value; other values name the Liquid tag that reads it, such as `if`, `case`, `for` or `assign`.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Insufficient permissions
- `404`: Resource not found
- `422`: The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.
- `429`: Rate limit exceeded
- `500`: Internal server error
- `503`: The service is temporarily unavailable. If `Retry-After` is present, wait for that delay before retrying; otherwise, retry with exponential backoff. Reuse the same idempotency key and request when retrying a mutation.

---

[API](https://skmtc.dev/messagebird/apis/bird-api.md) · [All operations](https://skmtc.dev/messagebird/apis/bird-api/llms.txt) · [OpenAPI document](https://skmtc.dev/messagebird/apis/bird-api/revisions/6dfce1179799?raw)
