Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Deliveroo API page →
E-commerce & Marketplaces

Deliveroo API & Scraper

Deliveroo shows a different set of stores, fees and delivery times for every address, so this API always takes a location: latitude and longitude, a postcode, or a geohash.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

`stores` returns every restaurant, supermarket, Deliveroo HOP store and shop that delivers there (3,984 for a London W1 postcode on 2026-10-18) with the delivery fee and minimum order for that address, the delivery-time estimate, distance, star rating, price band and current offer, filtered by Deliveroo's own tabs (restaurants, grocery, shopping), cuisine, dish or dietary option, and sorted and paged over the complete list. `store` opens one restaurant menu or grocery catalogue: every category or aisle and the items with price, sale price, the loyalty price a supermarket prints (Tesco Clubcard, Sainsbury's Nectar, Waitrose loyalty card), unit price, size, availability, the stock count where the store publishes one, calories and dietary tags. `search` looks up a dish or a product across the stores delivering to the address, the way Deliveroo's search box does, and returns each match with its price, sold-out flag and the store selling it. `filters` lists the cuisines, dishes and dietary options available at an address with store counts.

Reference

What a Deliveroo field actually contains

Fields that read differently from how they look. Every row was measured against live responses on 2026-10-18.

FieldWhat it holds
delivery_fee, minimum_orderThe fee and minimum spend Deliveroo charges for the address you sent, not a store-wide constant. Each has amount, currency and the text Deliveroo prints (£0.79, KD 1.000). Matched the store page for the same address on 8 of 8 stores.
store_typerestaurant, or shop for Deliveroo's on-demand grocery and retail stores (supermarkets, Deliveroo HOP, convenience, pharmacy). The grocery tab also contains some restaurants that sell groceries (27 of 364 in London W1).
rating, rating_percentagerating is the star value Deliveroo shows (4.7); rating_percentage is Deliveroo's own score it is derived from (94.9). New stores have neither.
delivery_time_minutes, eta_range_minutesThe current estimate Deliveroo shows (15) and its range (10-20), live at the moment of the call.
price, sale_priceprice is the item's regular price; sale_price is set when the item is discounted (Waitrose carbonara £6.25, sale £5.00 with "20% off").
member_price, offer_textmember_price is the loyalty-card price a supermarket prints in its offer: Tesco "£2.00 Clubcard (£13.33/kg)" gives 2.00 with program Clubcard. Multi-buys ("3 for £10 Clubcard") stay in offer_text only.
stock_count, availablestock_count is the number of units the store shows, published by some grocers only (Deliveroo HOP and Tesco Express: most items; Sainsbury's and Waitrose: none). available false means the item cannot be ordered now.
sold_out (search)Deliveroo prints "Currently sold out" instead of the price; the price is still returned and sold_out is true.
amount (Kuwait)Kuwaiti dinar has three decimals: KD 1.450 is 1.45.

Deliveroo's recommended order is reshuffled on every request (0 of the first 100 positions repeated a minute apart), so stores are sorted by distance by default; page with pagination.next_cursor and no store is repeated. Search returns up to about 50 stores with up to 10 matching items each per query.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/deliveroo/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "country": "uk",
    "query": "milk",
    "postcode": "W1W 5QZ"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "deliveroo",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1762.3,
    "record_count": 344,
    "bytes": 325162,
    "cache_hit": false,
    "upstream_requests": 1,
    "charged_credits": 3,
    "version": "1.0.1",
    "request_id": "491b560fd5bb44e2",
    "fetched_at": "2026-10-18T17:44:59.062Z"
  },
  "data": {
    "items": [
      {
        "item_id": "2562392646",
        "drn_id": "6210ba18-775a-4e3a-96a6-a1e0c23540f6",
        "name": "Sainsbury's Semi Skimmed Fresh British Milk 4 Pints/2.272L",
        "price": {
          "amount": 1.9,
          "currency": "GBP",
          "display": "£1.90"
        },
        "sale_price": null,
        "member_price": null,
        "sold_out": false,
        "availability_text": null,
        "offer_text": null,
        "unit_price_text": "2.27L · £0.84/L",
        "sponsored": false,
        "image": "https://rs-menus-api.roocdn.com/images/roo/7357971a-8be5-432f-8adb-65d7be15aec2.jpg",
        "url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local?day=today&item-drn-id=6210ba18-775a-4e3a-96a6-a1e0c23540f6&item-id=2562392646&postcode=W1W5QZ&time=ASAP",
        "store_id": "675203",
        "store_name": "Sainsbury's Local",
        "store_type": "shop",
        "store_url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local",
        "rank": 1
      },
      {
        "item_id": "2562390921",
        "drn_id": "7d0b6020-d8d5-42a0-9ec8-5050068585a2",
        "name": "Sainsbury's Whole Fresh British Milk 4 Pints/2.272L",
        "price": {
          "amount": 1.9,
          "currency": "GBP",
          "display": "£1.90"
        },
        "sale_price": null,
        "member_price": null,
        "sold_out": false,
        "availability_text": null,
        "offer_text": null,
        "unit_price_text": "2.27L · £0.84/L",
        "sponsored": false,
        "image": "https://rs-menus-api.roocdn.com/images/roo/e95b99de-c8d1-4788-a6b9-29a20482ca42.jpg",
        "url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local?day=today&item-drn-id=7d0b6020-d8d5-42a0-9ec8-5050068585a2&item-id=2562390921&postcode=W1W5QZ&time=ASAP",
        "store_id": "675203",
        "store_name": "Sainsbury's Local",
        "store_type": "shop",
        "store_url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local",
        "rank": 2
      },
      {
        "item_id": "2562395218",
        "drn_id": "6856a074-b7ab-4ca2-a981-0d3b3bdba0a9",
        "name": "Sainsbury's Semi Skimmed Fresh British Milk 2 Pints/1.136L",
        "price": {
          "amount": 1.5,
          "currency": "GBP",
          "display": "£1.50"
        },
        "sale_price": null,
        "member_price": null,
        "sold_out": false,
        "availability_text": null,
        "offer_text": null,
        "unit_price_text": "1.14L · £1.32/L",
        "sponsored": false,
        "image": "https://rs-menus-api.roocdn.com/images/roo/68738346-5677-4d32-954b-5bdaeed8f2cc.jpg",
        "url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local?day=today&item-drn-id=6856a074-b7ab-4ca2-a981-0d3b3bdba0a9&item-id=2562395218&postcode=W1W5QZ&time=ASAP",
        "store_id": "675203",
        "store_name": "Sainsbury's Local",
        "store_type": "shop",
        "store_url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local",
        "rank": 3
      }
    ],
    "stores": [
      {
        "store_id": "675203",
        "store_name": "Sainsbury's Local",
        "store_type": "shop",
        "store_url": "https://deliveroo.co.uk/menu/London/fitzrovia/sainsburys-oxford-circus-berners-street-local",
        "items": 10
      },
      {
        "store_id": "275808",
        "store_name": "Waitrose",
        "store_type": "shop",
        "store_url": "https://deliveroo.co.uk/menu/London/bloomsbury/waitrose-bloomsbury",
        "items": 8
      },
      {
        "store_id": "769001",
        "store_name": "Co-op",
        "store_type": "shop",
        "store_url": "https://deliveroo.co.uk/menu/London/regent's-park/london-baker-street-station",
        "items": 10
      }
    ],
    "total_items": 344,
    "location": null,
    "market": "uk",
    "query": "milk",
    "type": "all",
    "notices": []
  }
}
Actions

