Templates

By Orqestra · Published September 2, 2026

Overview

WhatsApp message templates. These are approved by Meta, not by Orqestra — creating one here submits it for review, and it cannot be sent until Meta approves it. Sync pulls the current approval status back from Meta.

4 endpoints. Requires templates.view or templates.manage on the token.

MethodPathWhat it does
GET/templatesList templates
POST/templatesCreate a template
DELETE/templates/{id}Delete a template
POST/templates/syncSync templates from Meta

Endpoints

GET /templates

List templates

List available WhatsApp templates synced from Meta. Use `channelId` to list templates for a specific channel. Requires `templates.view` permission.

Requires the templates.view permission.

ParameterInTypeRequiredDescription
limitqueryintegeroptionalApproximate number to return
channelIdquerystringoptionalOrgChannel ID to list templates for a specific channel

Example

curl -X GET "https://orqestra.id/api/v2/templates" \
  -H "Authorization: Bearer $ORQESTRA_TOKEN"

Responds with 200 · 401 · 403. Try it in the playground →


POST /templates

Create a template

Create a new WhatsApp message template on Meta. Use `channelId` to target a specific channel. Requires `templates.manage` permission.

Requires the templates.manage permission.

Request body

FieldTypeRequiredDescription
namestringrequiredTemplate name (lowercase, underscores)
categoryMARKETING · UTILITY · AUTHENTICATIONrequiredTemplate category
languagestringoptionalTemplate language code Defaults to "en_US".
componentsarray of anyrequiredTemplate components (header, body, footer, buttons)
allowCategoryChangebooleanoptionalAllow Meta to recategorize the template
channelIdstringoptionalOrgChannel ID. If omitted, uses org-level WABA credentials.

Example

curl -X POST "https://orqestra.id/api/v2/templates" \
  -H "Authorization: Bearer $ORQESTRA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "category": "MARKETING",
    "components": [
      "string"
    ]
  }'

Responds with 200 · 400 · 401 · 403. Try it in the playground →


DELETE /templates/{id}

Delete a template

Delete a WhatsApp message template from Meta by ID and name. Use `channelId` to target a specific channel. Requires `templates.manage` permission.

Requires the templates.manage permission.

ParameterInTypeRequiredDescription
idpathstringrequiredTemplate ID (hsm_id)
namequerystringrequiredTemplate name (required by Meta API)
channelIdquerystringoptionalOrgChannel ID for channel-specific WABA credentials

Example

curl -X DELETE "https://orqestra.id/api/v2/templates/$id?name=value" \
  -H "Authorization: Bearer $ORQESTRA_TOKEN"

Responds with 200 · 400 · 401 · 403. Try it in the playground →


POST /templates/sync

Sync templates from Meta

Pull the latest template catalog from Meta and refresh the local cache. Pass `channelId` in the body to sync a specific channel. Requires `templates.manage` permission.

Requires the templates.manage permission.

Example

curl -X POST "https://orqestra.id/api/v2/templates/sync" \
  -H "Authorization: Bearer $ORQESTRA_TOKEN"

Responds with 200 · 400 · 401 · 403. Try it in the playground →