---
title: "Change one saved Hive Messenger menu using its exact revision. Omitted name, items and account keep their saved values; the menu stays on its original Facebook Page. Saving never publishes it to Meta."
method: POST
path: "/api/v1/tools/update_messenger_menu"
---

# Change one saved Hive Messenger menu using its exact revision. Omitted name, items and account keep their saved values; the menu stays on its original Facebook Page. Saving never publishes it to Meta.

`POST /api/v1/tools/update_messenger_menu`

## Request

- Base URL: `https://hivepublish.com`
- URL: `https://hivepublish.com/api/v1/tools/update_messenger_menu`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `menuId` string, required: The menu to change.
  - `accountId` string: The connected Facebook Page account.
  - `expectedRevision` integer, required: The revision read_messenger_menus returned.
  - `name` string
  - `items` object[]: Top-level Flow or HTTPS website actions. Saving pins the current published Messenger Flow version for this exact Facebook Page.
    - `id` string, required: Stable local item id.
    - `label` string, required: Visible action text.
    - `type` 'flow' | 'website', required
    - `flowId` string: Published Flow id for a flow action.
    - `url` string: HTTPS URL for a website action.

## Response `200`

Tool result

- ToolResult
  - `data` unknown, required
  - `meta` object, required
    - `tool` string
    - `workspaceId` string, uuid

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid credential
- `403`: Missing workspace scope, role permission, or plan entitlement
- `409`: Idempotency conflict, replay, or request still in progress
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/hivepublish/apis/hive-developer-api.md) · [All operations](https://skmtc.dev/hivepublish/apis/hive-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hivepublish/apis/hive-developer-api/revisions/b440c763583e?raw)
