Uber Eats Scraper — Restaurants, Menus & Prices avatar

Uber Eats Scraper — Restaurants, Menus & Prices

Pricing

Pay per usage

Go to Apify Store
Uber Eats Scraper — Restaurants, Menus & Prices

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

Ricardo Akiyoshi

Maintained by Community

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:

FieldTypeDescription
namestringRestaurant name
addressstringFull street address
ratingnumberAverage rating (0-5 scale)
reviewCountnumberNumber of ratings/reviews
deliveryFeestringDelivery fee (e.g., "Free", "$2.49")
deliveryTimestringEstimated delivery time (e.g., "25-35 min")
priceRangestringPrice level ($, $$, $$$, $$$$)
cuisinestringCuisine type(s)
menuarrayFull menu items (when includeMenus is true)
menuItemCountnumberNumber of menu items
urlstringDirect link to the restaurant on Uber Eats
imageUrlstringRestaurant hero/cover image URL
scrapedAtstringISO timestamp of when data was scraped

Each item in the menu array contains:

FieldTypeDescription
namestringItem name
descriptionstringItem description
pricenumberPrice in USD
categorystringMenu section/category (e.g., "Appetizers", "Entrees")
imageUrlstringItem image URL (when available)
isPopularbooleanWhether 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

ParameterTypeRequiredDefaultDescription
locationsarrayYes["New York, NY"]List of city names, addresses, or zip codes to search
cuisinestringNo(all)Cuisine filter: pizza, chinese, mexican, sushi, thai, indian, italian, burgers, etc.
maxResultsintegerNo200Maximum restaurants to scrape (1-5000)
includeMenusbooleanNotrueExtract full menu with items, prices, and descriptions
proxyobjectNononeProxy 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

  1. Start small — Test with 1 location and maxResults: 20 before scaling up
  2. Use proxies — Enable Apify Proxy for runs over 50 restaurants to avoid rate limits
  3. Skip menus for speed — Set includeMenus: false for 3-5x faster scraping when you only need restaurant-level data
  4. 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:
    1. Server-side rendered JSON state (most reliable)
    2. JSON-LD structured data (schema.org)
    3. 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 ApifyClient
client = 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'));