Uber Eats Scraper — Restaurants, Menus & Prices
Pricing
Pay per usage
Uber Eats Scraper — Restaurants, Menus & Prices
Extract Uber Eats restaurants with full menus, item prices, ratings, delivery fees, delivery times, and cuisine types. Search any city or address. Filter by cuisine. Export to JSON, CSV, or Excel. Perfect for food delivery market research and competitive analysis.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Uber Eats Restaurant & Menu Scraper
Extract restaurant listings and full menus from Uber Eats. Get names, addresses, ratings, review counts, delivery fees, delivery times, price ranges, cuisine types, and detailed menu items with prices and descriptions.
Features
- Multi-location search — Scrape restaurants across multiple cities, zip codes, or addresses in a single run
- Full menu extraction — Get every menu item with name, description, price, and category
- Cuisine filtering — Filter by pizza, sushi, Mexican, Thai, Indian, and 40+ more cuisine types
- Smart extraction — Three-layer extraction (embedded JSON, JSON-LD, HTML DOM) for maximum reliability
- Pay-per-event pricing — Only pay $0.005 per restaurant scraped
- Deduplication — Automatic removal of duplicate restaurants across locations
- Proxy support — Built-in proxy rotation for large-scale scrapes
- Export — JSON, CSV, Excel, XML, or connect via API
Output Schema
Each restaurant record contains:
| Field | Type | Description |
|---|---|---|
name | string | Restaurant name |
address | string | Full street address |
rating | number | Average rating (0-5 scale) |
reviewCount | number | Number of ratings/reviews |
deliveryFee | string | Delivery fee (e.g., "Free", "$2.49") |
deliveryTime | string | Estimated delivery time (e.g., "25-35 min") |
priceRange | string | Price level ($, $$, $$$, $$$$) |
cuisine | string | Cuisine type(s) |
menu | array | Full menu items (when includeMenus is true) |
menuItemCount | number | Number of menu items |
url | string | Direct link to the restaurant on Uber Eats |
imageUrl | string | Restaurant hero/cover image URL |
scrapedAt | string | ISO timestamp of when data was scraped |
Menu Item Schema
Each item in the menu array contains:
| Field | Type | Description |
|---|---|---|
name | string | Item name |
description | string | Item description |
price | number | Price in USD |
category | string | Menu section/category (e.g., "Appetizers", "Entrees") |
imageUrl | string | Item image URL (when available) |
isPopular | boolean | Whether the item is marked as popular |
Example Output
{"name": "Joe's Pizza","address": "7 Carmine St, New York, NY 10014","rating": 4.7,"reviewCount": 2340,"deliveryFee": "$0.99","deliveryTime": "20-30 min","priceRange": "$","cuisine": "Pizza, Italian","menu": [{"name": "Cheese Pizza (Large)","description": "Classic New York style cheese pizza with mozzarella and tomato sauce","price": 22.00,"category": "Whole Pies","imageUrl": null,"isPopular": true},{"name": "Pepperoni Slice","description": "Single slice with pepperoni","price": 4.50,"category": "Slices","imageUrl": null,"isPopular": false}],"menuItemCount": 24,"url": "https://www.ubereats.com/store/joes-pizza/abc123","imageUrl": "https://...","scrapedAt": "2026-03-02T12:00:00.000Z","source": "ubereats"}
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
locations | array | Yes | ["New York, NY"] | List of city names, addresses, or zip codes to search |
cuisine | string | No | (all) | Cuisine filter: pizza, chinese, mexican, sushi, thai, indian, italian, burgers, etc. |
maxResults | integer | No | 200 | Maximum restaurants to scrape (1-5000) |
includeMenus | boolean | No | true | Extract full menu with items, prices, and descriptions |
proxy | object | No | none | Proxy configuration for avoiding rate limits |
Example Input
{"locations": ["New York, NY", "Los Angeles, CA", "Chicago, IL"],"cuisine": "pizza","maxResults": 100,"includeMenus": true,"proxy": {"useApifyProxy": true}}
Supported Cuisines
Pizza, Chinese, Mexican, Sushi, Japanese, Burgers, Thai, Indian, Italian, Korean, Vietnamese, Mediterranean, American, Seafood, Wings, Breakfast, Desserts, Vegan, Healthy, Sandwiches, Chicken, BBQ, Ramen, Pho, Tacos, Salads, Soup, Coffee, Bakery, Donuts, Ice Cream, Smoothies, Bubble Tea, Caribbean, Greek, Turkish, Ethiopian, Peruvian, Brazilian, French, Halal, Asian, African, Middle Eastern, and more.
Use Cases
- Market research — Analyze restaurant density, pricing, and cuisine distribution by area
- Competitive analysis — Track competitor menus, prices, and ratings over time
- Lead generation — Build restaurant databases for B2B outreach
- Price monitoring — Track menu item prices across restaurants and locations
- Data journalism — Analyze food delivery trends and pricing patterns
- Academic research — Study food accessibility, pricing equity, and delivery coverage
Performance Tips
- Start small — Test with 1 location and
maxResults: 20before scaling up - Use proxies — Enable Apify Proxy for runs over 50 restaurants to avoid rate limits
- Skip menus for speed — Set
includeMenus: falsefor 3-5x faster scraping when you only need restaurant-level data - Cuisine filter — Narrow by cuisine to get more targeted results faster
Pricing
This actor uses pay-per-event pricing:
- $0.005 per restaurant scraped (including menu data when enabled)
- No charge for failed extractions
- Platform compute costs apply separately
Technical Details
- Built with Apify SDK v3 and Crawlee v3 (CheerioCrawler)
- Three-layer extraction strategy for maximum data coverage:
- Server-side rendered JSON state (most reliable)
- JSON-LD structured data (schema.org)
- HTML DOM parsing with multiple selector fallbacks
- Automatic request retries with exponential backoff
- Random user agent rotation and request delays
- Smart deduplication by URL and restaurant name+address
Disclaimer
This actor scrapes publicly available data from Uber Eats. It is intended for personal and research use. Users are responsible for ensuring compliance with Uber Eats' Terms of Service and applicable laws. The actor does not access private data, require authentication, or bypass any access controls.
Support
- Author: Sovereign AI (ricardo.yudi@gmail.com)
- License: MIT
- Issues: Report bugs via the Apify platform or email
Integration — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("sovereigntaylor/ubereats-scraper").call(run_input={"searchTerm": "ubereats","maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item.get('title', item.get('name', 'N/A'))}")
Integration — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/ubereats-scraper').call({searchTerm: 'ubereats',maxResults: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.title || item.name || 'N/A'));