Generic Template
Updated: Apr 1, 2026

The generic template allows you to send a structured message that includes an image, text and buttons. A generic template with multiple templates described in the
elements array will send a horizontally scrollable carousel of items, each composed of an image, text and buttons.Limitations
This feature is currently not available in the web version.
Request URI
https://graph.facebook.com/v25.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>
Example Request
curl -X POST -H "Content-Type: application/json" -d '{ "recipient":{ "id":"<IGSID>" }, "message":{ "attachment":{ "type":"template", "payload":{ "template_type":"generic", "elements":[ { "title":"Welcome!", "image_url":"https://github.com/fbsamples/original-coast-clothing/blob/main/public/looks/male-work.jpg", "subtitle":"We have the right hat for everyone.", "default_action": { "type": "web_url", "url": "https://www.originalcoastclothing.com", }, "buttons":[ { "type":"web_url", "url":"https://www.originalcoastclothing.com", "title":"View Website" },{ "type":"postback", "title":"Start Chatting", "payload":"DEVELOPER_DEFINED_PAYLOAD" } ] } ] } } } }' "https://graph.facebook.com/v10.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>"
Example Response
{
"recipient_id": "1254477777772919",
"message_id": "AG5Hz2Uq7tuwNEhXfYYKj8mJEM_QPpz5jdCK48PnKAjSdjfipqxqMvK8ma6AC8fplwlqLP_5cgXIbu7I3rBN0P"
}
Properties
recipient
Description of the message recipient. All requests must include one of the following properties to identify the recipient.
| Property | Type | Description |
|---|---|---|
recipient.id | String | IG Scoped User ID (IGSID) of the message recipient. |
message
Description of the message to be sent.
| Property | Type | Description |
|---|---|---|
message.attachment | Object | An object describing attachments to the message. |
message.attachment
| Property | Type | Description |
|---|---|---|
type | String | Value must be template |
payload | Object | payload of the template. |
message.attachment.payload
| Property | Type | Description |
|---|---|---|
template_type | String | Value must be generic |
elements | Array< element> | An array of element objects that describe instances of the generic template to be sent. Specifying multiple elements will send a horizontally scrollable carousel of templates. A maximum of 10 elements is supported. |
message.attachment.payload.elements
The generic template supports a maximum of 10 elements per message. At least one property must be set in addition to
title.| Property Name | Type | Description |
|---|---|---|
title | String | The title to display in the template. 80 character limit. |
subtitle | String | Optional. The subtitle to display in the template. 80 character limit. |
image_url | String | Optional. The URL of the image to display in the template. |
default_action | Object | Optional. The default action executed when the template is tapped. Accepts the same properties as URL button, except title. |
buttons | Array< button> | Optional. An array of buttons to append to the template. A maximum of 3 buttons per element is supported. Only postback and web_url buttons are supported. |
Learn more
Visit the
message.attachment.data for GIFs and Stickers.