---
name: z87:restaurants
description: 10K London restaurants with menus, Michelin stars, ingredient category scores (seafood, meat, game, etc.), and capacity data. More cities coming soon.
---

Anonymous: 600 tok/min. Key: `GET https://z87.ai/api/use` → `X-Api-Key` header, 6000 tok/min. On `429`, wait 1s.

## Search & Filter

/search?q=cuisine:italian — field-qualified search
/search?q=name:sketch — text search by name
/search?q=cuisine:japanese&michelin_min=1 — combine text + numeric filters
/search?q=&min_covers=50&sort=game — no text, filter by capacity, rank by category score
/search?q=&min_game=7 — find restaurants strong in game meats
/search?q=&min_seafood=8&sort=seafood — best seafood restaurants

### Text fields (in q=)
name (text), cuisine (keyword), city (keyword), country (keyword: gb), state (keyword: england), classification (keyword), price (keyword: $, $$, $$$, $$$$)

### Numeric filters
michelin_min, rating_min, min_covers, min_reviews

### Ingredient group filters (0-10 scale, takes max across sub-categories)
min_seafood — shellfish, crustaceans, salmon, tuna, whitefish
min_meat — beef, wagyu, lamb, goat, veal, pork, bacon, charcuterie
min_game — game meats (venison, rabbit, boar, etc.)
min_poultry — chicken, turkey, duck, game birds, foie gras
min_fish — salmon, trout, tuna, whitefish, caviar, roe
min_cheese — cheese
min_desserts — chocolate, pastry, prepared desserts
min_truffles — truffles, mushrooms, premium produce

### Sort
sort=rating, sort=reviews, sort=michelin, sort=covers
sort=seafood|meat|game|poultry|fish|cheese|desserts|truffles — rank by ingredient group score

## Nearby

/nearby?lat=51.51&lng=-0.13&radius_km=2 — geo search, combinable with all filters above

## Detail & Discovery

/details/{id} — full restaurant detail with menu, must-order, awards
/suggest?q=ali — autocomplete restaurant names
/random — random restaurant
/stats — dataset statistics

All endpoints accept both **GET with query parameters** and **POST with JSON body**.

## Endpoints

### `https://z87.ai/api/restaurants/search`

Field-qualified search with numeric filters. Fields: name, cuisine, city, country, state, classification, price

| Param | Type | Required | Default |
|-------|------|----------|---------|
| q | string | no | — |
| michelin_min | u8 | no | — |
| rating_min | f32 | no | — |
| min_covers | u16 | no | — |
| min_reviews | u32 | no | — |
| min_seafood | u8 | no | — |
| min_meat | u8 | no | — |
| min_game | u8 | no | — |
| min_poultry | u8 | no | — |
| min_fish | u8 | no | — |
| min_cheese | u8 | no | — |
| min_desserts | u8 | no | — |
| min_truffles | u8 | no | — |
| sort | string | no | — |
| limit | u32 | no | 20 |
| offset | u32 | no | 0 |

**Example:** `GET https://z87.ai/api/restaurants/search?q=cuisine:japanese&min_seafood=7&limit=1`

**Response:**
```json
{
  "restaurants": [
    {
      "id": 124,
      "name": "Cookaway",
      "city": "London",
      "state": "England",
      "country": "GB",
      "rating": 5.0,
      "review_count": 0,
      "price": "$$$$"
    }
  ],
  "total": 697,
  "limit": 1,
  "offset": 0
}
```

### `https://z87.ai/api/restaurants/nearby`

Find restaurants near a point. Combinable with all /search filters.

| Param | Type | Required | Default |
|-------|------|----------|---------|
| lat | f64 | **yes** | — |
| lng | f64 | **yes** | — |
| radius_km | f32 | no | 5 |
| q | string | no | — |
| michelin_min | u8 | no | — |
| rating_min | f32 | no | — |
| min_covers | u16 | no | — |
| min_seafood | u8 | no | — |
| min_meat | u8 | no | — |
| min_game | u8 | no | — |
| min_poultry | u8 | no | — |
| min_fish | u8 | no | — |
| min_cheese | u8 | no | — |
| min_desserts | u8 | no | — |
| min_truffles | u8 | no | — |
| sort | string | no | — |
| limit | u32 | no | 20 |
| offset | u32 | no | 0 |

**Example:** `GET https://z87.ai/api/restaurants/nearby?lat=51.51&lng=-0.13&radius_km=3&limit=1`

