What it does
Edits the content (components) of an existing template. On Meta the edit is full-replace: the component set you send becomes the new state, and any component you don’t send is removed. After a successful edit the status returns toPENDING (re-review) and the local DB is synced. name and language cannot be changed. The response body is controlled via Prefer.
Internally, the template’s current category is first fetched from Meta (for auth / standard component structure), then the edit is submitted.
Endpoint
Headers
Secret key in
Bearer sk_... format. See Secret Key authentication.Always
application/json.return=representation (default) returns the updated template; return=minimal returns no body. The applied preference is reported via the Preference-Applied header.Path parameters
Application ID.
The template’s Meta ID.
Request Body
name and language cannot be sent. The inner objects (header / body / footer / buttons) use the same schema as Create Template. Full-replace: send every component you want to keep (at minimum body).
Body component. Must always be sent (structurally required).
Header component (send it if you want to keep it).
Footer component.
Buttons (max 10).
Message time-to-live.
Category change (Template Category). Effective only for
REJECTED/PAUSED; for APPROVED Meta rejects it; subject to review.Response
WithPrefer: return=representation (default), the response is { "data": {...}, "isSuccess": true } — the full template re-fetched from Meta after the edit (with components), status: "PENDING". With return=minimal, it is { "isSuccess": true }.
true when the update was accepted.The updated template (
TemplateResponseModel): sourceId, name, language, category, status, components, qualityScore, rejectedReason, parameterFormat. null when Prefer: return=minimal.Examples
Demo 1 — full update (representation)
Demo 1 — full update (representation)
Demo 2 — minimal (Prefer: return=minimal)
Demo 2 — minimal (Prefer: return=minimal)
Demo 3 — change category (REJECTED/PAUSED)
Demo 3 — change category (REJECTED/PAUSED)
Demo 4 — error: non-editable status (template PENDING) → 409
Demo 4 — error: non-editable status (template PENDING) → 409
Demo 5 — error: 24h edit limit → 429
Demo 5 — error: 24h edit limit → 429
Demo 6 — error: sending only body and breaking structure → 409
Demo 6 — error: sending only body and breaking structure → 409
Errors
Error details with
code, group, and description; isSuccess is false.