Uber Eats Scraper: Menus, Prices, Reviews & Grocery
Pricing
$2.00 / 1,000 results
Uber Eats Scraper: Menus, Prices, Reviews & Grocery
Uber Eats scraper for restaurants, menus and grocery stores. Paste store links, city pages, or a keyword plus any address. Get every menu item with price, calories and deals, plus ratings, reviews, phone, hours and full grocery catalogs. $2 per 1,000 results.
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
Sourabh Kumar
Maintained by CommunityActor stats
0
Bookmarked
29
Total users
7
Monthly active users
3 days ago
Last modified
Categories
Share
Uber Eats scraper: menus, prices, restaurants & full grocery catalogs
Scrape Uber Eats stores, menus and prices in any country Uber Eats serves. Paste a store link, a city or cuisine page, or just type a keyword and an address.
$2 per 1,000 results. No per-run fee. No proxy, login or cookies needed.
One store link returns the whole store: every menu item with its price, calories, deals, likes and reviews. Grocery and convenience stores come back with their entire catalog, not just the front page.
Why this scraper?
- ๐ Full grocery catalogs. A 7-Eleven returns about 1,900 products across every aisle, not the ~60 on its front page.
- ๐ Search around any address. Type "Times Square, New York" or "SW1A 2AA London" and get the stores Uber Eats shows there, with real delivery times.
- ๐ท๏ธ Deals and discounts on every item. "2 for $4.75", "Free on $15+", and the old price when something is marked down.
- ๐ Item popularity. "#1 most liked" and the share of customers who liked each dish ("70% (20)").
- ๐ณ Menus the way the page shows them. Real category names, and separate Breakfast, Lunch and Dinner menus for stores that have them.
- ๐ Any language, any currency. Japanese, French and Spanish menus come back in their own text and currency.
- โ
No made-up numbers. If Uber Eats doesn't show a value, you get
null, not a guess. - ๐ธ Flat price for every mode. A store with its full menu costs the same as one listing row.
What data can you extract?
| ๐ช Store name, chain and ID | ๐ Address, postcode, coordinates | ๐ Phone number | โญ Rating and rating count |
| ๐ Full menu, by category | ๐ฒ Item prices (text and number) | ๐ฅ Calories per item | ๐ท๏ธ Item deals and discounts |
| ๐ Likes and "most liked" ranks | ๐ Opening hours per menu | ๐ Delivery time and fee (with an address) | ๐ฌ Customer reviews |
| ๐ Cuisine tags (incl. Halal, Vegan) | ๐ฐ Price level (1 to 4) | ๐ผ๏ธ Store and item images | ๐ Every aisle of grocery stores |
What you can scrape
| Give it | You get | One row per |
|---|---|---|
| A store link | The full store: menu, prices, calories, deals, likes, hours, reviews | store |
| A grocery or convenience store link | Everything above, plus every product in every aisle | store |
A city, cuisine or dish page (/city/, /category/, /dish/, /near-me/, /neighborhood/) | The restaurants on that page, with city and category pages followed to the end | restaurant |
| A keyword plus an address | Uber Eats search results around that address, with delivery times and fees | restaurant |
| The feed link plus an address | The home feed Uber Eats shows for that address | restaurant |
Listing rows are lighter than store rows (no menu). Feed a listing row's url back in as a store link to get its full menu.
๐ช Store link: full menu, prices and reviews
{"urls": ["https://www.ubereats.com/store/mcdonalds-l-a-1231-la-brea/OGl_6BVQQI-f2jJX6s3c0w"],"includeReviews": true}
๐ Grocery store: the entire catalog
{"urls": ["https://www.ubereats.com/store/7-eleven-6051-hollywood-blvd/FNPcwSJ1Rxea0Ot_XMqBkw"]}
Nothing extra to switch on. Grocery, convenience, pharmacy and retail stores are detected and every aisle is fetched.
๐๏ธ City and cuisine pages
{"urls": ["https://www.ubereats.com/city/los-angeles-ca","https://www.ubereats.com/category/los-angeles-ca/pizza","https://www.ubereats.com/gb/dish/london-eng/chicken-wings"],"maxResults": 500}
City and category pages keep going past page 1 until maxResults or the last page.
๐ Keyword search around an address
{"urls": ["sushi", "thai food"],"address": "Times Square, New York, NY","maxResults": 200}
Add a city or postcode to the address when a street name exists in several places.
๐ Everything Uber Eats shows at an address
{"urls": ["https://www.ubereats.com/feed"],"address": "10 Downing Street, London SW1A 2AA","maxResults": 300}
How to scrape Uber Eats: step by step
- Create a free Apify account. Takes 30 seconds, no card needed.
- Open Uber Eats Scraper in the Apify Console.
- Paste store links, listing links or keywords. Add an address if you want results for a specific place.
- Click Start. A restaurant takes a few seconds; a full grocery catalog about half a minute.
- Export as JSON, CSV or Excel, or fetch the results through the API.
Input fields
| Field | Type | Default | What it does |
|---|---|---|---|
urls | list | /near-me | Store links, listing links (/city/, /category/, /dish/, /near-me/, /neighborhood/, /find-near-me/, /feed, /search?q=) or keywords like pizza. Mix freely. |
address | text | none | Street, city or postcode. Keywords, /feed and /search then return what Uber Eats shows there, and stores get real delivery times. |
country | choice | US | Which country's Uber Eats a bare keyword is looked up on when no address is given. Links carry their own country. |
maxResults | number | 50 | Stop after this many results in total. 0 means no limit. |
includeReviews | yes/no | yes | Add the customer reviews shown on each store page. No extra cost. |
mode | choice | auto | Leave on auto; it's detected from each link. |
How much does Uber Eats Scraper cost?
You pay $2 per 1,000 results, and there's no per-run fee. A result is one store with its full menu, or one restaurant row from a listing. The Apify Free plan's $5 of monthly credits covers roughly 2,500 results. The $29 Starter plan covers about 14,500 results a month.
Output
Store (restaurant)
Trimmed from a real run: 2 of 51 menu categories, 3 of 21 opening-hour windows, 1 review of each kind.
{"url": "https://www.ubereats.com/store/mcdonalds-l-a-1231-la-brea/OGl_6BVQQI-f2jJX6s3c0w","uuid": "38697fe8-1550-408f-9fda-3257eacddcd3","title": "McDonald'sยฎ (L/A-1231 La Brea)","parentChain": { "uuid": "d8fb9d71-d641-43e1-901c-5f36a182c2d9", "name": "McDonald's" },"phoneNumber": "+13239361501","address": {"raw": "1231 S La Brea Ave, Los Angeles, CA 90019","city": "Los Angeles", "region": "CA", "country": "US","neighborhood": "mid-wilshire-los-angeles-ca", "postalCode": "90019","lat": 34.0524875, "lng": -118.3442646},"cityId": 12,"citySlug": "los-angeles","cuisineList": ["American", "Fast Food", "Burgers", "Group Friendly"],"currencyCode": "USD","isOpen": true,"isOrderable": true,"closedMessage": "Delivery unavailable","workingHoursTagline": "Open 24 Hours","supportedDiningModes": ["DELIVERY"],"hours": [{ "dayOfWeek": "Sunday", "openMinute": 240, "closeMinute": 659, "menuName": "Breakfast" },{ "dayOfWeek": "Sunday", "openMinute": 660, "closeMinute": 1019, "menuName": "Lunch" },{ "dayOfWeek": "Sunday", "openMinute": 1020, "closeMinute": 239, "menuName": "Dinner" }],"rating": 4.692073007546997,"ratingCountText": "15,000+","ratingCount": 15000,"etaText": null,"etaMinMinutes": null,"etaMaxMinutes": null,"fareBadge": null,"priceLevel": 1,"deliveryFee": null,"serviceFee": null,"heroImage": {"url": "https://tb-static.uber.com/prod/image-proc/processed_images/b9c717751beec2896357ee0fbf38ad72/5e48b5818af0117f322d7c4ae77977a8.jpeg","widths": [240, 550, 640, 750, 1080, 2880]},"logoImage": "https://tb-static.uber.com/prod/image-proc/processed_images/b1d751cdfa1a38df11dec12e1f3b2e45/aa942214cb8ba5dd13c8f8035f4ab522.png","menu": [{"sectionUuid": "0379a62a-1156-4ddb-a09a-7e1dc45d5dfb","sectionName": "Featured items","menuName": "Dinner","items": [{"itemUuid": "9c769616-602c-53e2-8d78-c9fefc41072b","title": "2 Cheeseburger Meal","description": null,"priceCents": 1349,"priceText": "$13.49","caloriesText": "920 - 1160 Cal.","originalPriceText": null,"promotionText": null,"likePercent": null,"likeCount": null,"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/fc643a5423468b0bfd67cbac4bb2e89e/a19bb09692310dfd41e49a96c424b3a6.jpeg","isSoldOut": false,"isAvailable": true,"hasCustomizations": true,"endorsement": null,"popularityHints": ["#1 most liked"]}]},{"sectionUuid": "556a657a-69d1-5c73-acc5-906ab31593ca","sectionName": "Free with $15 purchase","menuName": "Dinner","items": [{"itemUuid": "1375e63c-c5ca-56d8-b6d1-ea0774278435","title": "Big Macยฎ","priceCents": 769,"priceText": "$7.69","caloriesText": "590 Cal.","promotionText": "Free on $15+","hasCustomizations": true,"popularityHints": []}]}],"menuSectionCount": 51,"menuItemCount": 227,"analytics": {"totalSections": 51, "totalItems": 227,"minPriceCents": 50, "maxPriceCents": 4939, "avgPriceCents": 777,"imageCoverage": 0.9779735682819384,"descriptionCoverage": 0.12334801762114538,"customizationCoverage": 0.8370044052863436},"reviews": {"summary": [{"contentUUID": "76162606-acf6-456b-96d0-7cc0874bf410","createdAt": "2021-10-05T00:00:00Z","formattedDate": "10/05/21","timeSinceReview": "5 years ago","author": "Marlene A.","text": "It was the driver for me. Awesome delivery guy."}],"featured": [{"contentUUID": "386f15c7-b112-4412-8f4d-5892cf30d864","createdAt": "2024-07-29T00:00:00Z","author": "Denise M.","text": "McDonaldโs workers should get a raise. They never disappoint me. No other company is like McDonald. I paid for my order at 10.35pm. At 10.57 pm I was already eating it on my couch. Thanks for the hard work."}]},"promotion": null,"scrapedAt": "2026-09-28T18:14:10.018Z","scrapedFrom": "store_api"}
Delivery time and fees are null here because no address was given. Add one and they fill in.
Grocery store (full catalog)
Same shape as a restaurant. This 7-Eleven returned 1,912 products in 114 shelves across 20 aisles. Two items shown: a discounted pizza and a beer from the Alcohol aisle.
{"title": "7-Eleven (6051 Hollywood Blvd)","menuSectionCount": 114,"menuItemCount": 1912,"menu": [{"sectionUuid": "7831870f-bd8a-4a2d-8db9-d1c7942d26c0","sectionName": "Deals","menuName": null,"items": [{"itemUuid": "b4fb0e08-2e13-5dc7-848a-ac79fe1391ca","title": "Large Pizza - Ultimate Pepperoni","priceCents": 699,"priceText": "$6.99","originalPriceText": "$10.99","promotionText": "36% off","isAvailable": true}]},{"sectionUuid": "776f0edc-4428-448c-9d84-8825c0cee5d4","sectionName": "Beer","menuName": "Alcohol","items": [{"itemUuid": "52da1dec-cddc-569a-a145-c9a85605ac85","title": "Lagunitas Maximus Imperia Colossal Ipa Beer (6 x 12 fl oz)","priceCents": 1609,"priceText": "$16.09","originalPriceText": null,"promotionText": null,"isAvailable": true}]}]}
Listing row (city, cuisine, dish or near-me page)
{"url": "https://www.ubereats.com/store/palnadu-indian-cuisine/w5qcJydrXdaH5iDFqIH9mw","uuid": "c39a9c27-276b-5dd6-87e6-20c5a881fd9b","title": "Palnadu Indian Cuisine","phoneNumber": "+18565601122","address": {"raw": "1900 Greentree Road, Cherry Hill, NJ 08003","city": "Cherry Hill", "region": "NJ", "country": "US","neighborhood": null, "postalCode": "08003","lat": 39.9063, "lng": -74.9655},"cuisineList": ["Indian", "Vegetarian", "Asian"],"currencyCode": "USD","isOpen": null,"isOrderable": true,"rating": 4.337152209492635,"ratingCountText": "290+","ratingCount": 290,"etaText": null,"priceLevel": null,"heroImage": {"url": "https://tb-static.uber.com/prod/image-proc/processed_images/86dd610d43811846498d7f4b85f1d770/0e8f477e8f858732b95bd74b5e07a538.jpeg","widths": [2880, 550]},"menuItemCount": 0,"promotion": null,"scrapedFrom": "ld_json_fallback"}
Search result around an address
{"url": "https://www.ubereats.com/store/chefstore-170-s-van-ness-ave/DLAfkOtvVgqCAKhN0GIy7g","title": "CHEF'STORE","rating": 4.283088235294117,"ratingCount": 110,"etaText": "12:11PM","etaMinMinutes": 40,"etaMaxMinutes": 71,"isOrderable": true,"deliveryFee": null,"promotion": {"hasStorePromotion": true,"text": "Items on sale","promotionUuid": "3a4359dd-1094-4725-9179-601b8df36fc1"},"currencyCode": "USD","scrapedFrom": "feed_api"}
Feed results for an address have the same shape and often add the delivery fee ("$4.95 Delivery Fee").
Every field explained
| Field | What it means |
|---|---|
url | Link to the store on Uber Eats. One clean link per store, whatever form you pasted. |
uuid | Uber Eats' own store ID. Stable, so use it as your key when you merge runs. |
title | Store name as shown, in its own language. |
parentChain | The brand a location belongs to (McDonald's). Group by parentChain.uuid to compare all branches of a chain. |
phoneNumber | Store phone number when the store publishes one. |
address | Street address plus city, region, country, postalCode and map coordinates (lat, lng). Parts Uber Eats doesn't publish are null. |
cityId, citySlug | Uber Eats' own city ID and short city name (los-angeles). |
cuisineList | Cuisine and diet tags as Uber Eats lists them: Pizza, Halal, Vegan. |
currencyCode | Currency of every price in the row (USD, GBP, JPY). |
isOpen | Whether the store is open right now. null when the page doesn't say. |
isOrderable | Whether Uber Eats accepts orders from it right now. |
closedMessage | Why ordering is off, as shown ("Delivery unavailable"). |
workingHoursTagline | Today's hours in one line ("Open until 2:00 AM"). |
supportedDiningModes | Delivery, pickup or dine-in. |
hours | Opening hours per day in minutes from midnight (660 = 11:00). menuName says which menu a window is for; a closeMinute smaller than openMinute runs past midnight. |
rating, ratingCountText, ratingCount | Average star rating, the count as shown ("15,000+") and as a number. |
etaText, etaMinMinutes, etaMaxMinutes | Delivery time to your address. Only filled when you give an address. |
fareBadge | Delivery fee badge as shown ("ยฃ4.99 Delivery Fee", "Moderate Delivery Fee"). |
priceLevel | How pricey the store is, 1 ($) to 4 ($$$$). |
deliveryFee, serviceFee | Fees for your address. Only filled when you give an address. |
heroImage | The store's banner image at its largest size, plus every size available. |
logoImage | Store or chain logo. |
menu | One entry per menu category: sectionName ("Burgers"), menuName ("Breakfast", or the aisle on grocery stores), and its items. |
menu[].items[].title, description, imageUrl | Item name, description and photo. |
menu[].items[].priceText | Price as shown on the page ("$7.69", "16,80 โฌ", "๏ฟฅ1,280"). |
menu[].items[].priceCents | Price as a number, times 100 in every currency: 769 = $7.69, 128000 = ยฅ1,280. |
menu[].items[].originalPriceText | The crossed-out price before a discount. |
menu[].items[].promotionText | The item's deal: "2 for $4.75", "Free on $15+", "36% off". |
menu[].items[].caloriesText | Calories as shown ("590 Cal.", "221 kcal"). |
menu[].items[].likePercent, likeCount | Share of customers who liked the item and how many rated it ("70% (20)" gives 70 and 20). |
menu[].items[].popularityHints | Popularity labels as shown: "#1 most liked", "70% (20)". |
menu[].items[].endorsement | Badge on the item, such as "Popular". |
menu[].items[].isSoldOut, isAvailable, hasCustomizations | Stock status, and whether the item has options such as sizes or toppings. |
menuSectionCount, menuItemCount | Number of categories and of distinct items. An item listed in two categories counts once. |
analytics | Menu summary: cheapest, dearest and average item price, and the share of items with photos, descriptions and options. |
reviews | Customer reviews shown on the store page (summary) and the ones Uber Eats features (featured): author, date, text. |
promotion | Store-wide promotion flag and its text when shown ("Items on sale"). |
scrapedAt | When the row was collected. |
scrapedFrom | Which kind of page the row came from. Store rows say store_api; listing rows ld_json_fallback, redux_state or feed_api. |
Use cases
- ๐ฝ๏ธ Menu and price benchmarking. Compare what competitors charge for the same dish across a city, a chain or a country.
- ๐ Grocery and CPG price tracking. Pull every product and discount from convenience and grocery stores to watch shelf prices and promotions.
- ๐ท๏ธ Promotion intelligence. See which stores and brands run "Buy 1, get 1" or "% off" deals, and on which items.
- ๐งฒ Lead generation for restaurant tech. Build lists of restaurants with phone, address, cuisine and rating for POS, delivery and marketing sales teams.
- ๐บ๏ธ Delivery coverage research. Check which stores deliver to an address, how fast and for what fee, before opening a dark kitchen or a new location.
- ๐ข Chain and franchise analysis. Group branches by
parentChainto compare menus, prices and ratings across locations. - ๐ฅ Food trend and nutrition research. Track cuisines, dishes and calories across markets, including Halal and Vegan tags.
- ๐ฌ Review and sentiment analysis. Collect reviews to find what customers praise or complain about.
Limitations
- Delivery time and fees need an address. Without one Uber Eats shows no delivery time, so those fields are
null. - No email addresses. Uber Eats doesn't publish them; phone numbers are included when stores list one.
- Keyword search returns up to about 80 stores per keyword, which is the most Uber Eats itself shows. For more, use city and category pages.
- Listing rows have no menu. Pass a row's
urlback in to get the full store. - Some listing pages leave out details: city and category pages don't show ratings, and US search results don't include coordinates.
- Grocery catalogs stop at 3,000 products per store. The run's status message says so when a store is cut short.
FAQ
Do I need an address?
Only if you want results for a specific place. Store links and city or cuisine pages work without one. Keyword search and the feed follow Uber Eats' default area without an address, and the run tells you so.
Do I need a proxy, login or cookies?
No. Proxies, retries and blocks are handled for you, and the scraper only reads what anyone can see on Uber Eats without signing in.
Which countries does it work in?
Any country Uber Eats operates in. Menus and prices come back in the local language and currency: we've checked stores in the US, UK, France and Japan in detail.
Why is a field null?
Because Uber Eats doesn't show it on that page. We'd rather give you an empty field than a guessed number, which is honestly the most common problem with scraped delivery data.
How much does Uber Eats Scraper cost?
Uber Eats Scraper uses pay-per-result pricing. You pay $2 for 1,000 results. The Apify Free plan gives you $5 in usage credits a month, enough for around 2,500 results. If you run regularly, the $29/month Starter plan covers about 14,500 results.
No subscription lock-in. Pause whenever.
Is it legal to scrape Uber Eats?
Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible pages, but how you use the output is on you.
Apify's full breakdown: Is web scraping legal?.
Can I integrate Uber Eats Scraper with other tools?
Push results into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.
Full list: Apify integrations.
Can I use Uber Eats Scraper with the Apify API?
Yes. Every run is available via the Apify REST API:
curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~ubereats-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["sushi"], "address": "Times Square, New York, NY", "maxResults": 100}'
Docs: Apify API reference.
Can I use Uber Eats Scraper through an MCP Server?
Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call Uber Eats Scraper. Setup: Apify MCP docs.
Your feedback
Bug, missing field, or odd behavior? Drop a note in the Issues tab. Reports go to a human and fixes usually ship the same week.