**Response:**
```json
{
  "restaurants": [
    {
      "id": 6257,
      "name": "Leicester Square Kitchen",
      "city": "London",
      "state": "England",
      "country": "GB",
      "lat": 51.50993728637695,
      "lng": -0.1297360062599182,
      "distance_km": 0.019999999552965164
    }
  ],
  "total": 2283,
  "lat": 51.51,
  "lng": -0.13,
  "radius_km": 3.0,
  "limit": 1,
  "offset": 0
}
```

### `https://z87.ai/api/restaurants/details/{id}`

Full restaurant detail with menu, must-order dishes, and awards

No parameters.

**Example:** `GET https://z87.ai/api/restaurants/details/8`

**Response:**
```json
{
  "restaurant": {
    "id": 8,
    "name": "Da Terra Restaurant",
    "address": "8 Patriot Square, London E2 9NF, United Kingdom",
    "city": "London",
    "state": "England",
    "country": "GB",
    "lat": 51.53043365478515,
    "lng": -0.05598200112581253,
    "rating": 4.800000190734863,
    "review_count": 0,
    "price": "$$$$",
    "classification": "fine_dining",
    "michelin_stars": 2,
    "covers_low": 30,
    "covers_high": 80,
    "cuisines": ["brazilian", "italian", "mediterranean"],
    "category_scores": {
      "bacon": 4,
      "beef": 9,
      "caviar": 10,
      "cheese": 9,
      "chocolate": 10,
      "charcuterie": 6,
      "dairy": 9,
      "salmon": 5,
      "tuna": 7,
      "whitefish": 10,
      "game": 6,
      "lamb": 7,
      "pantry": 8,
      "condiments": 10,
      "pork": 8,
      "chicken": 4,
      "duck": 9,
      "desserts": 1,
      "prepared": 2,
      "shellfish": 10,
      "truffles": 10
    },
    "awards": [
      "National Restaurant Awards 2023 (3rd in UK)",
      "SquareMeal London Restaurant of the Year 2022",
      "Good Food Guide - Exceptional Rating",
      "IWSC UK Sommelier of the Year 2025 (Maria Boumpa)"
    ],
    "recent_buzz": "...mpleted a 4-week refurbishment in late 2024 to create a more immersive open kitchen and bar experien...",
    "viral_dishes": ["Moqueca", "Romeo & Juliette flan", "Baba with Cachaça & Caviar"],
    "must_order": [
      {
        "dish": "Moqueca",
        "why": "A refined version of the Brazilian classic using aged turbot; it represents the heart of the chef's heritage."
      },
      {
        "dish": "Baba with Cachaça & N25 Caviar",
        "why": "An audacious dessert pairing boozy Brazilian spirit with top-tier saline caviar."
      },
      {
        "dish": "Isle of Mull Scallop Tartare",
        "why": "Hyper-fresh produce paired with complex, herbal broths."
      }
    ],
    "menu_items": [
      {
        "name": "Romeo & Juliette",
        "category": "dessert",
        "price": 0.0,
        "description": "Goat cheese flan topped with guava and crackers."
      },
      {
        "name": "3-Course Set Lunch",
        "category": "main",
        "price": 110.0,
        "description": "Accessible lunch menu featuring seasonal highlights."
      },
      {
        "name": "Full Tasting Menu",
        "category": "main",
        "price": 260.0,
        "description": "The complete seasonal journey reflecting Chef Rafael Cagali’s heritage."
      },
      {
        "name": "Moqueca",
        "category": "main",
        "price": 0.0,
        "description": "Brazilian seafood stew with aged turbot, manteiguinha beans, and farofa."
      },
      {
        "name": "Short Tasting Menu",
        "category": "main",
        "price": 185.0,
        "description": "An abbreviated evening exploration available mid-week."
      },
      {
        "name": "Sourdough with Bone Marrow",
        "category": "small_plate",
        "price": 0.0,
        "description": "Bread course served with house-cultured sea salt butter and beef bone marrow."
      }
    ],
    "website": "https://daterra.co.uk/"
  }
}
```

### `https://z87.ai/api/restaurants/suggest`

Autocomplete restaurant names by prefix

| Param | Type | Required | Default |
|-------|------|----------|---------|
| q | string | **yes** | — |
| limit | u32 | no | 20 |

**Example:** `GET https://z87.ai/api/restaurants/suggest?q=ali&limit=5`

