Menus

Read a menu

The restaurant's menu, read from its own site: a whole menu Layout read within the last 30 days when it holds one (readAt says when), else a live read. The same read the MCP menu tool runs. A first read takes up to a minute, so this answers 202 reading with a menuId when it is not done; poll GET /menus/{menuId}. Read-only: nothing is built or charged to the person.

post/menus

Request

  • Base URL: https://api.layout.link/v1
  • URL: https://api.layout.link/v1/menus
  • Auth: HTTP bearer

Headers

Layout-Version'2026-10-01'

The API version you code against. Optional; without it you get 2026-10-01, the current version. Layout answers with the version it used.

Idempotency-Keystring

Optional. Any 1 to 255 visible ASCII characters, unique per real intent. A retry with the same key and the same body gets the stored response for 24 hours, with Idempotent-Replayed: true, and is never run twice. The same key with a different body is 409 idempotency_conflict; while the first request is still running it is 409 in_progress with Retry-After. Only a success is stored: any error releases the key so it can be sent again. A 4xx ran nothing. A 5xx may have run, above all a confirm's 500, so read the resource before sending anything changed.

Request body

placeIdstring
querystring

A restaurant name.

nearstring

Where, in the person's words.

latnumber
lngnumber
categorystring

One menu section, from a categories answer.

mode'live' | 'knowledge'

live (default) reads the restaurant's own site. knowledge answers from general knowledge, labeled live: false, and opens nothing.

intentstring

The person's own request, for a knowledge answer.

Example request

{
  "placeId": "ChIJbloomCoffee",
  "query": "Bloom Coffee",
  "near": "Rocklin, CA"
}

Response

An answer: a menu, its sections, a labeled knowledge answer, or why there is none.

OR
OR
OR
OR
OR
OR

Example response

{
  "items": [
    {
      "image": {
        "url": "https://cdn.layout.link/items/d/raisingcanes.com/the-box-combo-0e9d083ec191.jpg"
      }
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.