Skip to content
API PlatformDevelopers
GET/v1/templates/{template_id}beta

Get a template

Needs
Read your data (mcp:read)
Plan
Any plan with API access
Limits
300 a minute per key
Undo
Nothing to undo: this only reads.

Returns one template in full: header, body with each {{n}} variable and its sample, footer, buttons and review status. Read this before sending, to know how many variables to pass.

Try it

Path

The template id.

This only reads. It uses your real data and changes nothing.

Code and response

curl -X GET 'https://mcp.wa-api.cloud/v1/templates/9120' \
  -H "Authorization: Bearer $API_KEY"

The code reads your key from $API_KEY.

Parameters

Parameters
FieldTypeWhat it is
template_idrequiredstring | integer · pathThe template id.Signed in? Pick one from your data with “My data”.

Headers

Headers
FieldTypeWhat it is
AuthorizationrequiredheaderBearer $API_KEY — your API key.
Api-VersionheaderThe API version to use, e.g. 2026-10-01. Default: the version your key is pinned to.one of: 2026-10-01 · pattern ^\d{4}-\d{2}-\d{2}$

Response 200

The template.

Response fields
FieldTypeWhat it is
idrequiredstring
namerequiredstring
languagerequiredstring or null
categoryrequiredstring or null
sub_categoryrequiredstring or null
statusrequiredstring or nullMeta review status: APPROVED, PENDING, REJECTED, PAUSED, DISABLED, IN_APPEAL, ARCHIVED …
rejection_reasonrequiredstring or nullMeta's reason when REJECTED/PAUSED (verbatim), else null.
body_previewrequiredstring or null
variable_countrequirednumberBody variables to supply when sending.
header_formatrequiredstring or null
updated_atrequiredstring or null
headerrequiredobject or null
formatrequiredstring or null
textrequiredstring or null
variablesrequiredarray of object
indexrequirednumber1-based position ({{index}}).
samplerequiredstring or null
media_samplerequiredstring or null
bodyrequiredobject or null
textrequiredstring or null
variablesrequiredarray of object
indexrequirednumber1-based position ({{index}}).
samplerequiredstring or null
footerrequiredstring or null
buttonsrequiredarray of object
indexrequirednumber
typerequiredstring
textrequiredstring or null
urlrequiredstring or null
dynamic_urlrequiredbooleantrue when the URL ends with {{1}}: a suffix is required when sending.
url_examplerequiredstring or null
phone_numberrequiredstring or null
coupon_coderequiredstring or null
flow_idrequiredstring or null
carousel_cardsrequirednumber
limited_time_offerrequiredobject or null
textrequiredstring or null
has_expirationrequiredboolean
meta_errorsrequiredany or nullLast Meta error payload stored for this template, if any.
created_atrequiredstring or null

Errors

Errors are application/problem+json. Branch on code.

StatusCodeWhen
400invalid_input

A field is missing or has the wrong format. errors[] points at each field.

401unauthenticated

The Authorization header is missing, the key is unknown, expired or revoked.

403entitlement_required

The workspace's plan does not include API access (api_access).

403insufficient_scope

The key does not have the permission this operation needs.

404not_found

No template with this id.

429rate_limited

The key or workspace went over its rate limit. Wait for Retry-After seconds.

503upstream_unavailable

A service behind the API is briefly unavailable. Safe to retry with backoff.

Examples

The order-shipped template

Response 200

{
  "id": "9120",
  "name": "order_shipped",
  "language": "en_US",
  "category": "UTILITY",
  "status": "APPROVED",
  "rejection_reason": null,
  "body_preview": "Hi {{1}}, your order {{2}} is on its way. Track it here: {{3}}",
  "variable_count": 3,
  "header_format": null,
  "updated_at": "2026-09-12T10:00:00Z",
  "header": null,
  "body": {
    "text": "Hi {{1}}, your order {{2}} is on its way. Track it here: {{3}}",
    "variables": [
      {
        "index": 1,
        "sample": "Jane"
      },
      {
        "index": 2,
        "sample": "#1001"
      },
      {
        "index": 3,
        "sample": "https://track.example.com/1001"
      }
    ]
  },
  "footer": "Reply STOP to opt out",
  "buttons": [],
  "created_at": "2026-09-01T09:00:00Z",
  "sub_category": null,
  "carousel_cards": 0,
  "limited_time_offer": null,
  "meta_errors": null
}

Operation path

The same operation is also at POST /v1/ops/messaging_get_template, with every field in the JSON body.