Uber Eats Scraper - Restaurants, Full Menus & Modifiers avatar

Uber Eats Scraper - Restaurants, Full Menus & Modifiers

Pricing

from $3.50 / 1,000 result items

Go to Apify Store
Uber Eats Scraper - Restaurants, Full Menus & Modifiers

Uber Eats Scraper - Restaurants, Full Menus & Modifiers

Scrape Uber Eats restaurants and full menus with prices, ratings, hours, phone, coordinates, ETA and modifiers for any address worldwide. Export CSV, Excel, JSON or XML.

Pricing

from $3.50 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

ParseForge Banner

๐Ÿ” Uber Eats Scraper

๐Ÿš€ Export Uber Eats restaurants and their complete menus in seconds, as one row per restaurant or one row per dish. 280 Chicago restaurants with every dish, price and photo came back in about 2 minutes in our test, with no login.

This Actor reads the same data the Uber Eats website loads for every store page: the restaurant card, the address and coordinates, the opening hours, the phone number and the full menu with prices, photos and customer like scores. You can search near any address or pair of coordinates in the countries where Uber Eats delivers, narrow the search with a cuisine, a dish or a restaurant name, apply the filters the app offers (rating, offers, delivery time, best overall, pickup), or paste store links you already have.

Every restaurant row has 42 fields and every menu item row has 30. Menus range from 24 to 247 dishes per restaurant in our Chicago test. Turn on Include modifiers and add-ons to also get the option groups behind each dish (sizes, toppings, sides) with their required flags, limits and extra prices.

๐ŸŽฏ Target Audience๐Ÿ’ก Primary Use Cases
Restaurant owners and chainsBenchmark your menu prices and ratings against every competitor in the same delivery zone
Food delivery and ghost kitchen operatorsFind under-served cuisines and price gaps by neighborhood
Market and location analystsMap restaurant density, cuisines, chains and ratings for any city
Sales and lead teamsBuild restaurant lead lists with address, phone, cuisine and rating
Data and AI teamsBuild menu, price and dish datasets across countries and languages
Food brands and CPG teamsTrack where and how your products are listed and priced

๐Ÿ“‹ What the Uber Eats Scraper does

  1. Takes one or more locations (an address, a city, a postcode or plain latitude,longitude) and turns each into a delivery point.
  2. Runs one search per location and search term (a cuisine, a dish or a brand) and pages through the whole result list Uber Eats builds for that point, about 80 restaurants per request.
  3. Applies the app's own filters before reading: sort order, minimum rating, offers only, delivery under 30 minutes, best overall, delivery or pickup, and restaurants only (shops and pharmacies are dropped by default).
  4. Reads each restaurant once and returns the restaurant with its full menu, or splits the menu into one row per dish.
  5. Optionally reads every dish that has options and adds the modifier groups with prices.
  6. Also accepts Uber Eats store links directly, with no location needed.
  7. Deduplicates restaurants across locations and search terms, so the same store never costs you twice.

๐Ÿ’ก Why it matters: a rating and a photo hide what actually decides an order: what the menu costs, what is on it and who sells it nearby. With the menu, the like scores, the ETA and the coordinates on the same row, you can compare a whole market in one export instead of opening store pages one by one.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

๐Ÿ“Š Output

Restaurant rows carry 42 columns. Menu item rows carry 30. Pick the shape with Output rows.

