Delivery marketplace research
Use Grubhub endpoints to turn delivery marketplace research into repeatable API requests with documented inputs and JSON responses.
Turn Grubhub's public marketplace data into structured JSON — restaurant search and detail, full menus with delivery and pickup pricing that genuinely differ, ordering availability across up to 20 restaurants at once, promotional offers, customer reviews with rating histograms, and the full future orderable time-slot calendar. Credential-free.
Search Grubhub restaurants, get full menus with delivery and pickup pricing, and pull reviews, offers, and orderable time slots as structured JSON.
Endpoint families
5
Documented params
31
Examples
7
Live catalog snapshot
Active endpoints
7
Methods
GET
Required params
22
Schema refs
7
{
"platform": "Grubhub",
"endpoint": "grubhub-search",
"method": "GET",
"path": "/grubhub/search",
"auth": "apiKey"
}Use cases
Search Grubhub restaurants, get full menus with delivery and pickup pricing, and pull reviews, offers, and orderable time slots as structured JSON.
Use Grubhub endpoints to turn delivery marketplace research into repeatable API requests with documented inputs and JSON responses.
Use Grubhub endpoints to turn menu and pricing monitoring into repeatable API requests with documented inputs and JSON responses.
Use Grubhub endpoints to turn review and reputation analysis into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Grubhub endpoint catalog — 7 endpoints, 31 documented request parameters, and 7 published response schemas — the same catalog Docs and Playground run against.
7 documented Grubhub endpoints, grouped into 5 request families — Restaurant, Availability and Offers, plus 2 more.
31 request parameters are documented across those Grubhub endpoints, 22 of them required — the full input contract is public before you write any integration code.
7 of the 7 Grubhub endpoints ship a recorded example response, and 7 carry a documented response schema — you can code against the real JSON before the first request.
Grubhub endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
7 hosted MCP tools back the Grubhub endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/grubhub/restaurant
/grubhub/availability
/grubhub/offers
/grubhub/search
/grubhub/timepicker
Endpoint catalog
/grubhub/searchReturns restaurants delivering to (or offering pickup at) a latitude/longitude, optionally filtered by keyword over restaurant names, cuisines and dishes. Each restaurant carries its id (the value every other Grubhub endpoint takes), name, full address with coordinates, phone, cuisines, star rating and rating count, Grubhub's 1-4 price tier, distance, open state, delivery and pickup fees and minimums, service fee, delivery and pickup time estimates, coupon availability and total menu item count. A location Grubhub does not serve returns an empty list rather than an error.
MCP tool grubhub_search
/grubhub/restaurantReturns one Grubhub restaurant: name, address with coordinates, timezone, phone, cuisines, star rating, price tier, whether online ordering is available, whether it offers delivery and pickup, delivery fee, coupon availability, restaurant tags and the full published week of service hours. Note this endpoint publishes fewer economics than GET /grubhub/search -- delivery minimum and the delivery/pickup time estimates come back empty here, so use the search endpoint when you need those.
MCP tool grubhub_restaurant
/grubhub/restaurant/menuReturns one restaurant's full menu grouped into categories. Every item carries a base price, a delivery price and a pickup price, which genuinely differ, plus a min and max price bounding items whose price varies with the options chosen. Items also carry a description, a popularity flag, availability, tags and an image. Amounts are given both in minor units (cents) and as a decimal value.
MCP tool grubhub_restaurant_menu
/grubhub/availabilityReturns current ordering state for up to 20 restaurants in one call, relative to a diner location. Each entry reports whether the restaurant is open overall and per channel (these can differ), whether delivery and pickup are offered at all as distinct from open right now, whether it delivers to the supplied coordinate, blackout and overloaded flags, distance, delivery and pickup time estimates, delivery fee, order minimum, cuisines, and the next time an order can be sent per channel -- useful when a restaurant is currently closed. The response echoes the requested ids so a caller can tell which ones Grubhub returned nothing for.
MCP tool grubhub_availability
/grubhub/offersReturns the promotional offers a Grubhub restaurant is currently running -- free items, BOGO deals, spend-and-save discounts -- the same data that drives the "2 offers available" badge on the site's own restaurant cards. An empty list is the common, legitimate case: most restaurants have no active promotion at any given moment. `amount.value` is 0 for a free-item offer since the item itself is the value, not a monetary discount; `amount.amount_maximum` then caps the item's dollar value, and `amount.order_minimum` is the spend threshold required to unlock it.
MCP tool grubhub_offers
/grubhub/restaurant/reviewsReturns one restaurant's customer reviews plus its 1-5 star rating histogram. Each review carries the star rating, the written body, the reviewer's display name and how many reviews they have written, the review date, Grubhub's own sentiment classification, the diner type, and the specific menu items the review is attached to -- Grubhub ties each review to what the diner actually ordered. sort accepts `timeCreated_desc` (most recent, the default) and `ratingValue_desc` (highest rated). Note the written-review corpus and the headline rating shown in search are separate systems upstream, so a restaurant can report a large rating count in search while returning few or no written reviews here.
MCP tool grubhub_restaurant_reviews
/grubhub/timepickerReturns every future delivery or pickup time slot Grubhub will accept an order for, up to 7 days ahead. This is what powers the site's own "schedule my order" picker: `/grubhub/availability` tells you whether a restaurant is orderable right now plus one "next" time, while this returns the full future slot calendar a caller would need to build an actual date-and-time picker. Slots are grouped by date and given as full timestamps carrying the restaurant's real UTC offset for that instant, so a caller never has to resolve daylight-saving transitions themselves. Requesting `location_mode=DELIVERY` returns delivery slots only; `PICKUP` returns pickup slots only -- the upstream only computes one side per call.
MCP tool grubhub_timepicker
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
How to scrape Grubhub
Crawlora's Grubhub endpoints return normalized public Grubhub marketplace data as JSON with one API key — no Grubhub account required.
Pass a latitude and longitude to /grubhub/search, optionally filtered by keyword over names, cuisines, and dishes, for restaurants with rating, price tier, delivery/pickup fees and minimums, and time estimates. A location Grubhub doesn't serve returns an empty list rather than an error.
Pass a restaurant_id to /grubhub/restaurant for profile data, or /grubhub/restaurant/menu for the full menu with base, delivery, and pickup prices that genuinely differ — note delivery minimum and time estimates come back empty on /grubhub/restaurant itself, so use /grubhub/search for those.
Call /grubhub/availability with up to 20 restaurant_ids plus a diner coordinate to check open state, delivery-zone coverage, and the next orderable time per channel for every restaurant in one call.
Call /grubhub/offers for active promotions (free items, BOGO, spend-and-save), /grubhub/restaurant/reviews for written reviews and a rating histogram, or /grubhub/timepicker for the full future delivery/pickup slot calendar up to 7 days ahead.
FAQ
Call /grubhub/search with a coordinate for nearby restaurants, /grubhub/restaurant or /grubhub/restaurant/menu for detail and pricing, /grubhub/availability to batch-check up to 20 restaurants, or /grubhub/offers, /grubhub/restaurant/reviews, and /grubhub/timepicker for promotions, reviews, and time slots — all return structured JSON with one API key.
Yes — /grubhub/restaurant/menu returns a base price plus separate delivery and pickup prices per item, and they genuinely differ.
Yes — /grubhub/availability accepts up to 20 restaurant_ids at once and reports open state, delivery-zone coverage, and the next orderable time per channel for each.
The written-review corpus and the headline rating shown in search are separate systems upstream — a restaurant can have a large rating count in search while returning few or no written reviews on the reviews endpoint.
/grubhub/timepicker returns every future delivery or pickup time slot Grubhub will accept an order for, up to 7 days ahead, with location_mode scoping the results to DELIVERY or PICKUP slots only.