**Response:**
```json
{"restaurants": [{"id": 8149, "name": "Ali's Berlin Doner"}, "...4 more"]}
```

### `https://z87.ai/api/restaurants/random`

Random restaurant

No parameters.

**Example:** `GET https://z87.ai/api/restaurants/random`

**Response:**
```json
{
  "restaurant": {
    "id": 3146,
    "name": "Cahchi",
    "address": "79-81 Kingston Rd, New Malden KT3 3PB, United Kingdom",
    "city": "New Malden",
    "state": "England",
    "country": "GB",
    "lat": 51.4000129699707,
    "lng": -0.2624860107898712
  }
}
```

### `https://z87.ai/api/restaurants/stats`

Dataset statistics

No parameters.

**Example:** `GET https://z87.ai/api/restaurants/stats`

**Response:**
```json
{
  "total_restaurants": 9910,
  "fields": {
    "cuisine": [
      ["mediterranean", 2360],
      ["british", 2168],
      ["seafood", 1565],
      ["italian", 1558],
      ["indian", 1535],
      ["bbq_grill", 1378],
      ["middle_eastern", 999],
      ["asian_fusion", 912],
      ["japanese", 794],
      ["steakhouse", 655],
      ["american", 626],
      ["turkish", 584],
      ["chinese", 452],
      ["thai", 421],
      ["french", 302],
      ["spanish", 294],
      ["korean", 277],
      ["lebanese", 270],
      ["caribbean", 242],
      ["greek", 229],
      ["latin_american", 225],
      ["african", 224],
      ["mexican", 214],
      ["southeast_asian", 213],
      ["pakistani", 199],
      ["bangladeshi", 196],
      ["southern_american", 190],
      ["vietnamese", 181],
      ["south_asian", 179],
      ["portuguese", 157],
      ["nepalese", 134],
      ["malaysian", 134],
      ["persian", 125],
      ["sri_lankan", 106],
      ["brazilian", 87],
      ["ethiopian", 81],
      ["afghan", 67],
      ["argentinian", 60],
      ["moroccan", 60],
      ["australian", 49],
      ["peruvian", 45],
      ["israeli", 44],
      ["taiwanese", 41],
      ["hawaiian", 38],
      ["cypriot", 37],
      ["colombian", 35],
      ["german", 32],
      ["polish", 30],
      ["indonesian", 30],
      ["irish", 28],
      "...18 more"
    ],
    "city": [
      ["london", 7660],
      ["harrow", 142],
      ["ilford", 123],
      ["croydon", 108],
      ["wembley", 93],
      ["romford", 91],
      ["hounslow", 90],
      ["richmond", 78],
      ["twickenham", 72],
      ["kingston upon thames", 67],
      ["bromley", 64],
      ["orpington", 63],
      ["enfield", 61],
      ["pinner", 60],
      ["sutton", 58],
      ["barnet", 52],
      ["southall", 51],
      ["uxbridge", 49],
      ["hornchurch", 48],
      ["beckenham", 46],
      ["surbiton", 44],
      ["new malden", 39],
      ["bexleyheath", 36],
      ["edgware", 36],
      ["sidcup", 36],
      ["hayes", 34],
      ["ruislip", 29],
      ["northwood", 28],
      ["feltham", 27],
      ["welling", 27],
      ["dagenham", 25],
      ["teddington", 25],
      ["chislehurst", 24],
      ["upminster", 23],
      ["south croydon", 23],
      ["stanmore", 21],
      ["greenford", 19],
      ["brentford", 19],
      ["barking", 18],
      ["coulsdon", 18],
      ["west wickham", 18],
      ["carshalton", 17],
      ["isleworth", 17],
      ["woodford green", 17],
      ["mitcham", 15],
      ["wallington", 15],
      ["west drayton", 15],
      ["worcester park", 14],
      ["bexley", 14],
      ["morden", 13],
      "...58 more"
    ],
    "country": [["gb", 9910]],
    "state": [["england", 9910]],
    "classification": [
      ["casual_dining", 4275],
      ["upscale_casual", 1734],
      ["fast_casual", 998],
      ["pub", 894],
      ["cafe", 694],
      ["qsr", 376],
      ["fine_dining", 289],
      ["street_food", 254],
      ["bar", 226],
      ["bakery", 85],
      ["other", 85]
    ],
    "price": [["$$", 7065], ["$$$", 2178], ["$$$$", 488], ["$", 179]]
  },
  "category_score_fields": [
    "bacon",
    "beef",
    "caviar",
    "cheese",
    "chocolate",
    "charcuterie",
    "dairy",
    "salmon",
    "tuna",
    "whitefish",
    "game",
    "lamb",
    "pantry",
    "condiments",
    "pork",
    "chicken",
    "duck",
    "desserts",
    "prepared",
    "shellfish",
    "truffles"
  ]
}
```

