WhatsApp Update Flow API

The Update Flow API from WhatsApp — 4 operation(s) for update flow.

Operations 6

POST /{Version}/{Flow-ID} Update Flow Metadata #
DELETE /{Version}/{Flow-ID} Delete Flow #
GET /{Version}/{Flow-ID}/assets List Assets (Get Flow JSON URL) #
POST /{Version}/{Flow-ID}/assets Update Flow JSON #
POST /{Version}/{Flow-ID}/publish Publish Flow #
POST /{Version}/{Flow-ID}/deprecate Deprecate Flow #

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/whatsapp:whatsapp-update-flow-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

OpenAPI Specification

whatsapp-update-flow-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Meta Graph API - Application Connected Client Businesses…
  version: v23.0
  description: 'API for retrieving connected client businesses associated with a Meta application.


    This endpoint allows applications to retrieve information about businesses that have

    established client connections through the application. This is essential for managing

    business relationships and understanding client business configurations.'
  contact:
    name: Meta Business Platform Team
    url: https://developers.facebook.com/support
  license:
    name: Meta Platform Terms
    url: https://developers.facebook.com/terms
  termsOfService: https://developers.facebook.com/terms
servers:
- url: https://graph.facebook.com
  description: Production Graph API server
- url: https://graph.facebook.com
- url: https://graph.facebook.com
  description: WhatsApp Business Cloud API
- url: https://graph.facebook.com
  description: Meta Graph API production server