FieldTypeDescription
๐Ÿ–ผ imageUrlstringRestaurant hero photo (dish photo in menu item rows)
๐Ÿ“Œ titlestringRestaurant name (dish name in menu item rows)
๐Ÿšฆ statusstringOpen, or the closed message Uber Eats shows
๐Ÿ”— urlstringUber Eats store page
๐Ÿ†” idstringStore UUID (dish UUID in menu item rows)
๐Ÿฝ cuisinesarrayCuisine and category tags
๐Ÿ’ฒ priceRangestringPrice bucket from $ to $$$$
โญ ratingnumberAverage rating out of 5
๐Ÿ”ข ratingCountstringNumber of ratings as Uber Eats shows it, for example 3000+
๐Ÿ“ address streetAddress city region postalCode countrystringFull address, split into parts
๐Ÿงญ latitude longitudenumberStore coordinates
๐Ÿ“ž phonestringStore phone number
๐Ÿ•’ openingHoursarrayOpening hours by day range, 24-hour times
โฑ etaText etaMinMinutes etaMaxMinutesmixedDelivery estimate, as text and as numbers
๐Ÿ›ต deliveryFeestringDelivery fee text when Uber Eats shows one
๐Ÿท offersarrayPromotions on the store card ("Buy 1, get 1", "20% off select items")
๐Ÿ”— isChain chainNamestringChain flag and parent chain name
๐Ÿ• menuarrayCategories with dishes: name, description, price, photo, availability, like % and count
๐Ÿ’ฌ topReviewsarrayPublic customer reviews the store page shows
๐Ÿ”Ž searchLocation searchTermstringWhat produced the row
๐Ÿ•’ scrapedAtstringWhen the row was collected
โŒ errorstringPopulated only on failed rows

Menu item rows replace the restaurant columns with the dish (category, description, price, priceFormatted, isAvailable, isSoldOut, likePercent, likeCount, hasModifiers, modifierGroups) and repeat the restaurant name, id, rating, cuisines, address and coordinates on every row.

Real sample records

