List a template's versions
/v1/whatsapp/templates/{template_ref}/versionsfor await (const version of bird.whatsapp.templates.versions.list("bird_otp")) {
console.log(version.id, version.version_number);
}for version in client.whatsapp.templates.versions.list("bird_otp"):
print(version.id, version.version_number)for version, err := range client.Whatsapp.Templates.Versions.List(context.Background(), "bird_otp", bird.WhatsappTemplatesVersionsListParams{}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(version.Id, len(version.Languages))
}foreach ($bird->whatsapp->templates->versions->list('bird_otp') as $version) {
echo $version->getId(), ' ', $version->getVersionNumber(), "\n";
}bird whatsapp templates versions list <template-ref>curl -X GET "https://us1.platform.bird.com/v1/whatsapp/templates/{template_ref}/versions" \
-H "Authorization: Bearer $TOKEN" \
--url-query "limit=25"{
"data": [
{
"id": "wav_01krdgeqcxet5s7t44vh8rt9mg",
"template_id": "wat_01krdgeqcxet5s7t44vh8rt9mg",
"version_number": 4,
"submitted_at": "2026-07-20T11:04:00Z",
"languages": {
"en": {
"status": "approved"
}
},
"created_at": "2026-07-20T10:31:00Z",
"next": [
{
"kind": "operation"
}
]
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the template's versions, newest first. Each names the languages it holds and what became of them; content is not here, since a page of versions would carry a copy of every language in every one of them. Read a single version for its content.
Paramètres
template_refstringTemplate ID (wat_ prefix) or slug. A value that parses as a valid ID resolves by ID; any other value resolves as a slug.
Paramètres de requête
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
Contenu de la réponse
dataPage of the template's versions, newest first.
next_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet.