Deliveroo Reviews Scraper

What diners said about a restaurant,
as rows.

Paste a Deliveroo store URL - or a bare restaurant id - and get that restaurant's reviews back as rows: who wrote it, the rating and the scale it sits on, the review text, the date, and whether they would order again. One row per review, in the sort order you choose.

one-time 500 free rows$0.002 per row after8 columnsCSV · XLSX · JSON
How it works

A restaurant in,
its reviews out.

Find the restaurant on Deliveroo, copy the address from the bar - or use the id if you already keep one - and choose how you want the reviews ordered.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Deliveroo Reviews Scraper.
  3. STEP 3Paste Deliveroo store URLs or restaurant ids, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  4. STEP 4Set a limit per query, or leave it at zero to take everything.
  5. STEP 5Pick a sort order and choose your output format.
  6. STEP 6Click Get Data.

One row per review, tagged with the query it came from. Deliveroo sits behind Cloudflare, so live runs need a residential proxy.

Why teams use it

Delivery feedback
you can actually count.

The rating comes with its scale

rating arrives next to max_rating, so the number never travels without the thing that gives it meaning. That matters the moment these rows sit in a table beside another platform's scores.

Sort before you pay

Choose highest rated, lowest rated, newest or oldest before the run starts. If you only want the complaints, take the lowest-rated slice and stop - you pay for the rows you pull, not for the whole history.

The repeat-order signal, as its own column

Deliveroo asks reviewers whether they would order again, and that answer arrives as order_again rather than buried in prose. It is the closest thing to an intent column this dataset has.

What you get back

Eight columns,
named and nothing more.

What a Deliveroo review carries: who left it, how they scored it, what they wrote, when, and whether they would come back.

Two things we would rather state than let you assume. The first: the table below names the eight columns and says what each field is for - and it stops there. It does not tell you what scale max_rating reports, what vocabulary order_again uses, or what format date arrives in. Those are answers a populated export gives, and every run export we hold came back with a header row and no data rows. Publishing a confident guess in their place would be worse than publishing nothing - and in the case of max_rating it would be guessing at the exact thing the column exists to tell you.

The second: Deliveroo sits behind Cloudflare. Live results need a residential proxy, and that is why the exports we hold are empty rather than because the column set is uncertain - the column set is corroborated twice over. If you do not have a residential proxy, this is the page to read carefully before you sign up rather than after.

Run a small free-tier job against a restaurant you know. The header row and the first few rows of that file are the definitive answer for the stores you actually care about.

Data dictionary

Eight columns,
in export order.

The export's header row, in order. Descriptions say what each field is for; they deliberately claim nothing about its format, scale or vocabulary - see the note above.

query
The Deliveroo store URL or restaurant id you submitted, repeated on every row that came from it.
restaurant_id
Deliveroo's own identifier for the restaurant the review belongs to. This is also accepted as input, so it is what you use to re-run a store later.
author
The reviewer, as Deliveroo displays them.
rating
The score the reviewer gave. Read it against max_rating rather than against an assumed scale.
max_rating
The top of the scale rating is expressed on. The export carries it so you do not have to assume one - which is also why this page does not print a number here.
review_text
What the reviewer wrote, where they wrote anything.
date
When the review was left.
order_again
The reviewer's answer to whether they would order from the restaurant again. We have not seen this field's vocabulary in a populated export, so do not code against a fixed set of values.

The names are solid; the contents are not yet. The eight columns above and their order are corroborated by two independent sources - the XLSX header row of three separate run exports and the published column array - so build your schema around those names with confidence. What this page will not tell you is what the cells hold: every export we hold is a header with no rows beneath it, so there is no honest statement to make about the scale in max_rating, the vocabulary in order_again or the format of date. And Deliveroo sits behind Cloudflare, so a live run needs a residential proxy - that is the reason those exports are empty, not any doubt about the column set.

What it accepts

A store URL,
or just its id.

Point it at the menu page you would otherwise scroll, or hand over the restaurant id if you already keep one. Sort order and a per-query limit are chosen before the run starts.

deliveroo.co.uk/menu/… A bare restaurant id or UUID Paste one per line CSV · XLSX · TXT · Parquet upload Sort: Highest rated Sort: Lowest rated Sort: Newest Sort: Oldest Limit per query
Common workflows

Three jobs people
most often run here.

A few examples of what delivery reviews are worth once they are rows rather than an endless scroll.

Operations

Find out what actually goes wrong

Take the lowest-rated slice for your own stores and read the text column as a list rather than a feed. Late, cold, missing items and wrong order are different problems with different fixes, and you cannot tell which one you have from an average.

Ops · Quality
Competitive

Compare the restaurants on your street

Pull the same review set for every competitor in your delivery radius and put the ratings side by side with their scale. The gap between your score and theirs is a number you can act on; a screenshot of their menu page is not.

Competitive · Benchmarking
Monitoring

Watch a store after you change something

Sort by newest, re-run on a schedule and keep the rows. A new packaging supplier or a kitchen change shows up in the review text long before it shows up in the average, which moves slowly by design.

Reputation · Tracking
Pricing

Pay only for the reviews
you actually pull.

No subscription, no minimum, no recurring bill. Your first 500 rows are on us - after that, pay-as-you-go at the same flat rate as every other scraper here.

Free tier

500 free rows - $0

Every new account, one-time. No credit card required. Per-query limits, sort order, file upload and every export format included.

$0 forever
Pay-as-you-go

$0.002 per row, after the free tier

Roughly $2 per 1,000 reviews. The pre-flight estimator shows the row count and credit cost before a run starts - no surprise bills, no compute units to translate.

Most popular
Volume

Custom · high volume

Volume pricing, dedicated workers and an SLA for tracking many restaurants on a schedule. Tell us your numbers and we will quote.

