Uber Eats Scraper - Menus, Prices, Reviews
Pricing
$2.00 / 1,000 results
Uber Eats Scraper - Menus, Prices, Reviews
Scrape Uber Eats restaurants worldwide โ full menus with prices in cents, reviews, hours, ratings, and chain IDs in a single HTTP request. 10 countries supported. $2 per 1,000 results, no per-run fee.
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
Sourabh Kumar
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
3
Monthly active users
20 days ago
Last modified
Categories
Share
Overview
Ubereats Scraper extracts Uber Eats restaurants with full menus, prices, hours, reviews, and chain rollups. One HTTP request per store, no headless browser, no login. A single fetch returns the same data competing scrapers stitch together from 3 to 5 endpoints.
Pay only for what you keep: $2.00 per 1,000 results. No per-run fee, no monthly minimum.
Country-aware across the US, UK, Canada, Australia, Japan, France, Germany, Mexico, and Brazil.
What data can you extract?
| ๐ช Title + UUID | ๐ parentChain rollup | ๐ Phone number | ๐ Geocoded address |
| ๐ฝ๏ธ Cuisine + dietary tags | ๐ต Menu items (cents) | ๐ Section structure | ๐ผ๏ธ Hero image (all widths) |
| โญ Rating + count | โฐ Hours (in minutes) | ๐ด Delivery + service fees | ๐ Reviews + dedup keys |
| ๐ข isOpen / isOrderable | ๐๏ธ Dining modes | ๐ Menu analytics rollup | ๐ Currency + locale |
Two scraping modes: store and discover
The mode field is optional. By default it's set to auto, which inspects each URL and routes it to the right mode. You only need to set mode explicitly if you want to force a specific path (for example, to skip auto-detection or run mixed inputs through one mode).
mode value | Behavior | Use when |
|---|---|---|
auto (default, used when mode is not provided) | Picks store or discover per URL shape | Most runs. Skip the mode field entirely. |
store | Forces store mode for every URL in the run | All inputs are restaurant URLs and you want the full menu + reviews per record. |
discover | Forces discover mode for every URL | Inputs are listings, /near-me, or cuisine keywords. |
Auto-detection rules: a URL matching https://www.ubereats.com/store/<slug>/<uuid> routes to store. A /near-me URL, a /feed listing URL, or a cuisine keyword like pizza, sushi, chinese routes to discover.
Store mode: URL points to a single restaurant
Returns one record with the full menu (all sections + items), reviews summary, analytics rollup, hours, contact, address, and chain ID. Up to 11 most-recent and 3 featured reviews per store, each with a contentUUID for deduplication.
Triggers: any URL matching https://www.ubereats.com/store/<slug>/<uuid>.
Example input:
{"urls": ["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ"],"mode": "store","country": "US","includeReviews": true}
Discover mode: listing URL or cuisine keyword
Returns one record per restaurant in the listing (up to maxResults), with identity, rating, ETA, delivery fee, cuisine list, and address. Menus and reviews are not fetched in discover mode. Switch to store mode (or pass the store URL directly) for those.
Triggers: /near-me URLs, /feed listing URLs, or cuisine keywords like pizza, sushi, chinese.
Example input (cuisine keyword):
{"urls": ["pizza"],"mode": "discover","country": "US","address": "San Francisco, CA","maxResults": 50}
Example input (listing URL):
{"urls": ["https://www.ubereats.com/near-me"],"mode": "discover","country": "US","maxResults": 30}
Global & multi-language support
The actor handles 9 country markets. Cuisine keywords route through the matching country prefix; the residential proxy attaches the country IP at fetch time.
| Region | Country code | Sample cuisine keywords | Discover-mode listings |
|---|---|---|---|
| ๐บ๐ธ United States | US | pizza, mexican, sushi, bbq | โ |
| ๐ฌ๐ง United Kingdom | GB | pizza, indian, kebab, fish-and-chips | โ |
| ๐จ๐ฆ Canada | CA | pizza, poutine, sushi | โ |
| ๐ฆ๐บ Australia | AU | pizza, thai, indian | โ |
| ๐ฏ๐ต Japan | JP | sushi, ramen, pizza | โ |
| ๐ซ๐ท France | FR | pizza, sushi, burger | โ |
| ๐ฉ๐ช Germany | DE | pizza, burger, sushi, italian, asian | โ |
| ๐ฒ๐ฝ Mexico | MX | pizza, sushi, burger, japanese | โ |
| ๐ง๐ท Brazil | BR | โ (use store URLs directly) | store URLs only |
The cuisine-keyword vocabulary is set by Uber Eats per country and not all keywords resolve in every market. The samples above are verified-working as of 2026-05-06; if you pass a keyword Uber Eats doesn't curate (e.g. kebab in DE, tacos in MX), the discover URL returns 404 and that keyword is skipped. Drop to a direct store URL when in doubt.
๐ฎ๐ณ India: Uber Eats sold its India operations to Zomato in 2020. The IN country code is intentionally not supported โ use Zomato or Swiggy scrapers instead.
๐ง๐ท Brazil: Uber Eats no longer serves the /near-me listing path on the Brazilian site (HTTP 410). Store URLs work; cuisine-keyword discovery does not.
Native scripts (Kanji, etc.) are returned unchanged in title, cuisineList, and menu fields. The actor never re-encodes them.
How to scrape Uber Eats: step by step
- Create a free Apify account. Takes 30 seconds, no card needed.
- Open Ubereats Scraper in the Apify Console.
- Paste store URLs, listing URLs, or cuisine keywords (one per line) and pick a country.
- Click Start. A single store usually finishes in 5 to 15 seconds; a
/near-mediscover run in 10 to 30 seconds. - Export as JSON, CSV, or Excel, or fetch via API.
How much does Ubereats Scraper cost?
- Per 1,000 results: $2.00
- Free-plan yield: roughly 2,500 results/month on the $5 in monthly Apify credits.
- Starter-plan yield: about 14,500 results/month on the $29 Starter plan.
No per-run fee. You pay only for records pushed to the dataset; failed URLs don't charge.
Input
{"urls": ["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ","pizza"],"country": "US","address": "San Francisco, CA","mode": "auto","maxResults": 50,"includeReviews": true}
| Field | Type | Default | Notes |
|---|---|---|---|
urls | string[] | ["https://www.ubereats.com/near-me"] (prefill) | Store URLs, listing URLs, or cuisine keywords. Mode auto-detects from URL shape. |
country | enum | US | One of US, GB, CA, AU, IN, JP, FR, DE, MX, BR. Drives proxy country and cuisine-keyword URL prefix. |
address | string | n/a | City, ZIP, or full address. Discover mode only; ignored for store URLs. |
mode | enum | auto | Override auto-detection: auto, discover, or store. |
maxResults | integer | 50 | 0 = unlimited. |
includeReviews | boolean | true | Reviews are inline in the store payload, no extra HTTP cost. |
proxyConfiguration | proxy | Apify Residential | Country defaults to the country input. |
Recipes
Single store, full menu + reviews
{"urls": ["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ"]}
Pull every pizza place in a city
{"urls": ["pizza"],"country": "US","address": "San Francisco, CA","maxResults": 100}
Multi-country sushi sweep
{"urls": ["sushi"],"country": "JP","maxResults": 50}
Bulk compare 10 chain locations
{"urls": ["https://www.ubereats.com/store/.../<uuid-1>","https://www.ubereats.com/store/.../<uuid-2>","https://www.ubereats.com/store/.../<uuid-3>"],"includeReviews": false}
Group results by parentChain.uuid to roll multi-location chains into one row.
Listing URL with graceful degradation
{"urls": ["https://www.ubereats.com/near-me","https://www.ubereats.com/store/this-does-not-exist/abc123"],"country": "US"}
The dead URL lands in the run's KV store under OUTPUT_ERRORS; the listing URL still returns its records and the run exits SUCCEEDED.
Output
Real record from a recent store-mode run on jessies-breakfast:
{"url": "https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ","uuid": "50054718-d481-4027-aa84-acc4b62b3749","title": "Jessie's Breakfast","parentChain": {"uuid": "087ad4be-ff14-4f64-abbb-6afcc2e2a7e8","name": "mi yucatan"},"phoneNumber": "+14152854455","address": {"raw": "2845 Mission St, San Francisco, CA 94110","city": "san-francisco-ca","region": "ca","country": "us","neighborhood": "inner-mission-san-francisco-ca","postalCode": null,"lat": 37.7515222,"lng": -122.418227},"cuisineList": ["Mexican", "Latin American", "New Mexican", "Breakfast and Brunch"],"currencyCode": "USD","isOpen": true,"isOrderable": true,"supportedDiningModes": ["DELIVERY", "PICKUP"],"hours": [{ "dayOfWeek": "Monday", "openMinute": 300, "closeMinute": 1140 },{ "dayOfWeek": "Tuesday", "openMinute": 300, "closeMinute": 1140 }],"rating": 4.524852569502948,"ratingCount": 700,"ratingCountText": "700+","etaText": "170โ170 Min","fareBadge": "Higher Delivery Fee","heroImage": {"url": "https://tb-static.uber.com/prod/image-proc/processed_images/626bdb5364060c8af14e6842adfcf3a4/e39556ef1e4c4565bc6c7dbd8b90869c.jpeg","widths": []},"logoImage": "https://tb-static.uber.com/prod/image-proc/processed_images/c5ca80f0759d63e9b8d3387af3783b50/e00617ce8176680d1c4c1a6fb65963e2.png","menu": [{"sectionUuid": "b6b256e0-3d55-4e91-9bfd-dd9f678925f0","sectionName": "Bagels","items": [{"itemUuid": "127c612c-8442-465b-8cdc-ce5642602c34","title": "HUEVOS ALA MEXICANA","description": "Dice,.tomatoes ,onions , spinach eggs.cheese served with potatoes.and toast","priceCents": 3199,"priceText": "$31.99","imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/2f81eb678acf0792b3c097f37a63f1a2/4218ca1d09174218364162cd0b1a8cc1.jpeg","isSoldOut": false,"isAvailable": true,"hasCustomizations": false,"endorsement": null,"popularityHints": []}]}],"menuSectionCount": 1,"menuItemCount": 91,"analytics": {"totalSections": 1,"totalItems": 91,"minPriceCents": 199,"maxPriceCents": 3999,"avgPriceCents": 1820,"imageCoverage": 0.978,"descriptionCoverage": 0.978,"customizationCoverage": 0.033},"reviews": {"summary": [{"contentUUID": "cc1d9020-1e92-47aa-bb0e-47b37fc7844a","createdAt": "2025-04-23T00:00:00","author": "SARAH ROSE C.","text": "Loved the croissant french toast it's always delicious","source": "UNKNOWN"}],"featured": [{"contentUUID": "844f21fc-42fc-44b9-9a39-71a28890d54f","createdAt": "2024-05-29T00:00:00","author": "LORI B.","text": "was craving eggs for a few days now, and the steak was an amazing touch!"}]},"scrapedAt": "2026-05-06T10:34:03.055Z","scrapedFrom": "react_query_state"}
Field availability by mode
| Field group | Store mode | Discover mode |
|---|---|---|
Identity (uuid, title, url, parentChain) | โ | โ |
| Address (full geocoded) | โ | โ |
Contact (phoneNumber) | โ | n/a |
| Cuisine + dietary tags | โ | โ |
| Hours (per-day, minutes-from-midnight) | โ | n/a |
| Rating + count | โ | โ |
| Delivery / service fees, ETA, badges | โ | โ |
| Hero + logo image | โ | โ |
| Full menu (sections + items + cents) | โ | n/a |
| Analytics rollup | โ | n/a |
| Reviews (summary + featured) | โ | n/a |
scrapedFrom source tag | โ | โ |
If you need menus or reviews from a discover-mode run, take the resulting store URLs and feed them back into a second run in store mode.
FAQ
How much does Ubereats Scraper cost?
Ubereats Scraper uses pay-per-result pricing. You pay $2.00 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 Uber Eats pages, but how you use the output is on you.
Apify's full breakdown: Is web scraping legal?.
Can I integrate Ubereats 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 Ubereats 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":["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ"],"country":"US"}'
Docs: Apify API reference.
Can I use Ubereats 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 Ubereats 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.