ManyChat · AsyncAPI Specification
Manychat Dynamic Block Webhooks
Version
View Spec
View on GitHub
Chat MarketingMessenger MarketingConversational CommerceMarketing AutomationInstagramWhatsAppFacebook MessengerSMSChatbotsCustomer EngagementAutomationAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: https://manychat.github.io/dynamic_block_docs/
spec_type: none
asyncapi_published: false
note: >-
ManyChat publishes no AsyncAPI document and no subscriber/event webhook catalogue — it does not push
events to you. Its entire asynchronous surface runs the other way: the "External Request" flow step calls
YOUR endpoint from inside a ManyChat automation, and expects a Dynamic Block JSON response back which
ManyChat then renders into the conversation. That makes ManyChat the CALLER and the integrator the
webhook receiver — the inverse of the usual provider webhook. The response contract is real, versioned
(`"version": "v2"`) and first-party, published by the ManyChat GitHub organization at
manychat.github.io/dynamic_block_docs, so it is captured here as the webhook surface. Nothing below is
fabricated; the message/action/button type lists are read verbatim from that reference.
surface:
direction: outbound
mechanism: External Request flow step
caller: ManyChat
receiver: partner HTTP endpoint
transport: HTTPS
request_content_type: application/json
response_content_type: application/json
availability: Pro plan and above (the External Request block is a paid feature)
docs:
- https://manychat.github.io/dynamic_block_docs/
- https://help.manychat.com/hc/en-us/articles/14281285374364-Dev-Tools-External-request
- https://help.manychat.com/hc/en-us/articles/14281252007580-Dev-Tools-Basics
response_contract:
name: Dynamic Block
version: v2
envelope:
version: string, "v2"
content.messages: array, required, max 10
content.actions: array, optional, max 5
content.quick_replies: array, optional, max 11
limits:
messages: 10
quick_replies: 11
actions: 5
message_types:
- {type: text, note: 'supports url, flow and node buttons'}
- {type: image, note: 'JPG, PNG, GIF on Messenger; supports url, call, buy, flow and node buttons'}
- {type: video}
- {type: audio}
- {type: file}
- {type: cards, note: gallery cards}
button_types:
- {type: call}
- {type: url}
- {type: node, note: 'go to node — see the reference for channel caveats'}
- {type: flow, note: go to Flow}
- {type: buy}
- {type: dynamic_block_callback, note: calls the External Request endpoint again}
action_types:
- {action: add_tag, effect: applies a page tag to the contact}
- {action: remove_tag, effect: removes a page tag from the contact}
- {action: set_field_value, effect: writes a custom field value on the contact}
- {action: unset_field_value, effect: clears a custom field value on the contact}
quick_reply_types:
- {type: node}
- {type: flow}
- {type: dynamic_block_callback}
channel_variants:
- {name: Response Reference for Facebook Automation, docs: 'https://manychat.github.io/dynamic_block_docs/'}
- {name: Response Reference for Instagram, WhatsApp, and Telegram Automation, docs: 'https://manychat.github.io/dynamic_block_docs/'}
also_documented:
- External Message Callback
- Variables
signing:
published: false
note: >-
No request-signing, shared-secret or verification contract is documented for the External Request call.
A receiver has no published way to prove the call came from ManyChat.
retries:
published: false
note: No retry, backoff or delivery-guarantee contract is documented.
gaps:
- No AsyncAPI document is published.
- No inbound event webhooks (subscriber created, message received, tag applied) are offered by the API.
- No request signing or replay protection is documented for the outbound call.
- No delivery/retry semantics are documented.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/manychat-dynamic-block-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.