{
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/f7d462cb04f580428f99aca9d5d9c86e/db809eadd12d21eb61044e0f3bf7c9b7.jpeg",
"title": "Bonchon Chicken (325 5th Ave)",
"status": "Open",
"url": "https://www.ubereats.com/store/bonchon-chicken-325-5th-ave/L066F9L1TBSUMe6PUZONgw",
"id": "2f4eba17-d2f5-4c14-9431-ee8f51938d83",
"slug": "bonchon-chicken-325-5th-ave",
"cuisines": [
"Wings",
"Asian",
"Chicken",
"Family Friendly",
"Korean"
],
"priceRange": "$",
"rating": 4.8,
"ratingCount": "10000+",
"address": "325 5th Ave, New York, NY 10016",
"streetAddress": "325 5th Ave",
"city": "New York",
"region": "NY",
"postalCode": "10016",
"country": "US",
"latitude": 40.7474696,
"longitude": -73.9850699,
"phone": "+12126868282",
"isOpen": "Yes",
"isOrderable": "Yes",
"openingHoursSummary": "Open until 1:00 AM",
"openingHours": [
{
"days": "Sunday - Thursday",
"slots": [
{
"section": "N/A",
"opens": "10:30",
"closes": "01:00"
}
]
}
],
"etaText": "17โ€“32 Min",
"etaMinMinutes": 17,
"etaMaxMinutes": 32,
"deliveryFee": "Not Disclosed",
"distance": "0.7 mi",
"currency": "USD",
"isChain": "Yes",
"chainName": "BonChon",
"storeType": "DEFAULT",
"offers": [
"Buy 1, get 1"
],
"diningModes": [
"DELIVERY",
"PICKUP"
],
"menuCategoryCount": 10,
"menuItemCount": 70,
"menu": [
{
"category": "Buy 1, get 1 free",
"items": [
{
"id": "34d1034d-40c9-560e-958e-c54bd79dc48f",
"name": "Grape Juice Can",
"description": "N/A",
"price": 5.79,
"priceFormatted": "$5.79",
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/c10c7f65348e1d5edd628b2ad20e016f/5143f1e218c67c20fe5a4cd33d90b07b.jpeg",
"isAvailable": "Yes",
"isSoldOut": "No",
"hasModifiers": "No",
"likePercent": 91,
"likeCount": 37
},
{
"id": "dea74955-a779-5114-bf00-588bcf8772c4",
"name": "Pear Juice Can",
"description": "N/A",
"price": 5.79,
"priceFormatted": "$5.79",
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/b416aed6edfea626dbfd837c40a4f38e/5143f1e218c67c20fe5a4cd33d90b07b.jpeg",
"isAvailable": "Yes",
"isSoldOut": "No",
"hasModifiers": "No",
"likePercent": 96,
"likeCount": 54
}
]
}
],
"topReviews": [
{
"author": "Rachel C.",
"date": "2026-07-23T00:31:52Z",
"text": "This was probably the best order Iโ€™ve ever had from Bonchon after being a loyal customer for almost 10 years."
}
],
"searchLocation": "Times Square, New York",
"searchTerm": "pizza",
"scrapedAt": "2026-09-28T22:18:28.086Z",
"error": null
}
{
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/6f67fd8dc603a197abf91eba0288129f/fb86662148be855d931b37d6c1e5fcbe.jpeg",
"title": "Joe's Pizza - Time's Square (1435 Broadway)",
"status": "Open",
"url": "https://www.ubereats.com/store/joes-pizza-times-square-1435-broadway/F9A-B2bKRg-ikAd0B8uzgg",
"id": "17d03e07-66ca-460f-a290-077407cbb382",
"slug": "joes-pizza-times-square-1435-broadway",
"cuisines": [
"Pizza",
"American",
"Italian",
"Group Friendly"
],
"priceRange": "$",
"rating": 4.6,
"ratingCount": "15000+",
"address": "1435 Broadway, New York, NY 10018",
"streetAddress": "1435 Broadway",
"city": "New York",
"region": "NY",
"postalCode": "10018",
"country": "US",
"latitude": 40.7546509,
"longitude": -73.9868254,
"phone": "+16465594878",
"isOpen": "Yes",
"isOrderable": "Yes",
"openingHoursSummary": "Open until 3:00 AM",
"openingHours": [
{
"days": "Sunday - Wednesday",
"slots": [
{
"section": "N/A",
"opens": "10:00",
"closes": "03:00"
}
]
}
],
"etaText": "30โ€“30 Min",
"etaMinMinutes": 30,
"etaMaxMinutes": 30,
"deliveryFee": "$3.99 Delivery Fee",
"distance": "0.2 mi",
"currency": "USD",
"isChain": "Yes",
"chainName": "joe's pizza nyc (parent)",
"storeType": "DEFAULT",
"offers": [],
"diningModes": [
"DELIVERY",
"PICKUP"
],
"menuCategoryCount": 3,
"menuItemCount": 24,
"menu": [
{
"category": "Salads",
"items": [
{
"id": "06741353-8cb0-4be9-982d-b781867cad78",
"name": "House Salad (Small)",
"description": "Fresh mixed greens.",
"price": 11,
"priceFormatted": "$11.00",
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/a0d4e45600bc020112eeda9ac43862fb/3093d07d5a810674a6d7adf26679874b.jpeg",
"isAvailable": "Yes",
"isSoldOut": "No",
"hasModifiers": "No",
"likePercent": 79,
"likeCount": 337
},
{
"id": "41096540-6745-4b31-9b24-11d02dec318b",
"name": "House Salad (Family)",
"description": "Feeds four to five people.",
"price": 32,
"priceFormatted": "$32.00",
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/2142f841b70f29d2e8fb0b3d052946ef/c67fc65e9b4e16a553eb7574fba090f1.jpeg",
"isAvailable": "Yes",
"isSoldOut": "No",
"hasModifiers": "Yes",
"likePercent": 81,
"likeCount": 70
}
]
}
],
"topReviews": [
{
"author": "Charles K.",
"date": "2023-06-04T00:00:00Z",
"text": "Outstanding true NY style pizza. The cheese pizza is my pick. The crust is always crispy and chewy, the cheese to sauce ratio is just right, and the ingredients are of a good quality. Joe's is a favorite for a reason."
}
],
"searchLocation": "Times Square, New York",
"searchTerm": "pizza",
"scrapedAt": "2026-09-28T22:18:27.798Z",
"error": null
}

