---
title: "Upload flow JSON"
method: PUT
path: "/v1/whatsapp/flows/{flowId}/json"
tags: ["WhatsApp Flows"]
---

# Upload flow JSON

`PUT /v1/whatsapp/flows/{flowId}/json`

Upload or update the Flow JSON for a DRAFT flow. The Flow JSON defines all screens,
components (text inputs, dropdowns, date pickers, etc.), and navigation.

Meta validates the JSON on upload and returns any validation errors.
See: https://developers.facebook.com/docs/whatsapp/flows/reference/flowjson

## Path parameters

- `flowId` string, required

## Request body

- object
  - `accountId` string, required — WhatsApp social account ID
  - `flow_json` union, required — The Flow JSON content. Pass as a JSON object or a JSON string.
    - object
    - string

## Response `200`

Flow JSON uploaded

- object
  - `success` boolean
  - `validation_errors` object[] — Empty array if valid; otherwise, contains validation error details from Meta
    - `error` string
    - `error_type` string
    - `message` string
    - `line_start` integer
    - `line_end` integer
    - `column_start` integer
    - `column_end` integer

## Other responses

- `400` — Invalid JSON or flow is not in DRAFT status
- `401` — Unauthorized
- `404` — WhatsApp account not found

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/versions/51932b099b2f/schema)
