API reference

Templates

Submit templates for Meta's review, track their status, sync them.

View this page as Markdown

Submit a template for Meta review#

POST/waba-connections/{wabaConnectionId}/templates

Authentication
API key (Bearer pk_…), or console session (Bearer ses_… with the X-Environment-Id header)
Required scope
templates:manage

Parameters

NameLocationTypeDescription
wabaConnectionIdrequiredpathstringWhatsApp connection ID (the id field returned by a business's list of accounts).

Request body (JSON)

FieldTypeDescription
namestringrequiredTemplate name: lowercase letters, digits and underscores (e.g. appointment_reminder).
languagestringrequiredLanguage code: fr, en, en_US…
categorystringrequiredMeta category: MARKETING, UTILITY or AUTHENTICATION. It determines pricing at Meta.Values: MARKETING, UTILITY, AUTHENTICATION
componentsstring[]requiredComponents in Meta format

Example

bash
curl -X POST "$INBOX_API/waba-connections/WABA_CONNECTION_ID/templates" \
  -H "Authorization: Bearer $INBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "appointment_reminder",
    "language": "en",
    "category": "UTILITY",
    "components": [
      {
        "type": "BODY",
        "text": "Hello {{1}}, your appointment is confirmed for {{2}}.",
        "example": {
          "body_text": [
            [
              "Awa",
              "November 14 at 10 am"
            ]
          ]
        }
      }
    ]
  }'
Response · 201 Created
{
  "id": "ff532b8f-2956-4f04-851f-db09d5eefbd4",
  "name": "appointment_reminder",
  "language": "en",
  "category": "UTILITY",
  "status": "pending",
  "usable": false,
  "rejectionReason": null,
  "components": [
    {
      "type": "BODY",
      "text": "Hello {{1}}, your appointment is confirmed for {{2}}.",
      "example": {
        "body_text": [
          [
            "Awa",
            "November 14 at 10 am"
          ]
        ]
      }
    }
  ],
  "updatedAt": "2026-11-12T08:33:45.595Z"
}

The WhatsApp account's templates and their review status#

GET/waba-connections/{wabaConnectionId}/templates

Authentication
API key (Bearer pk_…), or console session (Bearer ses_… with the X-Environment-Id header)
Required scope
templates:manage

Parameters

NameLocationTypeDescription
wabaConnectionIdrequiredpathstringWhatsApp connection ID (the id field returned by a business's list of accounts).

Example

bash
curl "$INBOX_API/waba-connections/WABA_CONNECTION_ID/templates" \
  -H "Authorization: Bearer $INBOX_KEY"
Response · 200 OK
[
  {
    "id": "ff532b8f-2956-4f04-851f-db09d5eefbd4",
    "name": "appointment_reminder",
    "language": "en",
    "category": "UTILITY",
    "status": "approved",
    "usable": true,
    "rejectionReason": null,
    "components": [
      {
        "text": "Hello {{1}}, your appointment is confirmed for {{2}}.",
        "type": "BODY"
      }
    ],
    "updatedAt": "2026-11-12T08:33:45.640Z"
  }
]

Sync statuses from Meta#

POST/waba-connections/{wabaConnectionId}/templates/sync

Authentication
API key (Bearer pk_…), or console session (Bearer ses_… with the X-Environment-Id header)
Required scope
templates:manage

Parameters

NameLocationTypeDescription
wabaConnectionIdrequiredpathstringWhatsApp connection ID (the id field returned by a business's list of accounts).

Example

bash
curl -X POST "$INBOX_API/waba-connections/WABA_CONNECTION_ID/templates/sync" \
  -H "Authorization: Bearer $INBOX_KEY"
Response · 200 OK
[
  {
    "id": "ff532b8f-2956-4f04-851f-db09d5eefbd4",
    "name": "appointment_reminder",
    "language": "en",
    "category": "UTILITY",
    "status": "approved",
    "usable": true,
    "rejectionReason": null,
    "components": [
      {
        "text": "Hello {{1}}, your appointment is confirmed for {{2}}.",
        "type": "BODY"
      }
    ],
    "updatedAt": "2026-11-12T08:33:45.640Z"
  }
]

Delete a template (all its languages)#

DELETE/waba-connections/{wabaConnectionId}/templates/{name}

Authentication
API key (Bearer pk_…), or console session (Bearer ses_… with the X-Environment-Id header)
Required scope
templates:manage

Parameters

NameLocationTypeDescription
wabaConnectionIdrequiredpathstringWhatsApp connection ID (the id field returned by a business's list of accounts).
namerequiredpathstringTemplate name (all of its languages are affected).

Example

bash
curl -X DELETE "$INBOX_API/waba-connections/WABA_CONNECTION_ID/templates/NAME" \
  -H "Authorization: Bearer $INBOX_KEY"
Response · 204 No Content
(no content)