---
title: "Replace food menus"
method: PATCH
path: "/api/profiles/{profile_id}/google_business/update_food_menus"
tags: ["Google Business"]
---

# Replace food menus

`PATCH /api/profiles/{profile_id}/google_business/update_food_menus`

## Request

- Base URL: `https://api.postproxy.dev`
- URL: `https://api.postproxy.dev/api/profiles/{profile_id}/google_business/update_food_menus`
- Auth: HTTP bearer

Replaces the complete menu list. Requires metadata.canHaveFoodMenus; otherwise 422. Structure is menu -> sections -> items, all labels carry a languageCode, and prices need currencyCode and units.

## Path parameters

- `profile_id` string, required

## Query parameters

- `profile_group_id` string

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `location_id` string, required: Placement ID — the location's full Google resource path
  - `menus` object[], required: The complete menu list — this replaces what's there

## Response `200`

The updated food menus

- object: Google's own resource shape, camelCased keys, passed through unchanged

## Other responses

- `400`: Missing required parameters.
- `401`: Invalid, missing, or insufficient API key permissions.
- `403`: Google refused the operation for this account
- `404`: Resource does not exist or is not accessible.
- `422`: Validation failed.
- `429`: Posting rate limit reached.

---

[API](https://skmtc.dev/postproxy/apis/postproxy-social-media-api.md) - [All operations](https://skmtc.dev/postproxy/apis/postproxy-social-media-api/llms.txt) - [OpenAPI document](https://skmtc.dev/postproxy/apis/postproxy-social-media-api/revisions/d54482ac4ce7?raw)