tags:
- name: Update Flow
paths:
  /{Version}/{Flow-ID}:
    parameters:
    - $ref: '#/components/parameters/UserAgent'
    - $ref: '#/components/parameters/Authorization'
    - name: Version
      in: path
      required: true
      schema:
        type: string
    - name: Flow-ID
      in: path
      required: true
      schema:
        type: string
    post:
      tags:
      - Update Flow
      summary: Update Flow Metadata
      operationId: updateFlowMetadata
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                categories:
                  type: string
                  example: '["OTHER"]'
                endpoint_uri:
                  type: string
                  example: https://example.com
                name:
                  type: string
                  example: <NEW_FLOW_NAME>
      responses:
        '200':
          description: Update Flow Metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
              examples:
                Update Flow Metadata:
                  value:
                    success: true
      security:
      - bearerAuth: []
    delete:
      tags:
      - Update Flow
      summary: Delete Flow
      description: Deletes the flow entirely. This action is not reversible. Only a DRAFT flow can be deleted.
      operationId: deleteFlow
      responses:
        '200':
          description: Delete Flow
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
              examples:
                Delete Flow:
                  value:
                    success: true
      security:
      - bearerAuth: []
  /{Version}/{Flow-ID}/assets:
    parameters:
    - $ref: '#/components/parameters/UserAgent'
    - $ref: '#/components/parameters/Authorization'
    - name: Version
      in: path
      required: true
      schema:
        type: string
    - name: Flow-ID
      in: path
      required: true
      schema:
        type: string
    get:
      tags:
      - Update Flow
      summary: List Assets (Get Flow JSON URL)
      description: Returns all assets attached to the flow. Currently only FLOW_JSON asset is supported
      operationId: listAssetsGetFlowJsonUrl
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: List Assets
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        asset_type:
                          type: string
                          example: FLOW_JSON
                        download_url:
                          type: string
                          example: https://scontent.xx.fbcdn.net/m1/v/t0.57323-24/An_Hq0jnfJ...
                        name:
                          type: string
                          example: flow.json
                    example:
                    - asset_type: FLOW_JSON
                      download_url: https://scontent.xx.fbcdn.net/m1/v/t0.57323-24/An_Hq0jnfJ...
                      name: flow.json
                  paging:
                    type: object
                    properties:
                      cursors:
                        type: object
                        properties:
                          after:
                            type: string
                            example: QVFIU...
                          before:
                            type: string
                            example: QVFIU...
              examples:
                List Assets:
                  value:
                    data:
                    - asset_type: FLOW_JSON
                      download_url: https://scontent.xx.fbcdn.net/m1/v/t0.57323-24/An_Hq0jnfJ...
                      name: flow.json
                    paging:
                      cursors:
                        after: QVFIU...
                        before: QVFIU...
      security:
      - bearerAuth: []
    post:
      tags:
      - Update Flow
      summary: Update Flow JSON
      description: 'Used to upload a flow JSON file with the flow content. Refer to flow JSON documentation here https://developers.facebook.com/docs/whatsapp/flows/reference/flowjson


        The file must be attached as from data. The response will include any validation errors in the JSON file'
      operationId: updateFlowJson
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                asset_type:
                  type: string
                  example: FLOW_JSON
                file:
                  type: string
                  format: binary
                name:
                  type: string
                  example: flow.json
      responses:
        '200':
          description: Upload Flow JSON Asset
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  validation_errors:
                    type: array
                    items:
                      type: object
                      properties:
                        column_end:
                          type: number
                          example: 30
                        column_start:
                          type: number
                          example: 17
                        error:
                          type: string
                          example: INVALID_PROPERTY
                        error_type:
                          type: string
                          example: JSON_SCHEMA_ERROR
                        line_end:
                          type: number
                          example: 46
                        line_start:
                          type: number
                          example: 46
                        message:
                          type: string
                          example: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0".
                    example:
                    - column_end: 30
                      column_start: 17
                      error: INVALID_PROPERTY
                      error_type: JSON_SCHEMA_ERROR
                      line_end: 46
                      line_start: 46
                      message: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0".
              examples:
                Upload Flow JSON Asset:
                  value:
                    success: true
                    validation_errors:
                    - column_end: 30
                      column_start: 17
                      error: INVALID_PROPERTY
                      error_type: JSON_SCHEMA_ERROR
                      line_end: 46
                      line_start: 46
                      message: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0".
      security:
      - bearerAuth: []
  /{Version}/{Flow-ID}/publish:
    parameters:
    - $ref: '#/components/parameters/UserAgent'
    - $ref: '#/components/parameters/Authorization'
    - name: Version
      in: path
      required: true
      schema:
        type: string
    - name: Flow-ID
      in: path
      required: true
      schema:
        type: string
    post:
      tags:
      - Update Flow
      summary: Publish Flow
      description: Updates the status of the flow as "PUBLISHED". This action is not reversible. The flow and its assets become immutable once published. To update the flow, you must create a new flow and specify the previous flow id as the \`clone_flow_id\` parameter
      operationId: publishFlow
      responses:
        '200':
          description: Publish Flow
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
              examples:
                Publish Flow:
                  value:
                    success: true
      security:
      - bearerAuth: []
  /{Version}/{Flow-ID}/deprecate:
    parameters:
    - $ref: '#/components/parameters/UserAgent'
    - $ref: '#/components/parameters/Authorization'
    - name: Version
      in: path
      required: true
      schema:
        type: string
    - name: Flow-ID
      in: path
      required: true
      schema:
        type: string
    post:
      tags:
      - Update Flow
      summary: Deprecate Flow
      description: Updates the status of the flow as "DEPRECATED". This action is not reversible. Only a published flow can be deprecated to prevent sending or opening it.
      operationId: deprecateFlow
      responses:
        '200':
          description: Deprecate Flow
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
              examples:
                Deprecate Flow:
                  value:
                    success: true
      security:
      - bearerAuth: []
components:
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: 'Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token.

        '
      required: true
      schema:
        type: string
        pattern: ^Bearer\s+[A-Za-z0-9\-_.]+.*$
        example: Bearer EAABwzLixnjYBOzYmNMJJGfHq9DgNh...
    UserAgent:
      name: User-Agent
      in: header
      description: The user agent string identifying the client software making the request.
      required: false
      schema:
        type: string
        default: Meta-Business-Messaging-OpenAPI/1.0.0;spec=2025-10-21
        pattern: ^[a-zA-Z0-9\-_]+\/[0-9]+\.[0-9]+\.[0-9]+(;[a-zA-Z0-9\-=\.]+)?(\s+[a-zA-Z0-9\-_]+\/[0-9\-\.]+)?$
        example: Meta-Business-Messaging-OpenAPI/1.0.0;spec=2025-10-21
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'System user access token with whatsapp_business_management permission. Format: Bearer YOUR_SYSTEM_USER_ACCESS_TOKEN

        '