LateLate API
Utilities

GMB Food Menus


Get Google Business Profile food menus

Fetches food menus for a connected Google Business Profile location.

Returns the full menu structure including:

  • Menu names and descriptions
  • Sections (e.g. Appetizers, Entrees, Drinks)
  • Items with labels, pricing, dietary info, and allergens
  • Item options/variants

Only available for locations with food menu support (restaurants, cafes, etc.).

GET
/v1/accounts/{accountId}/gmb-food-menus
AuthorizationBearer <token>

API key authentication - use your Late API key as a Bearer token

In: header

Path Parameters

accountIdstring

The Late account ID (from /v1/accounts)

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://getlate.dev/api/v1/accounts/string/gmb-food-menus"
{
  "success": true,
  "accountId": "64e1f0a9e2b5af0012ab34cd",
  "locationId": "9281089117903930794",
  "name": "accounts/123456789/locations/9281089117903930794/foodMenus",
  "menus": [
    {
      "labels": [
        {
          "displayName": "Lunch Menu",
          "description": "Available 11am-3pm",
          "languageCode": "en"
        }
      ],
      "sections": [
        {
          "labels": [
            {
              "displayName": "Appetizers"
            }
          ],
          "items": [
            {
              "labels": [
                {
                  "displayName": "Caesar Salad",
                  "description": "Romaine, parmesan, croutons"
                }
              ],
              "attributes": {
                "price": {
                  "currencyCode": "USD",
                  "units": "12"
                },
                "dietaryRestriction": [
                  "VEGETARIAN"
                ]
              }
            }
          ]
        }
      ]
    }
  ]
}
{
  "error": "This endpoint is only available for Google Business Profile accounts"
}
{
  "error": "Access token expired. Please reconnect your Google Business Profile account."
}
{
  "error": "You do not have permission to access food menus for this location."
}
{
  "error": "Not found"
}
{
  "error": "string",
  "details": {}
}

Update Google Business Profile food menus

Updates the food menus for a connected Google Business Profile location.

Send the full menus array. Use updateMask for partial updates (e.g. "menus" to only update the menus field).

Each menu can contain sections, and each section can contain items with pricing, dietary restrictions, allergens, and more.

PUT
/v1/accounts/{accountId}/gmb-food-menus
AuthorizationBearer <token>

API key authentication - use your Late API key as a Bearer token

In: header

Path Parameters

accountIdstring

The Late account ID (from /v1/accounts)

menus

Array of food menus to set

updateMask?string

Field mask for partial updates (e.g. "menus")

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://getlate.dev/api/v1/accounts/string/gmb-food-menus" \  -H "Content-Type: application/json" \  -d '{    "menus": [      {        "labels": [          {            "displayName": "Dinner Menu",            "languageCode": "en"          }        ],        "sections": [          {            "labels": [              {                "displayName": "Mains"              }            ],            "items": [              {                "labels": [                  {                    "displayName": "Grilled Salmon",                    "description": "With seasonal vegetables"                  }                ],                "attributes": {                  "price": {                    "currencyCode": "USD",                    "units": "24"                  },                  "allergen": [                    "FISH"                  ]                }              }            ]          }        ]      }    ],    "updateMask": "menus"  }'
{
  "success": true,
  "accountId": "string",
  "locationId": "string",
  "name": "string",
  "menus": [
    {
      "labels": [
        {
          "displayName": "string",
          "description": "string",
          "languageCode": "string"
        }
      ],
      "sections": [
        {
          "labels": [
            {
              "displayName": "string",
              "description": "string",
              "languageCode": "string"
            }
          ],
          "items": [
            {
              "labels": [
                {
                  "displayName": "string",
                  "description": "string",
                  "languageCode": "string"
                }
              ],
              "attributes": {
                "price": {
                  "currencyCode": "string",
                  "units": "string",
                  "nanos": 0
                },
                "spiciness": "string",
                "allergen": [
                  "string"
                ],
                "dietaryRestriction": [
                  "string"
                ],
                "servesNumPeople": 0,
                "preparationMethods": [
                  "string"
                ],
                "mediaKeys": [
                  "string"
                ]
              },
              "options": [
                {
                  "labels": [
                    {
                      "displayName": "string",
                      "description": "string",
                      "languageCode": "string"
                    }
                  ],
                  "attributes": {
                    "price": {
                      "currencyCode": "string",
                      "units": "string",
                      "nanos": 0
                    },
                    "spiciness": "string",
                    "allergen": [
                      "string"
                    ],
                    "dietaryRestriction": [
                      "string"
                    ],
                    "servesNumPeople": 0,
                    "preparationMethods": [
                      "string"
                    ],
                    "mediaKeys": [
                      "string"
                    ]
                  }
                }
              ]
            }
          ]
        }
      ],
      "cuisines": [
        "string"
      ],
      "sourceUrl": "string"
    }
  ]
}
{
  "error": "Request body must include a \"menus\" array"
}
{
  "error": "string",
  "details": {}
}
{
  "error": "string",
  "details": {}
}
{
  "error": "Not found"
}
{
  "error": "string",
  "details": {}
}