Menu item row:

{
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/2142f841b70f29d2e8fb0b3d052946ef/c67fc65e9b4e16a553eb7574fba090f1.jpeg",
"title": "House Salad (Family)",
"restaurantName": "Joe's Pizza - Time's Square (1435 Broadway)",
"category": "Salads",
"menuName": "Menu",
"description": "Feeds four to five people.",
"price": 32,
"priceFormatted": "$32.00",
"currency": "USD",
"isAvailable": "Yes",
"isSoldOut": "No",
"likePercent": 81,
"likeCount": 70,
"hasModifiers": "Yes",
"dietaryLabels": [],
"modifierGroups": [
{
"group": "Choice of Add On",
"required": "No",
"min": 0,
"max": 1,
"options": [
{
"name": "Mozzarella",
"price": 4,
"isSoldOut": "No"
}
]
}
],
"id": "41096540-6745-4b31-9b24-11d02dec318b",
"restaurantId": "17d03e07-66ca-460f-a290-077407cbb382",
"restaurantUrl": "https://www.ubereats.com/store/joes-pizza-times-square-1435-broadway/F9A-B2bKRg-ikAd0B8uzgg",
"restaurantRating": 4.6,
"restaurantCuisines": [
"Pizza",
"American",
"Italian",
"Group Friendly"
],
"restaurantAddress": "1435 Broadway, New York, NY 10018",
"restaurantCity": "New York",
"restaurantCountry": "US",
"latitude": 40.7546509,
"longitude": -73.9868254,
"searchLocation": "N/A",
"searchTerm": "N/A",
"scrapedAt": "2026-09-28T22:19:17.496Z",
"error": null
}

โœจ Why choose this Actor

  • ๐Ÿฝ Restaurants and dishes in one Actor. One row per restaurant with the menu nested, or one row per dish with the restaurant on every row.
  • ๐Ÿงฉ Modifiers and add-ons. Sizes, toppings and sides with required flags, limits and prices, on request.
  • ๐ŸŒ Any Uber Eats country. Search by address or coordinates and choose English or the local language.
  • ๐ŸŽ› The app's own filters. Rating, offers, delivery time, best overall, delivery or pickup and restaurants only.
  • ๐Ÿ”— Two ways in. Search near a place, or paste store links.
  • ๐Ÿงน Clean rows. Prices as numbers, hours in 24-hour time, no duplicated restaurants, no empty cells (missing values say Not Disclosed or N/A).

๐Ÿ“ˆ How it compares to alternatives

This ActorTypical Uber Eats scrapers
Output shapesRestaurant rows or dish rowsUsually restaurant rows only
Menu modifiersYes, on requestRarely
FiltersSort, rating, offers, under 30 min, best overall, pickup, store typeUsually a search term only
Several locations and terms in one runYes, deduplicatedOne at a time
Store linksYes, no location neededVaries
CeilingAbout 450 restaurants per search point, the depth Uber Eats itself listsSame source

Uber Eats ranks and cuts its own result list per delivery point, so a very large city needs several search points or several terms to be covered. The Actor tells you what each row came from (searchLocation, searchTerm) so you can see coverage. Fees, ETAs and availability reflect the delivery point and the moment of the run.

๐Ÿš€ How to use

  1. Create a free Apify account with $5 credit: sign up here.
  2. Open the Actor and add one or more Locations (for example Times Square, New York or 40.7128,-74.0060).
  3. Optionally add Search terms such as pizza, sushi or a restaurant name.
  4. Choose Output rows: one row per restaurant or one row per menu item.
  5. Set Max Items and press Start. Free plans are limited to 10 items as a preview.
  6. Download the dataset as CSV, Excel, JSON or XML, or read it through the API.

Example input:

{
"locations": ["Times Square, New York"],
"searchTerms": ["pizza"],
"outputMode": "restaurants",
"maxItems": 100
}

๐Ÿ’ผ Business use cases

๐Ÿ“Š Competitor and price benchmarking

