Uber Eats Menu Scraper
Pricing
Pay per event
Uber Eats Menu Scraper
๐ด ONLY Uber Eats scraper with analytics! Extract menus + automatic price/image coverage analysis. Competitive intelligence in seconds. Start free! ๐
Pricing
Pay per event
Rating
5.0
(3)
Developer

SIรN Oร
Actor stats
5
Bookmarked
66
Total users
11
Monthly active users
13 hours
Issues response
3 days ago
Last modified
Categories
Share
Uber Eats Menu Scraper ๐ด
๐ Overview
The only Uber Eats menu scraper with built-in analytics intelligence! ๐ฏ
While other scrapers just give you raw data, we provide actionable insights. Get complete menu data PLUS automatic analytics: price coverage analysis, image completeness metrics, and data quality scores - all calculated instantly.
Perfect for restaurant owners, market researchers, and delivery services who need not just data, but intelligence. Stop wasting hours manually calculating coverage metrics - our scraper does it automatically in seconds.
โจ Features
- ๐ฏ Zero Learning Curve: Paste URL, click Run, get complete menu
- โก Instant Results: Full menu extraction in seconds
- ๐ ๐ฅ BULK MODE - Process multiple restaurants in one run:
- Automatic Deduplication: Smart duplicate removal across all input sources
- Progress Tracking: Real-time progress for each restaurant (1/5, 2/5, etc.)
- Aggregate Analytics: Combined analytics across all restaurants
- Retry Helper: Automatic summaries for failed URLs
- Tier-Based Limits: FREE = 5 URLs/run, PAID = unlimited
- ๐ ๐ฅ EXCLUSIVE ANALYTICS DASHBOARD - The ONLY scraper with built-in intelligence:
- Price Coverage Analysis: See what percentage of items have pricing (critical for competitive analysis)
- Image Completeness Metrics: Know exactly how many items have photos (visual menu completeness)
- Data Quality Scoring: Automatic completeness and validation metrics
- Price Range Intelligence: Min/max pricing insights for market positioning
- ๐ Complete Data: Menu sections, items, prices, descriptions, images with analytics
- ๐ฝ๏ธ Pricing Intelligence: Complete price data with coverage analytics
- ๐ผ๏ธ Visual Menu: Image URLs for all menu items with coverage tracking
- ๐ Market-Ready Metrics: All data processed with business intelligence in mind
๐ฅ Competitive Advantage: Analytics That Others Don't Have
Stop getting raw data. Start getting intelligence.
| Feature | Other Scrapers | ๐ด Our Scraper |
|---|---|---|
| Menu Data | โ Basic menu items | โ Complete menu + Analytics Intelligence |
| Price Coverage | โ You calculate manually | โ Automatic % coverage calculated |
| Image Analysis | โ You count manually | โ Automatic image completeness tracked |
| Price Intelligence | โ Range analysis needed | โ Min/max insights included |
| Competitive Insights | โ Hours of spreadsheet work | โ Instant competitive intelligence |
The 1% Difference That Matters:
- Save 2-3 hours per analysis - No manual spreadsheet calculations
- Make smarter decisions - Know data quality instantly
- Competitive edge - See coverage gaps competitors miss
- Professional reporting - Analytics-ready for presentations
๐ฌ Quick Start
So simple, no training needed! Just paste a restaurant URL and click Run.
# Or use API - one linecurl -X POST https://api.apify.com/v2/acts/sian.agency/uber-eats-menu-scraper/runs?token=[YOUR_TOKEN] \-d '{"url": "https://www.ubereats.com/store/example-restaurant"}'
๐ฅ Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes* | Uber Eats restaurant page URL (for single mode) |
| bulkUrls | array | Yes* | Multiple Uber Eats restaurant URLs (for bulk mode) |
Note: Either
url(single) orbulkUrls(multiple) must be provided
Single Restaurant Mode
Example:
{"url": "https://www.ubereats.com/store/pizza-hunt-123"}
Bulk Mode (Multiple Restaurants)
Process multiple restaurants in a single run with automatic deduplication and tier-based limits.
Example - Array of URLs:
{"bulkUrls": ["https://www.ubereats.com/store/pizza-hunt-123","https://www.ubereats.com/store/burger-king-456","https://www.ubereats.com/store/taco-bell-789"]}
Example - Text File Upload:
{"bulkUrls": [{"requestsFromUrl": "https://example.com/restaurant-urls.txt"}]}
Example - CSV File Upload:
{"bulkUrls": [{"requestsFromUrl": "https://example.com/restaurant-urls.csv"}]}
Example - Comma-Separated URLs:
{"bulkUrls": ["https://www.ubereats.com/store/pizza-hunt-123, https://www.ubereats.com/store/burger-king-456"]}
Bulk Mode Features:
- ๐ Automatic Deduplication: Removes duplicate URLs (normalizes language codes and query parameters)
- ๐ Progress Tracking: Shows progress for each restaurant (1/5, 2/5, etc.)
- ๐ฏ Tier-Based Limits: FREE tier = 5 URLs/run, PAID tier = unlimited
- ๐ ๏ธ Retry Helper: Automatically creates retry summaries for failed URLs
- ๐ Aggregate Analytics: Combines analytics across all processed restaurants
URL Format Requirements:
- Must be a valid Uber Eats restaurant URL
- Pattern:
https://www.ubereats.com/store/[restaurant-name]/[shop-id] - Restaurant name can contain letters, numbers, and hyphens
- Language codes and query parameters are automatically removed
๐ค Output
| Field | Type | Description |
|---|---|---|
| restaurantUrl | string | Cleaned Uber Eats restaurant URL (clickable) |
| shopName | string | Shop name slug extracted from URL |
| shopId | string | Unique shop identifier from Uber Eats |
| hasMenu | boolean | Whether menu data was found |
| analytics | object | Comprehensive menu analytics and metrics |
| totalSections | number | Total menu sections found |
| menuSections | array | Complete menu categories with all items |
| totalItems | number | Total menu items found |
| allMenuItems | array | Flattened list of all menu items with details |
| processedAt | string | Extraction timestamp |
| status | string | Processing status (success/error) |
Note: Fields from
hasMenuonwards are prioritized to show key insights first.
Example:
{"restaurantUrl": "https://www.ubereats.com/store/3-times-water-st/biJOB206RMazIe1zuKxlPA","shopName": "3-times-water-st","shopId": "biJOB206RMazIe1zuKxlPA","hasMenu": true,"analytics": {"totalSections": 6,"totalItems": 83,"itemsWithPrices": 83,"itemsWithoutPrices": 0,"minPrice": 2,"maxPrice": 27.95,"averagePrice": 13.23,"itemsWithImages": 2,"itemsWithoutImages": 81,"imageCoverage": 2,"priceCoverage": 100},"totalSections": 6,"menuSections": [{"name": "Appetizers","hasMenuItem": [{"@type": "MenuItem","name": "Crunchy Pickled Cucumber ่ๅฃๅฐ้ป็","description": "","offers": {"@type": "Offer","price": "8.95","priceCurrency": "USD"}},{"@type": "MenuItem","name": "Edamame ๆฐด็ ฎๆฏ่ฑ","description": "","offers": {"@type": "Offer","price": "7.95","priceCurrency": "USD"}}]}],"totalItems": 83,"allMenuItems": [{"name": "Crunchy Pickled Cucumber ่ๅฃๅฐ้ป็","description": "","section": "Appetizers","price": 8.95,"currency": "USD","imageUrl": null,"hasImage": false},{"name": "Diet Coke, Can","description": "Take a Diet Coke break with this refreshing, no-calorie soft drink","section": "Beverage","price": 2,"currency": "USD","imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/5fcef65dacb7e7da55b6f14bbd9116a7/c67fc65e9b4e16a553eb7574fba090f1.jpeg","hasImage": true}],"processedAt": "2026-01-22T03:14:52.938Z","status": "success"}
๐ Analytics Object
The analytics field provides comprehensive menu insights:
| Metric | Type | Description |
|---|---|---|
| totalSections | number | Number of menu categories |
| totalItems | number | Total menu items across all sections |
| itemsWithPrices | number | Items with pricing data available |
| itemsWithoutPrices | number | Items missing pricing information |
| minPrice | number | Lowest item price in the menu |
| maxPrice | number | Highest item price in the menu |
| averagePrice | number | Mean price across all priced items |
| itemsWithImages | number | Items with image URLs |
| itemsWithoutImages | number | Items without images |
| imageCoverage | number | Percentage of items with images |
| priceCoverage | number | Percentage of items with prices |
๐ผ Use Cases & Examples - Supercharged With Analytics
๐ฏ Restaurant Competitive Analysis
Go beyond menu scraping - get competitive intelligence instantly.
What others do: Extract raw menu items โ Spend hours in Excel calculating pricing coverage โ Manual image analysis โ Basic comparison
What you get: Complete menu + Instant analytics dashboard:
- Price Coverage %: Know immediately if competitor's menu is fully priced (critical for comparison)
- Image Completeness: See visual presentation quality at a glance
- Price Range Intelligence: Instant min/max insights for positioning
- Data Quality Score: Trust your competitive analysis decisions
Business Impact: Make pricing decisions in minutes, not days.
Input: Single competitor restaurant URL Output: Complete menu with actionable competitive intelligence Use: Data-driven price optimization and menu planning
๐ Delivery Service Integration
Build restaurant databases with built-in quality control - no manual validation needed.
What others do: Scrape raw data โ Manual quality checks โ Separate validation processes โ Inconsistent data quality
What you get: Structured menu data + Automatic quality scoring:
- Data Quality Metrics: Know data completeness before integration
- Coverage Analytics: Filter high-quality restaurants automatically
- Validation Scores: Prioritize restaurant onboarding by data quality
- API-Ready Intelligence: All analytics included for smart matching
Business Impact: Reduce restaurant onboarding time by 70%.
Input: Individual restaurant URLs Output: Quality-scored menu data with built-in analytics Use: Intelligent restaurant onboarding with automatic quality filtering
๐ Market Research & Trend Analysis
Professional-grade market intelligence without the manual number crunching.
What others do: Raw menu extraction โ Manual spreadsheet calculations โ Count items by hand โ Basic trend spotting
What you get: Menu data + Ready-to-present analytics:
- Coverage Trends: Track pricing/image completeness over time
- Market Intelligence: Instant insights across restaurant categories
- Quality Benchmarks: Compare data quality across competitors
- Report-Ready Metrics: Analytics already formatted for business presentations
Business Impact: Deliver professional insights faster than competitors.
Input: Restaurant URLs by category or location Output: Business intelligence with coverage analytics and trend insights Use: Professional market research reports with data quality intelligence
Menu Database Creation
Build searchable databases of restaurant menus with built-in quality scoring.
Input: Individual restaurant URLs Output: Standardized menu data in JSON/CSV with analytics Use: Restaurant discovery apps and food directories with quality filters
Price Intelligence
Monitor competitor pricing strategies with automatic change detection and analytics.
Input: Regular extraction of competitor menus Output: Historical pricing data with coverage metrics and completeness tracking Use: Dynamic pricing strategy and competitive monitoring with quality assurance
๐ Integration Examples
JavaScript/Node.js
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/uber-eats-menu-scraper').call({url: 'https://www.ubereats.com/store/restaurant-123'});// Get results with analyticsconst results = await client.dataset(run.defaultDatasetId).getItems();console.log('Menu data:', results);// Example: Process analyticsresults.forEach(result => {console.log(`Menu: ${result.totalItems} items, ${result.analytics.imageCoverage}% image coverage`);});
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/uber-eats-menu-scraper').call(run_input={'url': 'https://www.ubereats.com/store/restaurant-123'})# Get results with analyticsitems = client.dataset(run['defaultDatasetId']).list_items().itemsprint(f"Extracted menu data with analytics for {len(items)} restaurants")# Example: Process analyticsfor item in items:analytics = item.get('analytics', {})print(f"Price coverage: {analytics.get('priceCoverage', 0)}%, Image coverage: {analytics.get('imageCoverage', 0)}%")
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency/uber-eats-menu-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"url": "https://www.ubereats.com/store/pizza-hunt-123"}'
๐ Workflow Automation Tools
Integrate this actor with popular automation platforms:
Use Cases:
- n8n: Build automated menu monitoring workflows
- Zapier: Trigger actions when menus change
- Make.com: Create menu update notifications
- Custom Apps: Use Apify API for seamless integration
Integration Benefits:
- Real-time menu updates to your systems
- Automated competitive intelligence gathering
- Scheduled monitoring without manual intervention
- Custom workflow automation for your business needs
๐ฐ Pricing & Tiers
๐ FREE Tier (Testing & Learning)
- $0.100 per processed menu
- 5 requests per day - Perfect for testing
- 20 requests per month - Enough for evaluation
- 2 concurrent runs - Limited capacity
- 15 second cooldown - Prevents abuse
- Full feature access - Same quality as paid
๐ PAID Tier (Production Ready)
- $0.019 per processed menu - 81% savings!
- Unlimited requests - Scale without limits
- No daily/monthly caps - Process as needed
- Unlimited concurrent runs - Maximum throughput
- No cooldowns - Instant processing
- Same analytics - Same great features, better value
๐ Upgrade Benefits
- Save 81% per menu - From $0.100 to $0.019
- Process 5x faster - No cooldown delays
- Scale infinitely - Unlimited requests
- Competitive advantage - Process more data than competitors
๐ Performance & Rate Limits
Processing Speed
- Extraction time: 2-5 seconds per restaurant
- Data enhancement: Automatic analytics and quality metrics
- Processing method: Direct API integration
Rate Limiting by Tier
| Feature | FREE Tier | PAID Tier |
|---|---|---|
| Daily requests | 5/day | Unlimited |
| Monthly requests | 20/month | Unlimited |
| Concurrent runs | 2 max | Unlimited |
| Cooldown period | 15 seconds | None |
| Processing speed | Standard | Instant |
Capacity Management
- Automatic capacity checking - Prevents overload
- Graceful degradation - Clear error messages
- Smart queuing - FREE tier gets scheduled during off-peak times
- Priority processing - PAID tier processes immediately
โ Frequently Asked Questions
Q: How many restaurants can I extract? A: Single mode: One restaurant per run. Bulk mode: FREE tier = 5 restaurants per run, PAID tier = unlimited restaurants per run.
Q: What's the difference between single and bulk mode? A: Single mode processes one restaurant URL. Bulk mode processes multiple restaurants in one run with automatic deduplication, progress tracking, and aggregate analytics. Use bulk mode for efficiency when processing multiple restaurants.
Q: Can I upload a list of restaurant URLs? A: Yes! Bulk mode supports:
- Direct array of URLs
- Comma-separated URLs in a single field
- Text file uploads via URL (.txt or .csv files)
- Automatic deduplication across all sources
Q: What's the actual pricing per menu?
A: FREE tier: $0.100 per processed menu. PAID tier: $0.019 per processed menu - 81% savings! Each successful menu extraction charges one menu-scraped event.
Q: Why is there a 15-second cooldown on FREE tier? A: This prevents abuse and ensures fair access for all users. PAID tier has no cooldowns for instant processing.
Q: Is it legal to scrape Uber Eats menus? A: Public restaurant menu data extraction is generally legal for research and analysis. Respect rate limits and terms of service.
Q: Can I export to Excel/CSV? A: Yes! Export results as CSV and open directly in Excel for easy analysis of menu data and analytics.
Q: How fast is the extraction? A: Most restaurant menus extract in 30-60 seconds. PAID tier processes instantly without cooldown delays.
Q: Does it work with any restaurant on Uber Eats? A: Yes, works with all publicly available Uber Eats restaurant pages. No authentication required.
Q: What data points are included in the analytics? A: Total sections/items, price coverage, image coverage, price ranges, and completeness metrics automatically calculated.
Q: Can I track menu changes over time? A: Yes! Schedule regular runs to monitor price changes, new items, and menu updates. Analytics make trend analysis easy.
Q: What happens if some URLs fail in bulk mode? A: The actor continues processing remaining URLs and creates a retry helper dataset with failed URLs for easy reprocessing. Success/failure counts are reported in the final summary.
Q: Are duplicate URLs automatically handled? A: Yes! Bulk mode automatically deduplicates URLs by normalizing language codes and query parameters. You'll see how many duplicates were removed in the console log.
๐ Troubleshooting
No menu data returned
- Check URL format:
https://www.ubereats.com/store/[restaurant-name]/[shop-id] - Verify restaurant is active and publicly accessible on Uber Eats
Daily/monthly limit exceeded
- Upgrade to PAID tier for unlimited access
- Wait until next day/month for FREE tier reset
- Monitor usage with analytics in your dataset
Cooldown active (FREE tier)
- Wait 15 seconds between requests automatically
- Upgrade to PAID tier for instant processing
- Schedule runs during off-peak hours
Capacity limit reached
- FREE tier: Maximum 2 concurrent runs reached
- Wait for existing runs to complete
- Upgrade to PAID tier for unlimited concurrency
Timeout issues
- Large menus may need multiple processing attempts
- Try processing during off-peak hours for faster results
Invalid URL format
- Must be:
https://www.ubereats.com/store/[restaurant-name] - No query parameters or additional paths allowed
- Restaurant name can contain letters, numbers, and hyphens only
๐ด Why Choose This Scraper?
๐ฏ The Only Uber Eats Scraper With Built-In Business Intelligence
Industry First: While other scrapers give you raw data, we deliver actionable intelligence. Get complete menus PLUS automatic analytics that would take hours to calculate manually.
Time Savings: What takes competitors 2-3 hours of spreadsheet work, you get in seconds:
- โ Price coverage analysis (automatically calculated)
- โ Image completeness metrics (instantly available)
- โ Data quality scoring (built-in validation)
- โ Competitive intelligence (ready-to-present)
๐ Analytics That Drive Business Decisions
Competitive Analysis Made Easy: Know immediately if competitor menus are fully priced, how visually complete they are, and where the gaps are - all without manual calculations.
Market Intelligence: Track data quality trends, compare completeness across restaurants, and make data-driven decisions with confidence.
Professional Reporting: All analytics are presentation-ready - no manual Excel work required for client reports or business meetings.
โก Technical Excellence
Simplicity First: Unlike complex scraping tools that require coding skills and training, our scraper works instantly - just paste and run.
Professional-Grade Processing: Enhanced data validation, quality checks, and structured output.
Tier-Based Pricing: Try for free with full features, then upgrade to save 81% per menu and unlock unlimited processing.
Production Ready: Built for scale with rate limiting, capacity management, error handling, and graceful degradation.
๐ The 1% That Makes 100% Difference
Stop wasting time on manual data processing and start making business decisions faster. Our analytics intelligence is the competitive edge that turns raw menu data into strategic insights.
Built by SIรN Agency | More Tools