Skip to main content
GET
/
api
/
v1
/
messaging
/
channels
/
{channelId}
/
templates
Templates API
curl --request GET \
  --url https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates
Meta approval required - Templates must be approved by Meta before they can be sent. Newly created templates start with status PENDING_REVIEW; approval typically takes a few minutes to 24 hours.
Base URL: https://api.vobiz.ai/api/v1/messaging Authentication: Every request requires X-Auth-ID: MA_XXXXXXXX and X-Auth-Token: <token> headers (a Bearer JWT is also accepted). Set Content-Type: application/json on requests with a body. Get your credentials from console.vobiz.ai.
Template create and list are always scoped to a channel under /channels/{channelId}/templates. There is no top-level /messaging/templates route.

Template categories

CategoryUse case
UTILITYTransactional - orders, receipts, alerts
MARKETINGPromotional - offers, announcements
AUTHENTICATIONOTP and security codes only

List templates

GET https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates
Returns the templates for a specific channel. Filter by approval status using the status query parameter (e.g. APPROVED, PENDING_REVIEW, REJECTED, DISABLED, PAUSED).
cURL
curl -X GET \
  "https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates?status=APPROVED" \
  -H "X-Auth-ID: MA_XXXXXXXX" \
  -H "X-Auth-Token: {auth_token}"
200 OK
{
  "items": [
    {
      "id": "9d8f1e2a-4c3b-4a1d-8e7f-1a2b3c4d5e6f",
      "account_id": "MA_XXXXXXXX",
      "channel_id": "3f1c9b7e-2d4a-4f6b-9c8e-0a1b2c3d4e5f",
      "waba_id": "104958372615483",
      "meta_template_id": "1234567890123456",
      "name": "order_confirmation",
      "language": "en_US",
      "category": "UTILITY",
      "status": "APPROVED",
      "components": {
        "components": [
          { "type": "BODY", "text": "Your order {{1}} has been confirmed." }
        ]
      },
      "quality_score": "GREEN",
      "created_at": "2026-03-01T10:00:00Z",
      "updated_at": "2026-03-01T10:05:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 20,
  "has_more": false
}

Create template

POST https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates
Submit a new template to Meta for approval. The request body uses Meta’s component format. Use double-brace numbered placeholders like {{1}}, {{2}} for dynamic content in the BODY.

Request body

FieldRequiredDescription
nameYesTemplate name, lowercase_snake_case
languageYesLanguage code (e.g. en_US)
categoryYesMARKETING, UTILITY, or AUTHENTICATION
componentsYesArray of component objects (Meta format)
Each component object:
FieldDescription
typeHEADER, BODY, FOOTER, or BUTTONS
formatOptional. TEXT, IMAGE, VIDEO, or DOCUMENT (for HEADER)
textComponent text. BODY text may use {{1}}, {{2}} placeholders
buttonsArray of { type, text, url?, phone_number? }. type is QUICK_REPLY, URL, or PHONE_NUMBER
exampleSample values: { "header_handle": [], "body_text": [[]] }
cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates" \
  -H "X-Auth-ID: MA_XXXXXXXX" \
  -H "X-Auth-Token: {auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "order_confirmation",
    "language": "en_US",
    "category": "UTILITY",
    "components": [
      {
        "type": "BODY",
        "text": "Your order {{1}} has been confirmed. Delivery: {{2}}",
        "example": { "body_text": [["ORD-12345", "March 15"]] }
      },
      {
        "type": "BUTTONS",
        "buttons": [
          { "type": "URL", "text": "Track order", "url": "https://example.com/track" }
        ]
      }
    ]
  }'
201 Created
{
  "id": "9d8f1e2a-4c3b-4a1d-8e7f-1a2b3c4d5e6f",
  "account_id": "MA_XXXXXXXX",
  "channel_id": "3f1c9b7e-2d4a-4f6b-9c8e-0a1b2c3d4e5f",
  "waba_id": "104958372615483",
  "meta_template_id": "1234567890123456",
  "name": "order_confirmation",
  "language": "en_US",
  "category": "UTILITY",
  "status": "PENDING_REVIEW",
  "components": {
    "components": [
      { "type": "BODY", "text": "Your order {{1}} has been confirmed. Delivery: {{2}}" }
    ]
  },
  "quality_score": "UNKNOWN",
  "created_at": "2026-03-25T14:00:00Z",
  "updated_at": "2026-03-25T14:00:00Z"
}

Sync templates from Meta

POST https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates/sync
Pulls the latest template list and statuses from Meta and updates your Vobiz account. Call this after creating templates in Meta Business Manager directly, or after status changes (for example, when a template moves from PENDING_REVIEW to APPROVED). Returns the number of templates synced.
cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/messaging/channels/{channelId}/templates/sync" \
  -H "X-Auth-ID: MA_XXXXXXXX" \
  -H "X-Auth-Token: {auth_token}"
200 OK
{ "synced": 7 }

Template object

FieldTypeDescription
idUUIDVobiz template ID
account_idstringOwning account (MA_XXXXXXXX)
channel_idUUIDChannel the template belongs to
waba_idstringMeta WhatsApp Business Account ID
meta_template_idstringMeta’s template ID
namestringTemplate name (lowercase_snake_case)
languagestringLanguage code (e.g. en_US)
categorystringMARKETING, UTILITY, or AUTHENTICATION
statusstringAPPROVED, PENDING_REVIEW, REJECTED, DISABLED, or PAUSED
componentsobjectMeta component structure
quality_scorestringMeta quality rating
created_atRFC3339Creation timestamp (UTC)
updated_atRFC3339Last update timestamp (UTC)

Sending a template message

Creating a template does not send anything. To send an approved template, use the Messages API with type: "template".
cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/messaging/messages" \
  -H "X-Auth-ID: MA_XXXXXXXX" \
  -H "X-Auth-Token: {auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "channel_id": "{channelId}",
    "to": "+919876543210",
    "type": "template",
    "template": {
      "name": "order_confirmation",
      "language": { "code": "en_US" },
      "components": [
        {
          "type": "body",
          "parameters": [
            { "type": "text", "text": "ORD-12345" },
            { "type": "text", "text": "March 15" }
          ]
        }
      ]
    }
  }'