# Deliveroo Restaurant & Menu Scraper (x402)

> Deliveroo Restaurant & Menu Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.1/call, status unknown (last checked 2026-10-02).

Scrapes structured restaurant listings and menu data from Deliveroo for a given postcode and market domain, returning names, slugs, addresses, and menu items.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/deliveroo?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/deliveroo-restaurant-menu-scraper-x402-60dbeb07
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_c6xyqcaHcNRBL4j_qO-hD

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability deliveroo-restaurant-menu-scraper-x402-60dbeb07 -d '<json body>'
```

Example prompt: Can you pull me a list of up to 30 Deliveroo restaurants in the EC1A postcode area (co.uk market) including their full menus and street addresses — limit to 100 menu items per restaurant?

## When to prefer this

Use this endpoint when you need structured Deliveroo restaurant and menu data for a specific postcode across any of the 12 supported Deliveroo markets (UK, IE, FR, IT, BE, NL, AE, HK, SG, AU, QA, KW). It is pay-per-call with no charge for failed or empty runs, making it cost-safe for exploratory queries. Prefer this over generic web scrapers when you need Deliveroo-specific structured output like restaurant slugs, Deliveroo IDs, and per-restaurant menu items with prices.

## Known failure modes

- Invalid or unserved postcode returns empty items array (not charged)
- Unsupported domain enum value returns validation error
- Restaurant URL without serving query parameters may yield incorrect local menu
- maxRestaurants or maxMenuItems out of allowed range triggers schema validation failure
- Deliveroo page structure changes may cause empty or partial results (not charged if empty)
- Network or scraping timeout may result in a failed run (not charged)

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object with a count field and an items array of restaurant records, each containing name, URL, slug, Deliveroo restaurant ID, city, neighborhood, source URL, and optionally street address/postcode and menu items with prices.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "domain": {
   "enum": [
    "co.uk",
    "ie",
    "fr",
    "it",
    "be",
    "nl",
    "ae",
    "hk",
    "sg",
    "au",
    "qa",
    "kw"
   ],
   "type": "string",
   "default": "co.uk",
   "description": "Market domain used for location searches."
  },
  "queries": {
   "type": "array",
   "description": "City/neighborhood paths for location search. Requires a delivery postcode."
  },
  "menuMode": {
   "enum": [
    "limited",
    "all"
   ],
   "type": "string",
   "default": "limited",
   "description": "Limit menu items per restaurant or return every item on the public menu page."
  },
  "postcode": {
   "type": "string",
   "description": "Postcode used to choose a serving area and local menu."
  },
  "includeMenu": {
   "type": "boolean",
   "default": true,
   "description": "Include public menu items and prices for each restaurant."
  },
  "includeExtra": {
   "type": "boolean",
   "default": true,
   "description": "Include the public street address and postcode when available."
  },
  "maxMenuItems": {
   "type": "integer",
   "default": 80,
   "maximum": 2000,
   "minimum": 1,
   "description": "Per-restaurant item limit when menu coverage is limited."
  },
  "includeReviews": {
   "type": "boolean",
   "default": false,
   "description": "Reserved for public review text when available; public menu pages currently provide ratings but no review text."
  },
  "maxRestaurants": {
   "type": "integer",
   "default": 50,
   "maximum": 500,
   "minimum": 1,
   "description": "Maximum restaurant rows in the dataset."
  },
  "restaurantUrls": {
   "type": "array",
   "description": "Public Deliveroo menu URLs. Keep the serving query parameters when available. Takes priority over locations."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "city": null,
    "name": null,
    "slug": null,
    "drnId": null,
    "sourceUrl": null,
    "neighborhood": null,
    "restaurantId": null
   }
  ],
  "product": "deliveroo"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/deliveroo-restaurant-menu-scraper-x402-60dbeb07/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
