# Recipe: a restaurant or café

A complete request body for a place: reserve first, then menu, directions, hours, delivery, and a chat button.

People open this from a story or a search on their phone, usually hungry and usually now. The page answers "can I come, and how" before anything else.

```json
{
  "username": "osteria-lume",
  "locale": "en",
  "page": {
    "displayName": "Osteria Lume",
    "bio": "Small plates and natural wine in Kreuzberg. Tue–Sun from 18:00.",
    "templateId": "photo",
    "layout": "grid",
    "blocks": [
      {
        "type": "link",
        "label": "Reserve a table",
        "url": "https://reserve.example/lume",
        "featured": true,
        "path": "book"
      },
      {
        "type": "link",
        "label": "Menu",
        "url": "https://lume.example/menu.pdf",
        "note": "Updated weekly"
      },
      {
        "type": "link",
        "label": "Find us",
        "url": "https://maps.google.com/?q=Osteria+Lume",
        "note": "Reichenberger Str. 12"
      },
      {
        "type": "link",
        "label": "Order delivery",
        "url": "https://delivery.example/lume"
      },
      {
        "type": "link",
        "label": "Call to reserve",
        "url": "tel:+4930123456",
        "note": "From 16:00"
      },
      {
        "type": "messenger",
        "platform": "whatsapp",
        "handle": "+4915112345678",
        "label": "Groups of 8+ · ask here"
      },
      {
        "type": "text",
        "variant": "paragraph",
        "content": "Closed on Mondays. Kitchen until 22:30."
      },
      {
        "type": "socialRow",
        "items": [
          {
            "platform": "instagram",
            "url": "https://instagram.com/osterialume"
          }
        ]
      }
    ]
  },
  "avatarUrl": "https://example.com/lume-logo.png"
}
```

## Why it is shaped this way

- Reserve is the featured link and has a short path (`/book`) for the card on the table.
- The `photo` template with `grid` layout gives every link a picture — add `image` keys after uploading dish photos with `kind: "card"`.
- Hours are a `text` paragraph, not a link: they are read, not tapped.
- One messenger button for the enquiry that a booking widget cannot handle, and a `tel:` link for the people who would rather call.

Replace every URL and every word with the person's own. Then `POST https://tapmy.link/api/agent/pages`, read `page.md`, hand over.

---
Part of the [Tapmy.link agent documentation](https://tapmy.link/documentation/agents.md). Canonical: https://tapmy.link/documentation/agents/recipe-restaurant.md