## License

The z87 API code is MIT licensed. Each dataset carries its upstream license:
- **restaurants**: Restaurant data derived from publicly available information including restaurant websites and web search results. Business names and trademarks belong to their respective owners. z87 is not responsible for the accuracy, completeness, or currency of the content. Data provided as-is for informational purposes. z87 API code is MIT.


---

## Other z87 Datasets

- [chess](https://z87.ai/api/chess/SKILL.md) — 1B+ Lichess games (2000+ Elo, 2013-2026)
- [colors](https://z87.ai/api/colors/SKILL.md) — Unified paint color database: ~30K colors across 20+ brands with cross-brand matching via CIEDE2000 perceptual distance, color harmony generation, coordinating color strips, and palette suggestions.
- [companies_uk](https://z87.ai/api/companies_uk/SKILL.md) — 5.7M UK companies from Companies House
- [countries](https://z87.ai/api/countries/SKILL.md) — 247 countries with 282 indicators (57 static, 225 timeseries) across economics, health, demographics, energy, environment, education, and more
- [design](https://z87.ai/api/design/SKILL.md) — 1,003 production-grade frontend designs with HTML, screenshots, prompts, and structured metadata (26 categories, 40 styles, 4K+ tags)
- [food](https://z87.ai/api/food/SKILL.md) — Recipes, FDC ingredients, and food products: 13.5K recipes with nutrition, 8K+ FDC ingredients, curated products with Nutri-Score and NOVA ratings.
- [gbif](https://z87.ai/api/gbif/SKILL.md) — GBIF Backbone Taxonomy: 7.7 million taxa with full taxonomic hierarchy, synonym resolution, tree navigation, and full-text search across the tree of life.
- [gutenberg](https://z87.ai/api/gutenberg/SKILL.md) — 60,000 Project Gutenberg books with chapter-level access, BM25 full-text search, cover art, illustrations, and AI-generated tags (genre, mood, era, locations, five-word summaries).
- [holidays](https://z87.ai/api/holidays/SKILL.md) — 3,391 public holidays across 121 countries (2026–2027)
- [home](https://z87.ai/api/home/SKILL.md) — Unified smart home device database
- [jokes](https://z87.ai/api/jokes/SKILL.md) — 41,000 jokes from three sources, AI-tagged with category, rating, topics, and offensive score
- [manpages](https://z87.ai/api/manpages/SKILL.md) — 142K Linux man pages with AI-generated cheat cards, category tags, use-frequency scores, and plain-english descriptions
- [movies](https://z87.ai/api/movies/SKILL.md) — 360K+ movies with 40-axis taste profiles, cast, themes, ratings, and soundtrack data
- [mtg](https://z87.ai/api/mtg/SKILL.md) — 29K Magic: The Gathering cards with synergy graph engine, combo detection, and Commander deck builder.
- [music](https://z87.ai/api/music/SKILL.md) — 651K artists, 500K+ albums, 1M+ songs from MusicBrainz with genre, country, and member data
- [osm](https://z87.ai/api/osm/SKILL.md) — 46M+ OpenStreetMap POIs with Hilbert-curve spatial index and BM25 text search
- [podcast](https://z87.ai/api/podcast/SKILL.md) — 1M+ podcasts from PodcastIndex with categories, language, episode counts, popularity scores, and cadence estimates
- [solve](https://z87.ai/api/solve/SKILL.md) — Computation engine: symbolic algebra, statistics, regression, finance, graph algorithms, Monte Carlo simulation
- [wikipedia](https://z87.ai/api/wikipedia/SKILL.md) — 7.2 million English Wikipedia articles with full markdown content, infoboxes, inter-article links, and geographic coordinates.
- [wiktionary](https://z87.ai/api/wiktionary/SKILL.md) — 8M+ Wiktionary entries across 4,000+ languages

Full index: [https://z87.ai/api/SKILL.md](https://z87.ai/api/SKILL.md)
