ManyChat Sending API

Send Dynamic Block content and trigger automations for a subscriber across Messenger, Instagram and WhatsApp. 3 operations. This is the surface governed by Meta policy rather than by ManyChat: outside the 24-hour messaging window a message tag is required (error 3011), One-Time Notification sends need a token for the topic (3021), and channel restrictions surface as the 304X error family. sendFlow is additionally capped at 100 queries per given subscriber per hour. There is no idempotency key, so a retry delivers a duplicate message.

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/manychat-sending-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

manychat-sending-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: ManyChat Sending API
  description: 'The ManyChat Sending API, split by tag from the Swagger document ManyChat publishes at https://api.manychat.com/swagger
    (the underlying JSON is served from https://api.manychat.com/swagger/compileJson?type=Page_API). Authentication is an
    API key generated per page in Settings > API, sent as `Authorization: Bearer <page-id>:<api-key>`. Per-operation rate
    limits are published by ManyChat in each operation description. Operation IDs here are the readable API Evangelist refinement;
    the provider''s generated hash ID is preserved on each operation as `x-provider-operation-id`.'
  version: beta
  contact:
    name: ManyChat
    url: https://api.manychat.com/swagger
  x-source: https://api.manychat.com/swagger/compileJson?type=Page_API
  x-harvested: '2026-08-13'
servers:
- url: https://api.manychat.com
  description: Production. ManyChat publishes servers[] as an empty relative URL; the host is the one serving the Swagger
    document.
security:
- Bearer: []
tags:
- name: Sending
  description: Send content and flows to subscribers across Messenger, Instagram and WhatsApp
paths:
  /fb/sending/sendContent:
    post:
      tags:
      - Sending
      summary: Send content to subscriber
      description: 'Rate limit: 25 queries per second'
      operationId: sendContent
      requestBody:
        description: 'Data format: https://manychat.github.io/dynamic_block_docs/

          Supported message tags: https://developers.facebook.com/docs/messenger-platform/send-messages/message-tags#supported_tags

          More about message tags in ManyChat: https://support.manychat.com/support/solutions/articles/36000195552-message-tags


          **Attention! After March 4, 2020 requests without message tag may cause error**'
        required: true
        content:
          application/json:
            schema:
              required:
              - subscriber_id
              - data
              properties:
                subscriber_id:
                  type: integer
                data:
                  type: object
                  additionalProperties: false
                message_tag:
                  type: string
                  example: ACCOUNT_UPDATE
                otn_topic_name:
                  type: string
                  example: Сhannel news
              type: object
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseSuccess'
        '400':
          description: 'Possible error codes:

            3011 - Content can’t be sent to subscriber without message tag. Subscriber’s last interaction was over 24h ago.

            3021 - Content can’t be sent to subscriber. The subscriber has no One-Time Notification tokens for the selected
            topic.

            3031 - Content can’t be sent to subscriber without Notification Reason. Subscriber’s last interaction was more
            than 24 hours ago.

            304X - Content can’t be sent to subscriber via specific channel.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorWithCode'
      security:
      - Bearer: []
      x-provider-operation-id: b6ae94031676b69a57eb2ad5ea1413f9
  /fb/sending/sendContentByUserRef:
    post:
      tags:
      - Sending
      summary: Send content to user ref
      description: 'Rate limit: 25 queries per second'
      operationId: sendContentByUserRef
      requestBody:
        description: 'Attention! The method doesn''t process actions

          Data format https://manychat.github.io/dynamic_block_docs/'
        required: true
        content:
          application/json:
            schema:
              required:
              - user_ref
              - data
              properties:
                user_ref:
                  type: integer
                data:
                  type: object
                  additionalProperties: false
              type: object
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseSuccess'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
      security:
      - Bearer: []
      x-provider-operation-id: 637120a69445b2892f725cbfeaf347ca
  /fb/sending/sendFlow:
    post:
      tags:
      - Sending
      summary: Send Automation to subscriber
      description: 'Rate limit: 20 queries per second, 100 queries per a given subscriber per hour'
      operationId: sendFlow
      requestBody:
        description: 'Supported message tags: https://developers.facebook.com/docs/messenger-platform/send-messages/message-tags#supported_tags'
        required: true
        content:
          application/json:
            schema:
              required:
              - subscriber_id
              - flow_ns
              properties:
                subscriber_id:
                  type: integer
                flow_ns:
                  type: string
              type: object
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseSuccess'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
      security:
      - Bearer: []
      x-provider-operation-id: 28f1abbb07b0d4773b846dbeb3880e3c
components:
  schemas:
    ResponseError:
      description: ''
      required:
      - status
      - message
      - details
      properties:
        status:
          type: string
          example: error
        message:
          type: string
        details:
          required:
          - messages
          properties:
            messages:
              type: array
              items:
                $ref: '#/components/schemas/ResponseErrorMessage'
          type: object
          additionalProperties: false
      type: object
      additionalProperties: false
    ResponseErrorMessage:
      description: ''
      required:
      - message
      properties:
        message:
          type: string
      type: object
      additionalProperties: false
    ResponseErrorWithCode:
      description: ''
      required:
      - status
      - message
      - code
      properties:
        status:
          type: string
          example: error
        message:
          type: string
        code:
          type: integer
      type: object
      additionalProperties: false
    ResponseSuccess:
      description: ''
      required:
      - status
      properties:
        status:
          type: string
          example: success
      type: object
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: 'API key generated per page in the ManyChat dashboard under Settings > API. Sent as `Authorization: Bearer
        <page-id>:<api-key>`.'