Grubhub + DoorDash + Uber Eats AIO Scraper (Menus/Diffs/Alerts) avatar

Grubhub + DoorDash + Uber Eats AIO Scraper (Menus/Diffs/Alerts)

Pricing

$10.00 / 1,000 menu items

Go to Apify Store
Grubhub + DoorDash + Uber Eats AIO Scraper (Menus/Diffs/Alerts)

Grubhub + DoorDash + Uber Eats AIO Scraper (Menus/Diffs/Alerts)

Monitor restaurant menus on DoorDash, Uber Eats, and Grubhub. Extract complete menu data with prices, detect changes, and get alerts when items are added/removed or prices change. Simple pricing: $0.01 per menu item. No per-URL fees, no complicated tiers.

Pricing

$10.00 / 1,000 menu items

Rating

0.0

(0)

Developer

ViberLabs

ViberLabs

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Food Delivery Menu Monitor

Monitor restaurant menus on DoorDash, Uber Eats, and Grubhub for changes. Get notified when prices change, items are added/removed, or menus are updated.

What This Actor Does

This actor scrapes restaurant menu data from food delivery platforms and:

  1. Extracts complete menus with item names, prices, and descriptions
  2. Detects changes by comparing with previous runs (diffs)
  3. Sends alerts via webhooks when changes occur
  4. Tracks history so you can see what changed and when

Supported Platforms

  • DoorDash - Full menu extraction with prices
  • Uber Eats - Complete menu data
  • Grubhub - Full menu support

Quick Start

Basic Usage

Just provide restaurant URLs and run:

{
"urls": [
"https://www.doordash.com/store/outback-steakhouse-beverly-hills-1037/",
"https://www.ubereats.com/store/mcdonalds-9502-hwy-5/zm69XuRRTK-mhMG6zndq4g"
]
}

The actor will:

  1. Extract all menu items from each restaurant
  2. Compare with previous runs (if any)
  3. Output snapshot records with full menu data
  4. Output diff records showing what changed

Some platforms require a delivery location:

{
"urls": [
"https://www.doordash.com/store/outback-steakhouse-beverly-hills-1037/"
],
"locationZipCode": "90210",
"locationLatitude": 34.0901,
"locationLongitude": -118.4065
}

With Webhook Alerts

Get notified when menus change:

{
"urls": ["https://www.doordash.com/store/..."],
"webhookUrl": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
"webhookSeverityThreshold": "medium"
}

Input Parameters

Required

  • urls - Array of restaurant URLs to monitor

Optional

  • locationZipCode - ZIP code for delivery location (e.g., "90210")
  • locationLatitude / locationLongitude - Coordinates for location-gated menus
  • webhookUrl - URL to POST alerts when changes detected
  • webhookSeverityThreshold - "low", "medium", or "high" (default: "medium")
  • diffEnabled - Enable change detection (default: true)
  • maxConcurrency - URLs to process in parallel (default: 2)
  • maxAttempts - Retry attempts per URL (default: 3)

Advanced

  • useApifyProxy - Use residential proxies (recommended)
  • doordashMaxWallMs - Max time per DoorDash URL in ms (default: 90000)
  • debugSaveBlockedPages - Save debug info for troubleshooting

Output Format

Snapshot Record

{
"type": "snapshot",
"url": "https://www.doordash.com/store/...",
"platform": "doordash",
"restaurantName": "Outback Steakhouse",
"scrapedAt": "2026-03-17T12:00:00Z",
"menu": {
"hash": "abc123...",
"items": [
{
"name": "Blackened Salmon Protein Bowl",
"price": "14.5",
"description": "Avocado, pickled radish, slaw...",
"image_url": "https://..."
}
]
},
"analytics": {
"totalItems": 110
}
}

Diff Record (when changes detected)

{
"type": "diff",
"url": "https://www.doordash.com/store/...",
"platform": "doordash",
"severity": "medium",
"diff": {
"counts": {
"added": 2,
"removed": 1,
"priceChanged": 3
},
"added": [...],
"removed": [...],
"priceChanged": [...]
}
}

Pricing

Simple, fair pricing: $0.01 per menu item

No per-URL fees, no complicated tiers. Just pay for what you use.

How It Works

  • $0.01 per menu item extracted
  • Only charged when items are successfully scraped
  • No charge for failed attempts

Examples

Small restaurant (25 items):

  • Cost: 25 × $0.01 = $0.25

Medium restaurant (50 items):

  • Cost: 50 × $0.01 = $0.50

Large restaurant (100 items):

  • Cost: 100 × $0.01 = $1.00

10 restaurants (average 50 items each):

  • Cost: 500 × $0.01 = $5.00

Cost Control

  • Use maxAttempts: 1 for cheaper runs (less reliable)
  • Set doordashMaxWallMs: 60000 to limit time per URL
  • Disable proxy for lower costs (may be less reliable)

Scheduling

Set up automatic monitoring in Apify Console:

  1. Go to your Actor → Schedules
  2. Create new schedule
  3. Choose frequency:
    • Hourly - For fast-moving menus
    • Daily - Most common for restaurant monitoring
    • Weekly - For stable menus

Webhook Alerts

The actor can send POST requests when changes are detected:

Slack Example

{
"webhookUrl": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
"webhookSeverityThreshold": "medium"
}

Custom Endpoint

Your endpoint will receive:

{
"actorRunId": "abc123",
"timestamp": "2026-03-17T12:00:00Z",
"diffs": [...],
"summary": {
"totalUrls": 10,
"changedUrls": 2,
"errors": 0
}
}

Troubleshooting

Getting 0 items?

  1. Check location - Add locationZipCode and coordinates
  2. Check URL - Make sure the restaurant is available for delivery
  3. Enable debug - Set debugSaveBlockedPages: true and check the debug store

DoorDash blocked?

DoorDash uses Cloudflare protection. The actor:

  • Automatically retries with fresh sessions
  • Waits for challenges to resolve (up to doordashMaxWallMs)
  • Can use unlocker fallback (advanced users)

Rate limited?

  • Reduce maxConcurrency to 1
  • Enable useApifyProxy with RESIDENTIAL group
  • Add delays between runs

Limitations

  • DoorDash: May occasionally fail due to Cloudflare (retry usually works)
  • Uber Eats: Requires location to be set for most restaurants
  • Grubhub: Works reliably with minimal configuration

Support

For issues or questions:

  1. Check the GitHub repository
  2. Enable debugSaveBlockedPages and inspect debug output
  3. Contact support with your Run ID

Example Use Cases

  • Competitive Intelligence - Monitor competitor pricing
  • Price Alerts - Get notified when favorite items go on sale
  • Menu Tracking - See when restaurants add/remove items
  • Data Analysis - Build datasets of restaurant pricing trends