Uber Eats Scraper avatar

Uber Eats Scraper

Pricing

from $1.50 / 1,000 stores

Go to Apify Store
Uber Eats Scraper

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

Alkausari M

Maintained by Community

Actor 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

  1. Click Try for free.
  2. Paste Uber Eats links into Uber Eats links, or type addresses into Delivery addresses — or both.
  3. Set Max stores per page or address to control how much you scrape.
  4. Press Start, then open the Output tab and export.

Here is what each kind of input gives you:

PasteYou 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 coordinatesEvery store that delivers there, each with its delivery time, fee and distance from that address
Any other Uber Eats pageThe stores it links to

Quick list vs full details

ModeWhat you getBest for
Quick listWhat the list shows: name, link and photo, plus rating, delivery time and offers for addresses, or cuisines, price level and address for city pagesMapping an area, counting stores
Full details (default)Everything above plus address, phone, opening hours, reviews and the full menuMenus, prices and leads
Full details + item optionsEverything above plus every dish's sizes, sides and extras with pricesComplete 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

SettingWhat it doesDefault
Uber Eats linksStore, city, cuisine or other Uber Eats pages, from any country—
Delivery addressesStreet addresses or latitude, longitude coordinates; every store delivering there is collected—
Max stores per page or addressStores to save from each city page, cuisine page or address (0 = all of them)50
Open each storeFull details, reviews and menu; turn off for the quick listOn
Include menusEvery dish on the menuOn
Include item optionsEach dish's sizes, sides and extras with pricesOff
Proxy configurationLeave as default if unsureApify 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:

StoresQuick listFull detailsWith 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 byWhen it works well
NeighbourhoodsBig cities — name each area with the city
PostcodesCities where each postcode covers a small area
CoordinatesExact 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.