Pull every restaurant of your cuisine within a delivery zone and compare menu prices, ratings and offers side by side. Repeat weekly to see who changes prices.

๐Ÿ—บ Market and site selection

Export restaurants for several neighborhoods, then count cuisines, chains and ratings per area with the coordinates on every row.

๐Ÿ“‡ Lead generation

Build a restaurant list with address, phone, cuisine, chain flag and rating for sales outreach, POS, supplier or marketing offers.

Use dish rows with descriptions, prices, photos and like scores to train models, build dish search or study how the same dish is priced across cities and countries.

๐Ÿ”Œ Automating Uber Eats Scraper

Schedule the Actor on Apify and send the results wherever you work:

  • Make and Zapier: trigger a scenario when a run finishes and add the rows to your tools.
  • Slack: post a message when a competitor adds an offer.
  • Airbyte: load the dataset into your warehouse.
  • GitHub: open an issue or commit the export.
  • Google Drive and Sheets: save every run as a spreadsheet.

๐ŸŒŸ Beyond business use cases

  • Research: study food access, cuisine mix and price levels across neighborhoods and countries.
  • Personal: compare what a dish costs in every restaurant near you before you order.
  • Non-profit: map where healthy or affordable options exist in a community.
  • Experimentation: prototype a food recommender or a menu search on real data.

๐Ÿค– Ask an AI assistant about this scraper

Use the buttons on the Apify page to open this Actor in ChatGPT, Claude or Perplexity and ask how to build your input, how to read the menu structure or how to load the dataset into your stack.

โ“ Frequently Asked Questions

๐Ÿ• What does one row contain? By default, one restaurant with 42 fields and its whole menu nested inside. Switch to menu items and you get one row per dish with 30 fields.

๐Ÿ“ How do I choose where to search? Add an address, city, postcode or latitude,longitude to Locations. Uber Eats returns the restaurants that deliver to that point.

๐Ÿ”Ž Can I search for a cuisine or a brand? Yes. Add Search terms such as ramen, vegan or a restaurant name. One search runs for each location and term.

๐Ÿ”— Can I scrape specific restaurants? Yes. Paste Uber Eats store links in Store URLs. No location is needed for links.

๐Ÿงฉ What are modifiers? The options behind a dish, such as size, toppings and sides, with how many you must or may pick and the extra price. Turn on Include modifiers and add-ons. It makes one extra request per dish that has options, so it is slower.

๐ŸŒ Which countries work? Any country where Uber Eats delivers. If a point is outside the delivery area the Actor logs it and returns nothing for that point. Choose English or the local language for interface texts.

๐Ÿ’ฒ Are prices numbers? Yes. price is in major currency units (14.99) and priceFormatted keeps the text Uber Eats shows ("$14.99"). The currency code is on every row.

๐Ÿ›ต Why is the delivery fee sometimes Not Disclosed? Uber Eats only shows a fee on the store page when one applies to that delivery point and account. When it shows nothing, the Actor says so instead of guessing.

๐Ÿช Why do I only get restaurants? Uber Eats mixes shops, pharmacies and convenience stores into the same feed. Store type defaults to restaurants only. Choose All stores to keep everything.

๐Ÿ“ˆ How many restaurants can I get from one search? Uber Eats lists about 450 restaurants for one search point. For a whole city, add several locations or terms and the Actor removes duplicates.

โฑ How fast is it? About 280 restaurants with full menus in 2 minutes in our Chicago test.

๐Ÿ›ก Do I need a proxy? Uber Eats refuses plain cloud connections, so the Actor uses Apify residential proxy by default. It reads about 55 KB per restaurant with its menu. Datacenter proxy works for small runs but is blocked often, so keep residential for anything serious.

๐Ÿ”Œ Integrate with any app

Use the Apify API, webhooks and the integrations catalog to connect the dataset to Make, Zapier, Slack, Airbyte, Google Sheets, your database or your own code.

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Uber Technologies, Inc. It only collects publicly available data.