Duplicate a template with a new max price (BETA)
Updated: Jul 17, 2026
Copy for LLM
Duplicate an existing approved template to run the same message content at a different max price. Template duplication clones an approved template with a new name and max price (
optimization_spec), so you can run identical templates across audience segments while setting a different max price for each.Template duplication is available in Limited Beta as part of the max price feature. To use it, you must be enrolled in max price.
Eligibility
To duplicate a template:
- The source template must be a
MARKETINGtemplate inAPPROVEDstatus. - Your WhatsApp Business Account must be onboarded to the Marketing Messages API for WhatsApp.
- The number of duplicates allowed per source template is determined by your business’s trust level. See Duplicate caps.
When to use template duplication
Use template duplication when you want to send the same approved template at more than one max price:
- Cohort-based max price setup. Segment your audience by intent — such as recent buyers, lapsed users, and first-time prospects — and set a different max price for each segment while keeping the message identical. Because the template never changes, price becomes the only variable, so you can set a higher max price for high-value cohorts* and a lower max price for the rest.* Some in-demand customers are reached by many businesses, making delivery more competitive and messaging caps more likely to be hit — which leads to more undelivered messages. Setting a higher max price signals your priority to reach the customer and can increase your delivery rate.
- A/B testing max price. Spin up several test arms from a single approved template, each with a different max price, in seconds. Since every arm carries byte-for-byte identical content, any difference in delivery rate, cost per delivery, or downstream conversion is attributable to the max price alone — giving you a clean read on how price moves your results.
- Existing rate card template enablement. Duplicate a template that was created without a max price to produce a max price-enabled copy, without rebuilding it from scratch. This lets you adopt max price for a template that already performs on standard rate card (published rate) pricing while leaving the original template untouched.
How template duplication works
- Marketing templates only. Template duplication supports only templates in the
MARKETINGcategory. You can’t duplicate utility or authentication templates. - Content is cloned from the source. When you provide
source_template_id, Meta copies all content components (header, body, footer, and buttons), along with the template’scategoryandlanguage, from the source template. You don’t send these fields — you send only the overrides. - The source must be approved. You can only duplicate a template that is in
APPROVEDstatus. - Approval is immediate. Because the content already passed review on the source template, the duplicate is created in
APPROVEDstatus without going through review again. It receives the same quality rating treatment as the source. - Duplicates are traceable. The response includes a
source_template_idfield that links the duplicate back to the template it was cloned from. - Duplicates count toward your template limit. Each duplicate counts against your WhatsApp Business Account’s template limit, the same as any other template.
Duplicate caps
Meta limits how many duplicates you can create from a single source template. The cap is determined by your business’s trust level: the higher your trust level, the more duplicates you can create per source template, up to a maximum of 25. If a source template has reached its cap, further duplication requests for that template fail until you remove an existing duplicate.
Duplicate a template
Use the Message Templates API to create the duplicate. Call the same endpoint you use to create a template, and include
source_template_id to identify the template to clone. When source_template_id is present, the content components, category, and language are cloned from the source and become optional in the request body.Request syntax
curl 'https://graph.facebook.com/<API_VERSION>/<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "source_template_id": "<SOURCE_TEMPLATE_ID>", "name": "<TEMPLATE_NAME>", "optimization_spec": { "bid_amount": <BID_AMOUNT>, "bid_strategy": "LOWEST_COST_WITH_BID_CAP" } }'
Request parameters
| Placeholder | Description | Example Value |
|---|---|---|
<ACCESS_TOKEN>String | Required. | EAAA... |
<API_VERSION>String | Optional. Graph API version. | v26.0 |
<WABA_ID>String | Required. WhatsApp Business Account ID. | 102290129340398 |
<SOURCE_TEMPLATE_ID>String | Required. ID of the approved template to clone. The source template must be in APPROVED status and belong to the same WABA as the request. | 1234567890123456 |
<TEMPLATE_NAME>String | Required. Name for the new duplicate template. Must be unique within the WABA. | seasonal_sale_promo_high_intent |
<BID_AMOUNT>int32 | Required. Maximum price per 1,000 message deliveries for the duplicate, expressed in your WABA currency’s smallest unit (cents for USD, paise for INR). For how to convert a per-delivery price, see Calculating max price amounts. | 87000 |
<BID_STRATEGY>Enum | Required. The bid strategy to use. Currently supports only LOWEST_COST_WITH_BID_CAP. | LOWEST_COST_WITH_BID_CAP |
Example request
curl 'https://graph.facebook.com/v23.0/102290129340398/message_templates' \ -H 'Authorization: Bearer EAAJB...' \ -H 'Content-Type: application/json' \ -d '{ "source_template_id": "1234567890123456", "name": "seasonal_sale_promo_high_intent", "optimization_spec": { "bid_amount": 87000, "bid_strategy": "LOWEST_COST_WITH_BID_CAP" } }'
Example response
When the source template is approved, the duplicate is created in
APPROVED status immediately.{ "id": "1733678867511493", "status": "APPROVED", "category": "MARKETING", }
Response fields
| Field | Description |
|---|---|
id | ID of the new duplicate template. |
status | Status of the duplicate. APPROVED when the source template is approved. |
category | Template category, cloned from the source template. |
Limitations
During Limited Beta, the following limits apply:
- Content can’t change. You can override only
nameandoptimization_spec. All content components (header, body, footer, and buttons), as well ascategoryandlanguage, are cloned from the source template and can’t be modified. - Deleting the source removes its duplicates. When you delete a source template, its duplicates are also removed.
Error handling
| Condition | Behavior |
|---|---|
Source template is not in APPROVED status | HTTP 400 — the source template must be approved before it can be duplicated |
name is missing or already in use within the WABA | HTTP 400 with a naming conflict error |
Duplicate cap for the source template is reached | HTTP 400 — the source template has reached its maximum number of duplicates |
WABA is not enrolled in the max price feature | HTTP 403 — enroll in max price before duplicating templates |