Website Menu Enrichment Scraper
Pricing
from $1.50 / 1,000 results
Website Menu Enrichment Scraper
Restaurant Website Menu Scraper & Enrichment extracts structured menu data, menu sections, and prices from restaurant websites. It is designed for Apify workflows that start with Google Maps or local business discovery and then enrich each restaurant record with website-only menu coverage
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer

Gyanendra Thakur
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Restaurant Website Menu Scraper & Enrichment
Restaurant Website Menu Scraper & Enrichment extracts structured menu data, menu sections, and prices from restaurant websites. It is designed for Apify workflows that start with Google Maps or local business discovery and then enrich each restaurant record with website-only menu coverage.
Best use cases
- Enrich Google Maps restaurant leads with website menu data
- Capture menu sections, item names, descriptions, and prices
- Re-scrape restaurant websites on a freshness window instead of every run
- Run direct website menu scraping from raw
startUrls
What the Actor does
For each restaurant record or website URL, the Actor:
- prioritizes likely menu pages such as
/menu,/food-menu,/drinks,/lunch, and/dinner - stays on the same website domain
- extracts menu items from JSON-LD and DOM content
- normalizes prices into numeric values and currency codes when possible
- groups menu items into menu sections
- caches fresh results in
website-menu-enrichment-cache
Input
Use either discovery records or direct website URLs.
{"restaurants": [{"restaurantId": "abc123","name": "Example Bistro","website": "https://examplebistro.com","googleMapsUrl": "https://maps.google.com/...","location": "Austin, TX","mapsMenuItemCount": 2,"needsWebsiteEnrichment": true,"websiteTargets": ["https://examplebistro.com/menu", "https://examplebistro.com"]}],"sourceDiscoveryRunId": "run-123","maxPagesPerSite": 5,"maxConcurrency": 5,"freshnessWindowDays": 7,"forceRefresh": false}
You can also run the Actor with:
{"startUrls": [{ "url": "https://examplebistro.com/menu" }]}
Output
Each dataset item includes:
restaurantIdnamewebsitesourceDiscoveryRunIdmenuSourcePagespagesScannedmenuSectionsnormalizedItemsmenuItemCountcurrencyconfidenceScorescrapeStatusscrapedAt
Possible scrapeStatus values:
completedcompleted_partialcachedskipped_missing_websiteskipped_not_requestedno_menu_foundmenu_link_foundfailed
Notes
- Same-domain crawling only
- Best results come from discovery records with
websiteTargets - Proxy configuration is optional and exposed in the input schema
- Local
storage/output is for development only and is not uploaded byapify run