Contents

API reference

Templates

API reference descriptions are provided in English to preserve the exact published contract.

List templates

GET /v1/accounts/{AC}/templates

List message templates with their review status and quality. Required scope: `templates:read`.

Parameters

Parameters
NameTypeRequiredDescription
limitquery · integer (1–100)
cursorquery · string (max 2048 chars)
wabaSidquery · string (WB… SID)Filter by WABA SID
namequery · string (max 512 chars)
languagequery · string (max 16 chars)
statusquery · string (max 32 chars)
categoryquery · string (max 16 chars)
qualityScorequery · string (max 16 chars)
updatedAfterquery · string (date-time)
ACpath · string (AC… SID)yesAccount SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Create a template draft

POST /v1/accounts/{AC}/templates

Create a template draft. Nothing is sent to Meta until you submit it for review. Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
Request body (11 fields)
Request body
NameTypeRequiredDescription
category"MARKETING" | "UTILITY" | "AUTHENTICATION"yes
codeExpirationMinutesinteger (1–90)
componentsobject[]
headerMediaHandlestring (pattern ^[0-9]+:\S+$, max 2048 chars)Handle returned by POST /media/uploads for a media template header.
languagestring (max 16 chars)yes
libraryTemplateNamestring (max 256 chars)
messageSendTtlSecondsinteger (30–2592000)
namestring (max 512 chars)yes
parameterFormat"NAMED" | "POSITIONAL"yes
source"custom" | "meta_library"
wabaSidstring (WB… SID)WABA SID; required when the account has multiple WABAs

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Browse the versioned Meta Template Library catalog

GET /v1/accounts/{AC}/templates/library

Required scope: `templates:read`.

Parameters

Parameters
NameTypeRequiredDescription
qquery · string (max 128 chars)
categoryquery · "MARKETING" | "UTILITY" | "AUTHENTICATION"
languagequery · string (max 16 chars)
limitquery · integer (1–100)
cursorquery · string (max 2048 chars)
ACpath · string (AC… SID)yesAccount SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Reconcile the complete local template projection with Meta

POST /v1/accounts/{AC}/templates/reconcile

Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
wabaSidquery · string (WB… SID)
ACpath · string (AC… SID)yesAccount SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Fetch a template

GET /v1/accounts/{AC}/templates/{TM}

Fetch one template with its components, status and rejection reason, if any. Required scope: `templates:read`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Edit a draft or provider-backed template

PATCH /v1/accounts/{AC}/templates/{TM}

Edit a draft, or a template already with Meta where Meta allows the change. Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID
Request body (5 fields)
Request body
NameTypeRequiredDescription
category"MARKETING" | "UTILITY" | "AUTHENTICATION"
codeExpirationMinutesinteger (1–90)
componentsobject[]
headerMediaHandlestring (pattern ^[0-9]+:\S+$, max 2048 chars)Handle returned by POST /media/uploads for a media template header.
messageSendTtlSecondsinteger (30–2592000)

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Delete a template by name

DELETE /v1/accounts/{AC}/templates/{TM}

Delete a template. Meta deletes every language of the same name, and the name cannot be reused for 30 days. Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
languagequery · string (max 16 chars)
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Record an approved-template category appeal submitted through Meta Business Support

POST /v1/accounts/{AC}/templates/{TM}/appeal

Records the confirmed external case for the latest Meta category change and projects IN_APPEAL. Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID
Request body (3 fields)
Request body
NameTypeRequiredDescription
confirmedSubmittedToMetatrueyes
notestring (max 2000 chars)yes
supportCaseReferencestring (max 256 chars)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Duplicate a template as a new draft while retaining its origin

POST /v1/accounts/{AC}/templates/{TM}/duplicate

Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID
Request body (2 fields)
Request body
NameTypeRequiredDescription
languagestring (max 16 chars)
namestring (max 512 chars)yes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Fetch template category, version, and appeal history

GET /v1/accounts/{AC}/templates/{TM}/history

Required scope: `templates:read`.

Parameters

Parameters
NameTypeRequiredDescription
limitquery · integer (1–100)
cursorquery · string (max 2048 chars)
appealCursorquery · string (max 2048 chars)
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.

Submit a template for review

POST /v1/accounts/{AC}/templates/{TM}/submit

Submit a draft to Meta for review. The result arrives as a `template.*` webhook event. Required scope: `templates:write`.

Parameters

Parameters
NameTypeRequiredDescription
ACpath · string (AC… SID)yesAccount SID
TMpath · string (TM… SID)yesTemplate SID

Errors: 400, 401, 403, 404, 409, 422, 429, 500, 503 — see errors.