Talk to us
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Sign up
Pairs well with

The same restaurant,
on the other platforms.

One platform's reviews are one platform's customers. These two widen the picture.

The legal bit

Is it legal to scrape
Deliveroo reviews?

Short answer: these reviews are published on a public restaurant page - but they are written by identifiable people, and that is the part worth thinking about.

Everything collected here is shown on a public Deliveroo store page to any visitor, signed in or not: the reviewer as the site displays them, the rating and its scale, the review text, the date, and the would-order-again answer. No login, no paywall, nothing behind an account. There are no email addresses, phone numbers or delivery addresses anywhere in the export, and no column for one.

The author column is personal data. A reviewer's display name plus what they wrote and when identifies a person, and in the EU and UK that brings the export under the GDPR with you as the controller. Reading reviews in aggregate to fix your kitchen is a very different act from building a profile of a named individual, and only the first is what this tool is for. Keep it to the aggregate, and if you do store the rows, have a lawful basis and honour erasure requests.

One practical note that is technical rather than legal: Deliveroo sits behind Cloudflare, so live results need a residential proxy. And as always, Deliveroo's own terms govern automated collection from their site - read them before you scale, rather than relying on the fact that the pages are public. We run no third-party trackers on the data layer, and your exports auto-delete after 30 days.

livescraper.app · principles
Public store pages only
No logins, no accounts touched
No emails, phones or delivery addresses
Exports auto-delete (30 days)
Reviewer names are personal data - aggregate, don't profile!
Check Deliveroo's own terms before scaling.
Common questions

Things people
ask before signing up.

The questions we hear most. Anything else? Talk to us - humans, not bots, write the answers.

How do I scrape Deliveroo reviews?+
Using the Deliveroo Reviews Scraper: Sign in to the platform. Open the Deliveroo Reviews Scraper. Paste Deliveroo store URLs or restaurant ids, one per line - or upload a CSV, XLSX, TXT or Parquet file. Set a limit per query, or leave it at zero to take everything. Pick a sort order and choose your output format. Click Get Data.
Do I need a residential proxy?+
For live results, yes. Deliveroo sits behind Cloudflare, which is why this is called out on the page rather than left for you to discover. The run goes through our proxy pool and never your real IP, but a residential exit is what gets you past the challenge reliably. If you do not have one, this is worth sorting before you sign up rather than after.
What can I use as input?+
Either a deliveroo.co.uk store or menu URL, or a bare restaurant id or UUID. Paste them one per line or upload a CSV, XLSX, TXT or Parquet file. The restaurant_id column in the output is the same identifier, so a first run gives you the ids you need to re-run those stores later.
Can I choose which reviews I get?+
Yes, through the sort order and the per-query limit, both set before the run starts. You can take the highest rated, the lowest rated, the newest or the oldest. If you only care about complaints, sort lowest and cap the limit - you pay per row, so a narrow slice costs a fraction of the full history.
What is the rating out of?+
The export tells you, in the max_rating column, which sits next to rating for exactly this reason. This page does not print a number there, and that is deliberate: every run export we hold is a header row with no data rows, so we have not seen the value. Guessing at it would mean assuming the one thing that column exists to remove the guesswork from.
Why does the data dictionary not say what the fields contain?+
Because we have not seen a populated export. The eight column names and their order are corroborated by two independent sources - the header row of our run exports and the published column array - so we publish those with confidence. The formats, scales and vocabularies are a different question, and every export we hold came back empty because Deliveroo's Cloudflare challenge needs a residential proxy. Take a small free-tier run and the file will tell you.
Does it return the reviewer's contact details?+
No. The export carries the reviewer as Deliveroo displays them and nothing more - there is no email address, phone number or delivery address anywhere in it, and no column for one. Treat the author column as personal data all the same: it identifies a person when combined with what they wrote.
How much does it cost?+
The first 500 rows are free and one-time, with no credit card. After that it is $0.002 per row - about $2 per 1,000 reviews - which is the same flat rate as every other scraper on the platform. The estimator shows the cost of a run before it starts. A residential proxy, if you need one, is separate.

Turn a restaurant's reviews
into a table you can sort.

Your first 500 rows are free - no card, no subscription. After that it is $0.002 per row, flat.

Activates instantly · no card required

Scrape Deliveroo reviews

Every restaurant on Deliveroo carries reviews from the people who ordered from it, and they sit on a public store page where anyone can read them one at a time. The Deliveroo Reviews Scraper turns that page into rows. You submit store or menu URLs - or bare restaurant ids, one per line, or as a CSV, XLSX, TXT or Parquet upload - pick a sort order and a per-query limit, and each review comes back as a record carrying the reviewer, the rating and the scale it is expressed on, the review text, the date and the would-order-again answer.

The sort order is the part that decides what a run costs. You can take the highest rated, the lowest rated, the newest or the oldest, and because billing is per row, a narrow slice of the complaints costs a fraction of the whole history. For an operations question that is usually the right shape: the lowest-rated reviews for your own stores, read as a list, tell you whether you have a late problem, a cold-food problem or a missing-items problem - which an average never will.

Two honest notes before you start. Deliveroo sits behind Cloudflare, so live results need a residential proxy; that is stated up front rather than left to be discovered. And the data dictionary on this page names the eight columns and says what each is for, but claims nothing about their formats, scales or vocabularies. Every run export we hold came back as a header row with no data rows, for the proxy reason above, so there is no honest thing to say about what max_rating reports or what values order_again takes. The column names themselves are corroborated twice over and can be relied on.

Take a small free-tier run against a restaurant you know and the header row and first few rows are the definitive answer for the stores you care about. Your first 500 rows cost nothing and need no credit card, and after that it is $0.002 per row, flat.