What the Deliveroo API does

ActionDescriptionConcrete use caseKey params
storesRestaurants, grocery stores and shops that deliver to a location (latitude+longitude, postcode or geohash) in one Deliveroo market, with delivery fee and minimum order for that location, delivery-time estimate, distance, star rating, price band, current offer and store type. Filter by Deliveroo tab (restaurants / grocery / shopping), cuisine, dish, dietary, name, maximum delivery fee or time, minimum rating, offers; sort and page the complete set.Pricing teams call stores to get restaurants, grocery stores and shops that deliver to a location (latitude+longitude, postcod….country, latitude, longitude, postcode, geohash, ...
storeOne Deliveroo store's menu or grocery catalogue: store details (address, coordinates, currency, whether it delivers to the given location, next delivery time), every category/aisle with its item count, and the items page by page with price, sale price, discount and offer text, unit price, size, availability, stock count where the store publishes it, calories, dietary tags and image. Filter to one category or to specific item ids.Marketplace operators call store to get one Deliveroo store's menu or grocery catalogue.store_id, country, latitude, longitude, postcode, ...
searchSearch dishes and grocery products by name across the stores delivering to a location, the way Deliveroo's search box does: each match with its price, sale price, offer, unit price, sold-out flag and the store selling it (id, name, type, link). Up to ~50 stores with up to 10 matching items each per query.Catalog enrichment teams call search to search dishes and grocery products by name across the stores delivering to a location, the wa….country, query, latitude, longitude, postcode, ...
filtersThe filters Deliveroo offers at a location with live store counts: tabs (restaurants, grocery, shopping), cuisines, dishes, dietary options, delivery-time and delivery-fee bands, rating bands. Use the keys with `stores`.Retail analysts call filters to get the filters Deliveroo offers at a location with live store counts.country, latitude, longitude, postcode, geohash
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/deliveroo/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"country":"uk","query":"milk","postcode":"W1W 5QZ"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.deliveroo.search with {"country":"uk","query":"milk","postcode":"W1W 5QZ"}.
Use cases

Who uses this API and why

  • Track grocery prices, Clubcard and Nectar prices and promotions on Deliveroo by store and city.
  • Map which restaurants and supermarkets deliver to an address with fees, minimum order and delivery times.
  • Monitor restaurant menu prices and new dishes for a chain across its Deliveroo branches.
  • Compare a product's price across the supermarkets and convenience stores delivering to one address.
  • Build a restaurant and dark-store database for the UK, France, Italy, Belgium, Ireland, UAE and Kuwait.
FAQ

Questions developers ask before integrating

Which countries does it cover?

The seven markets Deliveroo operates in today: United Kingdom, France, Ireland, Italy, Belgium, United Arab Emirates and Kuwait. Qatar, Singapore and Hong Kong answer that the market is closed.

Do I need an address?

Yes, a location is required: latitude and longitude, a postcode (W1W 5QZ, 75004) or a geohash. Deliveroo's store list, fees and times depend on it, and the response says where the location was placed.

Can I get supermarket prices from Deliveroo?

Yes. Use type=grocery in stores to list the supermarkets, Deliveroo HOP and convenience stores delivering to an address, then store with the store_id for the full catalogue (Waitrose Marylebone: 277 aisles, 11,254 products) with price, sale price, loyalty price, unit price and stock where published.

How do I compare one product across stores?

search with query=milk and the address returns the matching products from the stores nearby with each store's price; London W1 returned 356 milk products from 48 stores.

Can I get a restaurant's full menu?

Yes. store with the restaurant's store_id, its slug or its Deliveroo menu URL returns every category and dish with price, description, calories, dietary tags and availability, page by page.

Which filters work?

Deliveroo's own tabs and its cuisine, dish and dietary keys (London W1: grocery 358, burgers 589, vegan 38 of 3,984 stores), plus name, maximum delivery fee, minimum rating, maximum delivery time and offers only. A cuisine or dish key that does not exist at the address is refused instead of being ignored; the filters call lists the valid keys.

Do I need a Deliveroo account?

No. Everything is what a logged-out visitor sees; Deliveroo Plus member prices are not included.

How fresh is the data?

Every call reads Deliveroo live; nothing is cached.

What is the Deliveroo API?

Deliveroo API is a ReefAPI endpoint group for restaurants, supermarkets and shops that deliver to an address, with fees and times; full menus and grocery catalogues with live prices, offers and stock. It returns live JSON through POST requests under /deliveroo/v1.

Is the Deliveroo API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Deliveroo calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Deliveroo login or account?

No login to Deliveroo is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Deliveroo data?

The page example is captured from a live stores call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Deliveroo API use?

Deliveroo actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Deliveroo from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call deliveroo actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / deliveroo

Deliveroo

Restaurants, supermarkets and shops that deliver to an address, with fees and times; full menus and grocery catalogues with live prices, offers and stock.

base /deliveroo/v14 endpoints
post/deliveroo/v1/stores3 credits

Restaurants, grocery stores and shops that deliver to a location (latitude+longitude, postcode or geohash) in one Deliveroo market, with delivery fee and minimum order for that location, delivery-time estimate, distance, star rating, price band, current offer and store type. Filter by Deliveroo tab (restaurants / grocery / shopping), cuisine, dish, dietary, name, maximum delivery fee or time, minimum rating, offers; sort and page the complete set.

ParameterAllowed / rangeDescription
countryrequireduk · fr · ie · it · be · ae · kwDeliveroo market. Live markets on 2026-10-18: uk, fr, ie, it, be, ae, kw (Qatar, Singapore and Hong Kong answer 'market closed'). Prices and fees are in the market's currency.
latitudeoptional-90–90Delivery location latitude. Give latitude+longitude, OR postcode, OR geohash (one of the three is required; there is no default location).
longitudeoptional-180–180Delivery location longitude (with latitude).
postcodeoptional—Delivery postcode, placed by Deliveroo itself in the chosen market (uk 'W1W 5QZ', fr '75004'). Alternative to latitude/longitude.
geohashoptional—Delivery location as a geohash (the `geohash=` value in deliveroo.co.uk URLs). Alternative to latitude/longitude.
type = alloptionalall · restaurants · grocery · shoppingDeliveroo's own tabs. London W1, same minute: all 3,984 · restaurants 3,440 · grocery 364 · shopping 269. A tab the location does not offer is refused.
cuisineoptional—Deliveroo cuisine key(s) for this location, comma-separated for several (the site's own multi-select), e.g. 'italian', 'japanese'. The valid keys and their counts come from the `filters` action; an unknown key is refused (the site would silently ignore it).
dishoptional—Deliveroo dish key(s), comma-separated, e.g. 'burgers', 'sushi', 'pizza' (London W1: burgers 584 of 3,998). Keys from the `filters` action.
dietaryoptional—Deliveroo dietary key(s), comma-separated: e.g. 'vegan', 'vegetarian', 'halal', 'gluten free' (London W1: vegan 39 of 3,999). Keys from `filters`.
nameoptional—Keep only stores whose name contains this text (case- and accent-insensitive), e.g. 'tesco', 'carrefour', 'mcdonald'.
max_delivery_feeoptional0–Keep stores whose delivery fee to this location is at most this amount, in the market's currency (1 = 1.00 GBP/EUR/AED, 1 KWD).
min_ratingoptional0–5Keep stores rated at least this many stars (0-5, as the site shows them). Unrated stores are dropped when this is set.
max_delivery_minutesoptional1–Keep stores whose current delivery estimate is at most this many minutes.
offers_only = falseoptional—Keep only stores showing an offer (e.g. 'Buy 1, get 1 free', 'Spend £15, get 20% off'; London W1: 1,202 of 3,980).
sort = distanceoptionaldistance · rating · delivery_time · delivery_fee · name · recommendedOrder of the full result set before paging; ties broken by store id so pages never overlap. 'recommended' is Deliveroo's own order, which changes on every call (0 of the top 100 positions repeated a minute apart), so do not page it.
page = 1optional1–Page of the sorted result set. For walking all pages prefer `cursor` (pagination.next_cursor), which never repeats a store.
limit = 50optional1–200Stores per page (1-200, default 50).
cursoroptional—pagination.next_cursor of the previous page (same location, filters and sort). The next page starts right after the last store you received, so no store is repeated. Deliveroo shows one of several stores that share a kitchen on each request (about 16 of 3,965 in London W1), so with page numbers a store can repeat or be skipped at a page edge; the cursor avoids that.
Try in playground →
post/deliveroo/v1/store3 credits

One Deliveroo store's menu or grocery catalogue: store details (address, coordinates, currency, whether it delivers to the given location, next delivery time), every category/aisle with its item count, and the items page by page with price, sale price, discount and offer text, unit price, size, availability, stock count where the store publishes it, calories, dietary tags and image. Filter to one category or to specific item ids.

ParameterAllowed / rangeDescription
store_idrequired—Store/restaurant id (`store_id` of a stores or search row, e.g. 342758), its slug ('waitrose-marylebone'), or its Deliveroo menu URL (https://deliveroo.co.uk/menu/london/marylebone/waitrose-marylebone).
countryoptionaluk · fr · ie · it · be · ae · kwDeliveroo market of the store (uk, fr, ie, it, be, ae, kw). Required unless store_id is a Deliveroo URL, whose host names the market.
latitudeoptional-90–90Delivery location latitude. Give latitude+longitude, OR postcode, OR geohash (one of the three is required; there is no default location).
longitudeoptional-180–180Delivery location longitude (with latitude).
postcodeoptional—Delivery postcode, placed by Deliveroo itself in the chosen market (uk 'W1W 5QZ', fr '75004'). Alternative to latitude/longitude.
geohashoptional—Delivery location as a geohash (the `geohash=` value in deliveroo.co.uk URLs). Alternative to latitude/longitude.
category_idoptional—Only the items of this menu/aisle category (`category_id` from the `categories` list of the same store).
item_idsoptional—Only these item ids (comma-separated, up to 250), e.g. the `item_id`s of a `search` result; one request on the source's own by-id option.
page = 1optional1–Page of the store's item list, in the store's own category order.
limit = 100optional1–250Items per page (1-250, default 100).
Try in playground →
post/deliveroo/v1/filters2 credits

The filters Deliveroo offers at a location with live store counts: tabs (restaurants, grocery, shopping), cuisines, dishes, dietary options, delivery-time and delivery-fee bands, rating bands. Use the keys with `stores`.

ParameterAllowed / rangeDescription
countryrequireduk · fr · ie · it · be · ae · kwDeliveroo market. Live markets on 2026-10-18: uk, fr, ie, it, be, ae, kw (Qatar, Singapore and Hong Kong answer 'market closed'). Prices and fees are in the market's currency.
latitudeoptional-90–90Delivery location latitude. Give latitude+longitude, OR postcode, OR geohash (one of the three is required; there is no default location).
longitudeoptional-180–180Delivery location longitude (with latitude).
postcodeoptional—Delivery postcode, placed by Deliveroo itself in the chosen market (uk 'W1W 5QZ', fr '75004'). Alternative to latitude/longitude.
geohashoptional—Delivery location as a geohash (the `geohash=` value in deliveroo.co.uk URLs). Alternative to latitude/longitude.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.