Restaurant Menu Scraper
Pricing
Pay per usage
Restaurant Menu Scraper
Extract restaurant menus, prices & reviews from delivery platforms. Get menu items, pricing, ratings & restaurant info. Perfect for market research & food delivery apps.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Vhub Systems
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrapes restaurant data and detailed menus from MenuPages.com (powered by Grubhub).
Features
- Scrapes restaurant listings by city and state
- Extracts detailed menu items with prices and descriptions
- Optional cuisine type filtering
- Outputs structured JSON data
Data Collected
For each restaurant:
| Field | Description |
|---|---|
name | Restaurant name |
fullAddress | Complete address string |
address | Structured address (street, city, state, zip) |
phone | Contact phone number |
cuisineTypes | Array of cuisine categories |
priceRange | Price indicator ($, $$, $$$) |
coordinates | Latitude and longitude |
image | Restaurant image URL |
menu.sections | Menu sections with items |
menu.totalItems | Total menu items count |
For each menu item:
name- Item namedescription- Item descriptionprice- Price (numeric)currency- Currency code (USD)
Input Configuration
{"city": "new-york","state": "ny","cuisineType": "italian","maxResults": 50,"includeMenuItems": true}
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
city | string | "new-york" | City slug (lowercase, hyphenated) |
state | string | "ny" | Two-letter state code |
cuisineType | string | null | Filter by cuisine (optional) |
maxResults | integer | 50 | Maximum restaurants to scrape |
includeMenuItems | boolean | true | Include detailed menu items |
Supported Cities
Common examples:
ny-new-york(New York)ny-brooklyn(Brooklyn)il-chicago(Chicago)ca-los-angeles(Los Angeles)ca-san-francisco(San Francisco)pa-philadelphia(Philadelphia)fl-miami(Miami)tx-houston(Houston)wa-seattle(Seattle)nv-las-vegas(Las Vegas)ma-boston(Boston)
Example Output
{"name": "Joe's Pizza","url": "https://menupages.com/joes-pizza/123-main-st-new-york","fullAddress": "123 Main St, New York, NY 10001","address": {"street": "123 Main St","city": "New York","state": "NY","postalCode": "10001","country": "US"},"phone": "+12125551234","cuisineTypes": ["Pizza", "Italian"],"priceRange": "$$","coordinates": {"latitude": 40.7128,"longitude": -74.0060},"menu": {"sections": [{"name": "Pizzas","items": [{"name": "Margherita","description": "Fresh mozzarella, tomato sauce, basil","price": "18.00","currency": "USD"}]}],"totalSections": 5,"totalItems": 42},"scrapedAt": "2026-01-31T12:00:00.000Z"}
Usage
On Apify Platform
- Go to the actor page
- Configure input parameters
- Run the actor
- Download results from the Dataset tab
Locally
npm installnpm start
Set input via INPUT.json file or environment variables.
Rate Limits
The scraper uses reasonable concurrency (5 requests) to avoid overloading the source. For large-scale scraping, consider using Apify proxies.
Legal Notice
This scraper collects publicly available data. Please review MenuPages' Terms of Service and robots.txt before use. Use responsibly.