VOOZH about

URL: https://apify.com/quantitative_litre/food-delivery-listing-monitor

โ‡ฑ Food Delivery Menu Scraper & Price Monitor ยท Apify


๐Ÿ‘ 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)

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

4

Total users

0

Monthly active users

3 months 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

With Location (Recommended)

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

You might also like

Uber Eats Menu Scraper

piotrv1001/uber-eats-menu-scraper

The Uber Eats Listings Scraper extracts restaurant and store data from Uber Eats โ€” full menus with prices and item IDs, ratings, reviews, addresses, geo coordinates, phone numbers, opening hours, and delivery methods. Supports sitemap, category, and direct-URL discovery across 25+ Uber Eats markets.

Grubhub Restaurant Scraper ๐Ÿฝ๏ธ

easyapi/grubhub-restaurant-scraper

Scrape restaurant data from Grubhub including menus, prices, ratings, and delivery information. Extract detailed business information and menu items for market research, price monitoring, or competitor analysis.

Grubhub Restaurant Scraper

crawlerbros/grubhub-scraper

Scrape Grubhub restaurant listings and menus. Search by address, fetch a single restaurant with full menu, or scrape from a Grubhub restaurant URL. Extracts ratings, delivery info, cuisine types, and menu items.

Uber Eats Menu Scraper

sian.agency/uber-eats-menu-scraper

๐Ÿด ONLY Uber Eats scraper with analytics! Extract menus + automatic price/image coverage analysis. Competitive intelligence in seconds. Start free! ๐Ÿ“Š

๐Ÿ‘ User avatar

SIรN Oรœ

179

5.0

Uber Eats Scraper โ€” Menus, Item Prices & Ratings | API

bovi/ubereats-menu

Scrape any **Uber Eats** restaurant menu into FLAT rows โ€” one row per item with **price at the top level**, plus store rating, cuisine, address & phone on every row. No nested digging, no browser. Reliable residential-proxy access. Priced per menu โ€” well below per-menu incumbents.

๐Ÿ‘ User avatar

Vitalii Bondarev

2

Uber Eats Menu Scraper ยท Items, Prices & Categories

corent1robert/uber-eats-menu-scraper

Export every Uber Eats menu item with section, price, and description โ€” one row per dish for pricing benchmarks. Search by city, territory, or paste store URLs. No login or API key

๐Ÿ‘ User avatar

Corentin Robert

2

Uber Eats Menu Compare โ€” Competitive Intelligence

jsonjoestar/ubereats-menu-compare

Compare menus, prices, and coverage across multiple Uber Eats restaurants. Fuzzy item matching, price ranking, unique items detection, winner analysis. The only competitive intelligence tool for Uber Eats.

Uber Eats Restaurant Scraper

yasmany.casanova/uber-eats-restaurant-scraper

Scrape Uber Eats restaurant data at scale. Get menus with prices, ratings, delivery fees, and store details. Search hundreds of restaurants by location with full pagination. Perfect for market research, price monitoring, and competitor analysis.

๐Ÿ‘ User avatar

Yasmany Grijalba Casanova

12

Uber Eats Scraper

natanielsantos/uber-eats-scraper

This no-code tool allows you to scrape data from Uber Eats restaurants, like name, categories, location, menu items, and more.

๐Ÿ‘ User avatar

Nataniel Santos

218

Uber Eats API

one-api/uber-eats-api

Real-time Uber Eats API that will scrape restaurant details, menus, and pictures for you.