Quick replies - Instagram API with Instagram Login
Updated: Oct 5, 2026
Copy for LLM
A Quick Reply is a preset button that allows a user to quickly reply to a prompt or question within a conversation. When a quick reply is tapped, the buttons are dismissed, and the title of the tapped button is posted to the conversation as a message. A messages event will be sent to your webhook that contains the button title and an optional payload.

You can include a maximum of 13 plain-text buttons. Each button can contain up to 20 characters before it is truncated.
Phone number and email quick replies are disabled for Instagram. Requests that use
user_phone_number or user_email will not create contact-information quick replies. Use a text quick reply or ask the end user to enter their contact information.An Instagram webhook event notification is sent to your webhook server. The webhook notification contains the button title and an optional payload you set that can include information about the button selected.
Before you start
This guide assumes you have set up your webhooks server to receive notifications and subscribed your app to Instagram
messages and messaging_postbacks events.You will need:
- The ID for the Instagram Professional account (
IG_ID) - The Instagram-scoped ID (
IGSID) for the person to whom you are sending the message
Host URL
https://graph.instagram.comLimitations
This feature is currently not available on desktop.
- A maximum of 13 quick replies are supported
- A quick reply can contain up to 20 characters before it is truncated
- Only plain text quick replies are supported
Send Quick Replies
To send a set of quick replies, send a
POST request to the /<IG_ID>/messages endpoint with the following properties:recipient.idset to the Instagram-scoped ID for the person receiving the quick replies.messageobject with:textset to the text that will prompt a person to click a quick replyquick_repliesarray containing an object for each quick reply:content_typeset totexttitleset to the quick reply textpayloadset to the content you would like to receive about the quick reply in the webhook notification
Sample Request
Formatted for readability.
curl -X POST -H "Content-Type: application/json" -d '{ "recipient":{ "id":"<IGSID>" }, "message":{ "text": "<THE_PROMPT_OR_QUESTION>", "quick_replies":[ { "content_type":"text", "title":"<BUTTON_OPTION_TEXT_1>", "payload":"<POSTBACK_PAYLOAD_1>" },{ "content_type":"text", "title":"<BUTTON_OPTION_TEXT_2>", "payload":"<POSTBACK_PAYLOAD_2>" } ] } }' "https://graph.instagram.com/<API_VERSION>/me/messages?access_token=<INSTAGRAM_ACCESS_TOKEN>"
Webhook Event
When a quick reply is selected, a notification will be sent to your webhook server that contains the following:
- The ID for the Instagram Professional account that owns the quick replies
- The time the notification was sent
- The Instagram-scoped ID for the person who sent the quick reply
- The payload for the specific quick reply that was selected
- The ID for the message
- The text of the selected quick reply
Sample Notification
{ "object": "instagram", "entry": [ { "id": "<IGID>", "time": 1502905976963, "messaging": [ { "sender": { "id": "<IGSID>" }, "recipient": { "id": "<IGID>" }, "timestamp": 1502905976377, "message": { "quick_reply": { "payload": "<POSTBACK_OF_BUTTON_SELECTED>" }, "mid": "<MESSAGE_ID>", "text": "<TEXT_OF_BUTTON_SELECTED>" } } ] } ] }