Uber Eats Scraper
Pricing
from $1.50 / 1,000 stores
Uber Eats Scraper
Scrape Uber Eats restaurants and shops with full menus: name, address, phone, hours, rating, cuisines, reviews and every menu item with price, photo and options. Paste store, city or cuisine links, or get every store that delivers to an address — any country.
Pricing
from $1.50 / 1,000 stores
Rating
0.0
(0)
Developer
Alkausari M
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Uber Eats Scraper extracts restaurants, shops and their full menus from Uber Eats — no account, API key or browser needed. One Actor covers five jobs:
- 📍 Every store that delivers to an address — in any country, with the delivery time, fee and distance for that address. Type a street address or coordinates; no proxy country to pick. A busy city address returns 300–500 stores.
- 🍽️ Full menus — every dish with its section, description, price, photo, popularity (👍 93% of 302), calories and sold-out status, in a ready-made one-row-per-dish view.
- 🧩 Sizes, sides and extras — the choices for each dish with their prices, including nested ones (fries → sauce).
- 🏙️ City and cuisine pages — paste a city page or "pizza in Chicago" and every page of the list is followed.
- ⚡ Quick store lists — names, ratings, delivery times and offers without opening each store: dozens of stores per request.
Paste store links, city or cuisine pages, addresses — or mix them in one run. Stores start arriving within seconds, and results export to CSV, Excel or JSON, or flow into Google Sheets, Zapier and Make.
Use cases
- 💰 Menu price research — compare what the same dish costs across restaurants, chains, cities or countries
- 🗺️ Market mapping — list every restaurant that delivers to an area, with cuisines, ratings and price levels
- 📇 Lead generation — build restaurant lists with phone numbers, addresses and opening hours
- 📊 Competitor monitoring — track menu changes, sold-out dishes, offers and ratings over time
How to run the Actor
- Click Try for free.
- Paste Uber Eats links into Uber Eats links, or type addresses into Delivery addresses — or both.
- Set Max stores per page or address to control how much you scrape.
- Press Start, then open the Output tab and export.
Here is what each kind of input gives you:
| Paste | You get |
|---|---|
Store link (…/store/…) | That store with its full details and menu |
City page (…/city/chicago-il) | The stores Uber Eats lists for that city, page by page — up to about 200 |
Cuisine page (…/category/chicago-il/pizza) | The stores listed for that cuisine in that city |
| Delivery address or coordinates | Every store that delivers there, each with its delivery time, fee and distance from that address |
| Any other Uber Eats page | The stores it links to |
Quick list vs full details
| Mode | What you get | Best for |
|---|---|---|
| Quick list | What the list shows: name, link and photo, plus rating, delivery time and offers for addresses, or cuisines, price level and address for city pages | Mapping an area, counting stores |
| Full details (default) | Everything above plus address, phone, opening hours, reviews and the full menu | Menus, prices and leads |
| Full details + item options | Everything above plus every dish's sizes, sides and extras with prices | Complete menu pricing |
Turn off Open each store for the quick list. Full details opens each store, and item options also open every dish that has choices, so they take longer.
Input
| Setting | What it does | Default |
|---|---|---|
| Uber Eats links | Store, city, cuisine or other Uber Eats pages, from any country | — |
| Delivery addresses | Street addresses or latitude, longitude coordinates; every store delivering there is collected | — |
| Max stores per page or address | Stores to save from each city page, cuisine page or address (0 = all of them) | 50 |
| Open each store | Full details, reviews and menu; turn off for the quick list | On |
| Include menus | Every dish on the menu | On |
| Include item options | Each dish's sizes, sides and extras with prices | Off |
| Proxy configuration | Leave as default if unsure | Apify Proxy |
Write addresses the way you'd type them into Uber Eats, with the city — and the country outside the US. Store links are always opened in full, even in quick-list mode, since a link alone has no data.
Example input
{"startUrls": [{ "url": "https://www.ubereats.com/store/applebees-aberdeen/60q-Mi6tQ_apfwKS66-Rtw" },{ "url": "https://www.ubereats.com/category/chicago-il/pizza" }],"addresses": ["233 S Wacker Dr, Chicago, IL", "10 Downing Street, London, UK"],"maxStoresPerSearch": 50}
Output
One dataset, one row per store, with two ready-made views on the Output tab: Stores, and Menu items with one row per dish and the store's name, address and link on every row — ready for a spreadsheet. Here is a real record from an address search, shortened — the full record also has the street, postcode, map coordinates, hours for each day and the whole menu:
{"input": "233 S Wacker Dr, Chicago, IL","rank": 3,"name": "Bowls of Rice (2537 S Wabash Ave)","url": "https://www.ubereats.com/store/bowls-of-rice-2537-s-wabash-ave/fdRl62uAX7i4F_v6yCiixw","rating": 4.7,"ratingCount": 5000,"priceLevel": 2,"cuisines": ["Asian Fusion", "Chinese", "Japanese", "Healthy"],"address": "2537 S Wabash Ave, Chicago, IL 60616","phone": "+17738881018","hoursText": "Sunday: 17:15–23:00; Monday - Saturday: 10:00–23:00","openStatus": "Open until 11:00 PM","deliveryTime": "22–40 Min","deliveryFee": "$0 delivery fee (new users)","distance": "2.3 mi","reviews": [{ "author": "Maira M.", "text": "They left a sweet note with my food…", "date": "2025-02-24" }],"menuItemCount": 40,"menu": [{"section": "Chicken Rice Bowls","itemName": "Crispy Chipotle Aioli Chicken Rice Bowl","price": 11.95,"isSoldOut": false,"likePercent": 93,"likeCount": 302}]}
With Include item options on, each dish also lists its choices:
"options": [{"name": "Add a side?","maxChoices": 2,"choices": [{ "name": "House Salad (v)", "price": 5 },{ "name": "Sweet Potato Fries (v)", "price": 5.75 }]}]
Every record in a run carries the same columns, left empty where a store hasn't filled something in — so Zapier, Make and Sheets can map them from a single sample.
Pricing
You pay per store saved, so the bill is simply how many stores you asked for:
| Stores | Quick list | Full details | With item options |
|---|---|---|---|
| 100 | $0.15 | $0.40 | $0.80 |
| 1,000 | $1.50 | $4.00 | $8.00 |
| 10,000 | $15.00 | $40.00 | $80.00 |
Full details adds $2.50 per 1,000 stores for opening each store, and item options add $4.00 per 1,000 stores for opening their dishes — the price is per store, however many dishes it has. Stores that can't be read — closed down or blocked — are not charged.
Set a Maximum cost per run in the run options and the Actor works out how many stores that pays for, then stops there — it never fetches stores you won't be billed for.
Getting every store in an area
Uber Eats' city and cuisine pages list only about 200 stores, even in a big city. A delivery
address has no such cap: it returns every store that delivers there — usually 300–500 in a big
city. Set Max stores per page or address to 0 to get them all.
Each address only reaches the stores that deliver to it, so for a whole city, add several addresses spread across it:
{"addresses": ["Wicker Park, Chicago, IL", "Hyde Park, Chicago, IL", "41.9484, -87.6553"],"maxStoresPerSearch": 0}
| Spread by | When it works well |
|---|---|
| Neighbourhoods | Big cities — name each area with the city |
| Postcodes | Cities where each postcode covers a small area |
| Coordinates | Exact coverage — pick points a few kilometres apart |
A store found from two addresses gets a row for each, with its own delivery time and fee. For a list of unique stores, remove duplicates by the store link.
Integrations & scheduling
Results don't have to stay on Apify. Without writing any code you can:
- Send stores to Google Sheets, Airtable or Slack — pick the integration on the Actor's Integrations tab and every run appends its results automatically.
- Connect anything else via Zapier or Make — thousands of apps, triggered when a run finishes.
- Fire a webhook to your own server the moment a run completes, with a link to the fresh dataset.
- Pull the data over the API in JSON, CSV, Excel or XML — one URL, ideal for a script or notebook.
Run it on a schedule. Point the Actor at the stores or addresses you follow, run it every morning and send the output to a sheet — that's a working menu price tracker with no code at all. Every store and dish carries Uber Eats' own ID, so you can match today's data against yesterday's to spot price changes, new dishes and sold-out items.
Tips
- Use coordinates for an exact spot — the log shows which address each entry was matched to.
- Switch the proxy to the RESIDENTIAL group if many requests fail.
Good to know
- Menus served right now — Uber Eats shows the menus a store serves at the time of the run (no breakfast menu in the evening), and so does this Actor.
- Grocery and convenience stores — their front page shows only a sample of their range, so their menus are marked as partial.
- Delivery details need an address — delivery time, fee, distance and offers are filled for address searches only, since they depend on where the food goes.
- Delivery fee — shown as Uber Eats shows it to a visitor who isn't logged in, which is often a new-customer offer like "$0 delivery fee (new users)".
- Addresses — looked up with OpenStreetMap (© OpenStreetMap contributors), with Uber Eats' own address search as the backup. If a short address like a bare postcode lands in the wrong country, add the city and country.
- Fewer stores than expected — check Max stores per page or address, then the ~200 cap on city and cuisine pages above. Store links that no longer exist are skipped and counted in the log.
📮 Support
Bugs, feature requests, or custom scraping work — open an issue on Apify, email alkausarimujahid@gmail.com, or visit my website ayzalsoft.com.