Sign inGet Started

Get an email template version

GET
/v1/email/templates/{template_ref}/versions/{version_id}
bird email templates versions get <template-ref> <version-id>
Réponse200
{
  "id": "emv_01krdgeqcxet5s7t44vh8rt9mg",
  "template_id": "emt_01krdgeqcxet5s7t44vh8rt9mg",
  "status": "published",
  "variables": [
    {
      "type": "code"
    }
  ],
  "default_language": "pt-BR",
  "updated_by": {
    "id": "usr_01krdgeqcxet5s7t44vh8rt9mg",
    "type": "user"
  }
}

Returns a single version of an email template:

  • Its lifecycle metadata (status, version_number, published_at).
  • The content it froze in every language.
  • Its variables: the parameters you supply when sending and the values Bird fills in for each recipient, told apart by system.

Use List email template versions to enumerate the draft and published versions. Roll back an email template makes an earlier published version live again. Returns a 404 Not Found error if the template or version does not exist in the workspace.

Paramètres

template_refstring

The template's id (emt_…) or slug. On read, a built-in system template's bird_ slug also resolves here, to its one permanently published version. Discarding a draft requires a workspace template, because a system template has no draft and returns 404 not_found_error.

version_idstring

Contenu de la réponse

id
string
obligatoire

Template version ID.

template_id
string
obligatoire

The template this version belongs to.

version_number
nullable integer

Sequential published-version number (1, 2, 3…). Null while the version is a draft.

status
string
obligatoire

Whether this version is still being edited or has been published. It records the version's publication history: a version that a later one replaced stays published. The template's live_version_id names the version a send resolves to now.

archived is reserved and no version carries it yet. Version retirement will produce it, so it is declared here ahead of that feature: a client written against this list today keeps working when the first archived version arrives, rather than the value's arrival being a breaking change.

Possible values: draft, published, archived

revision
integer
obligatoire

The version's revision counter.

variables
array of object
obligatoire

Input definitions this version uses, including caller parameters and reserved Bird inputs. An entry with system false is yours to send in template.parameters. An entry with system true names a reserved Bird key; supported paths receive Bird values. A draft can also report unsupported reserved paths, including bare bird, whose constraint explains that no Bird value fills them. Correct these paths before publishing. Naming a reserved Bird key in a send is rejected with a 422.

The list combines all the languages, because languages do not have to use the same inputs: if the English body uses discount_code and the French body uses shipping_date, both appear here. A send requires values only for the caller parameters referenced by its resolved language. Preview each language to see its inputs. Extra parameters are ignored; omitting a caller parameter referenced by the resolved language returns a 422 naming it.

Afficher les attributs enfants
languages
object
obligatoire

The content this version holds, keyed by language tag in BCP-47 form such as en or pt-BR. Publishing freezes every language together, so a version shows exactly what it would send in each of them. On a published version this is the send content.

default_language
string
obligatoire

The language this version treats as its default: the one a send uses when it names none, and the last resort when a requested language is not available.

created_at
string
obligatoire

When this version was created.

published_at
nullable string

When this version was published, or null if it has not been published.

updated_by
nullable object

Who last saved this version: a member's own session, an OAuth token delegated from one, or a workspace API key. Publishing freezes a version, so on a published one this is whoever published it. Null means no actor is on record: a built-in template, which is code-defined rather than stored, or a version last saved by an API key before this field existed. Every other version has one, even when its display_name could not be resolved (a member whose account is gone, say).

Afficher les attributs enfants
updated_by.id
string
obligatoire

Actor identifier.

updated_by.type
string
obligatoire

New actor types may be added. Treat unrecognized values as future types, not errors.

  • user: a member's own session.
  • api_key: a workspace API key.
  • oauth_token: a token issued to a caller on a member's behalf.
  • system: an action we perform without a customer actor.
  • sso: an organization's SSO connection.
  • service_account: a workspace's connected Integration acting with no member behind it.
  • automation: an automation execution in your workspace.

Possible values (may grow over time): user, api_key, oauth_token, system, sso, service_account, automation

updated_by.display_name
nullable string

The label the actor is shown under: typically a member's name or email address, or the API key's name. Null when it could not be resolved.