Grubhub Restaurant Scraper avatar

Grubhub Restaurant Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Grubhub Restaurant Scraper

Grubhub Restaurant 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.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(7)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

7

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

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

What data can you scrape?

  • Search restaurants — find restaurants near any US address or city with cuisine and rating filters
  • Single restaurant + menu — full restaurant details plus all menu items with prices
  • From URL — paste any Grubhub restaurant URL to scrape its data and menu

Input

FieldTypeDescription
modeselectsearch, byRestaurantId, or byUrl
addressstringAddress or city for search (e.g. "New York, NY")
cuisineselectCuisine filter (American, Italian, Chinese, etc.)
sortByselectSort: default, rating, delivery_time, minimum_order_amount
openNowbooleanOnly open restaurants (default: true)
minRatingfloatMinimum rating 0-5
maxDeliveryTimeintegerMax estimated delivery time in minutes
restaurantIdstringRestaurant ID for byRestaurantId mode
urlstringGrubhub URL for byUrl mode
maxItemsintegerMax records to emit (default: 50)

Output — Restaurant record

{
"restaurantId": "987654",
"name": "The Great Burger Joint",
"slug": "great-burger-joint",
"cuisines": ["American", "Burgers"],
"categories": ["Fast Food"],
"rating": 4.7,
"ratingCount": 1250,
"deliveryFee": 1.99,
"deliveryTime": 35,
"minimumOrder": 10.00,
"address": "456 Burger Ave, New York, NY",
"city": "New York",
"state": "NY",
"zip": "10002",
"phone": "+12125551234",
"isOpen": true,
"acceptsPickup": true,
"acceptsDelivery": true,
"promoText": "Free delivery on orders over $15",
"imageUrl": "https://res.cloudinary.com/grubhub/...",
"restaurantUrl": "https://www.grubhub.com/restaurant/great-burger-joint/987654",
"recordType": "restaurant",
"siteName": "Grubhub",
"scrapedAt": "2026-05-10T12:00:00+00:00"
}

Output — Menu item record (byRestaurantId mode)

{
"itemId": "item_001",
"name": "Classic Cheeseburger",
"description": "A juicy beef patty with melted cheese",
"price": 12.99,
"calories": 650,
"categoryName": "Burgers",
"imageUrl": "https://res.cloudinary.com/grubhub/...",
"recordType": "menuItem",
"siteName": "Grubhub",
"scrapedAt": "2026-05-10T12:00:00+00:00"
}

FAQs

Do I need a Grubhub account? No account is required, but anonymous search access is session- and geo-sensitive. Direct restaurant lookups via byRestaurantId or byUrl are the most reliable modes.

Which cities are supported? Grubhub operates in the US. Provide a US address or city for search mode, and use a US residential proxy for the best chance of success.

Does byRestaurantId return menu items? Yes. When using byRestaurantId or byUrl, both the restaurant record and all menu items are emitted.

What should I use for scheduled smoke tests? Use byRestaurantId with a known restaurant. byUrl usually works too, but direct restaurant IDs are the most stable choice for monitoring. Search mode depends on Grubhub's current anonymous geolocation/session gating and is best treated as best-effort.

How many restaurants can I scrape? Set maxItems up to 1000. Pagination is handled automatically.