Get an email template
/v1/email/templates/{template_ref}bird email templates get <template-ref>curl -X GET "https://us1.platform.bird.com/v1/email/templates/{template_ref}" \
-H "Authorization: Bearer $TOKEN"{
"id": "emt_01krdgeqcxet5s7t44vh8rt9mg",
"workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
"slug": "welcome-email",
"name": "Welcome email",
"scope": "workspace",
"status": "active",
"category": "transactional",
"source": "html",
"theme": null,
"draft_version_id": "emv_01krdgeqcxet5s7t44vh8rt9mg",
"live_version_id": "emv_01krdgeqcxet5s7t44vh8rt9mg",
"published_version_id": "emv_01krdgeqcxet5s7t44vh8rt9mg",
"languages": {
"en": {
"status": "live"
},
"pt-BR": {
"status": "live",
"draft": true
},
"de": {
"status": "draft"
}
},
"default_language": "pt-BR",
"available_languages": [
"en"
],
"on_missing_language": "fallback"
}
Returns a template's metadata, language states, sendable languages, draft revision, and draft and published version IDs. Read a version's language to retrieve content.
Accepts a workspace template ID (emt_…) or a built-in system template's bird_ slug. A system template has null for the workspace, draft, revision, and timestamp fields.
参数
template_refstringThe template's id (emt_…) or slug. On read, a built-in system template's bird_ slug also resolves here. Write operations (update, delete) accept a workspace template only, because a system template is immutable.
响应载荷
editor_urlOptional link to open the saved draft in the browser editor, in its default language. Absent for built-in templates.
idTemplate ID.
workspace_idThe workspace that owns the template. Null for a built-in system template, which no workspace owns.
slugThe name you send the template by. You can use either the slug or the id when you send. It never changes after the template is created. A built-in system template's slug always starts with bird_.
nameThe template's display name, shown wherever the template is listed. You can change it any time. It defaults to the slug if you do not set one.
descriptionWhat the template is for, in your own words. Null if you have not set one.
scopeWhether the template is one of our built-in templates (system) or one your workspace created (workspace).
Possible values: system, workspace
statusWhere the template stands as a whole. The same five states on every channel.
draft: nothing has ever gone live.pending: nothing is live and at least one language is in review.active: at least one language is live, so something can be sent.rejected: it was reviewed and every language was refused.inactive: nothing is live and nothing is in review, so content was withdrawn or was blocked before anything went live.
A template with one language live is active even while another is still
drafted or refused. Read languages for the state of each language and its
reason.
Which values a channel reports follows its review model. A channel whose
content a third party reviews uses all five. On email and SMS, where content
goes live on publish, a template is draft, active or inactive, and
pending and rejected are reserved for the review stage coming to both, so
a template reaching either is not a breaking change.
Possible values: draft, pending, active, rejected, inactive
categoryWhether the template is for transactional email or marketing email.
Possible values: transactional, marketing
sourceThe authoring format the template is written in, fixed at creation. html is finished markup you provide, optionally personalized with Liquid.
Possible values (may grow over time): html
themeThe visual theme a built-in template is designed in, or null for a template your workspace authored (which has no theme).
draft_version_idThe current editable draft version. Null for a built-in system template, which has no draft.
live_version_idThe version a send resolves to, or null if the template has never been published.
published_version_idDeprecated: use live_version_id instead, which carries the same value.
revisionThe draft's revision counter. Send it back on the next update to detect concurrent edits. Null for a built-in system template, which is unversioned.
languagesEvery language this template has, keyed by language tag in BCP-47 form
such as en or pt-BR, each with its state. One read tells you which
languages are live and which have unpublished edits, without fetching any
content.
Content is not here: read a version's languages for that, one language at a time.
default_languageThe language the draft defaults to. This is the language languages is
keyed against while you edit, and the language used by sends once you
submit this draft.
Until then sends keep using the live version's default, so this can
differ from what is being sent right now. available_languages describes
the live version for the same reason; read a version to see the default a
send currently uses.
available_languagesThe languages this template currently supports for sending, as BCP-47 tags. Empty until the template is published, because sends serve published content. The set may shrink for reasons other than editing, so read it rather than assuming it matches what was published. A built-in system template has no publish step and always reports its one language.
on_missing_languageWhat a send does when it asks for a language this template does not carry. Defaults to fallback on email.
language_source_requiredWhether a send has to name a language. When true, a send that names none is rejected instead of being served the default language. A broadcast must select a template language when this is set.
last_submitted_atWhen this template was last submitted. Null if it never has been. Submitting is the only thing that moves this timestamp: rolling back changes which version is live without counting as a submit, so this keeps reporting the last real submit. Read it alongside languages, which says where each language stands.
created_atWhen the template was created. Null for a built-in system template.
updated_atWhen the template was last modified. Null for a built-in system template.