GET/grubhub/availabilityapiKey1 credit/request
Returns 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.
Required: restaurant_ids, latitude, longitude.
Sampled 14 Oct 2026: 2 items. Filled in every item: restaurant_id, open, open_delivery, open_pickup, available_for_delivery, available_for_pickup, delivers_to_location, blacked_out and 10 more. In the sample: next_delivery_time: 2026-10-13; distance_miles: 0.23 to 0.39, median 0.23; logo_url: media-cdn.grubhub.com; open: true in 2 of 2; cuisines: median 2 entries; open_delivery: true in 2 of 2; open_pickup: true in 2 of 2; available_for_delivery: true in 2 of 2.
Open in Playground
GET/grubhub/offersapiKey1 credit/request
Returns 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.
Required: restaurant_id, latitude, longitude.
Sampled 14 Oct 2026: 2 fields returned with a value, 1 empty (offers). In the sample: count: 0.
Open in Playground
GET/grubhub/restaurantapiKey1 credit/request
Returns 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.
Required: restaurant_id.
Sampled 14 Oct 2026: 7 items. Filled in every item: day_of_week, hours, start_time, end_time. In the sample: day_of_week: “Monday” and 6 other values.
Open in Playground
GET/grubhub/restaurant/menuapiKey1 credit/request
Returns 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.
Required: restaurant_id. Optional: include_unavailable.
Sampled 14 Oct 2026: 3 items. Filled in every item: category_id, name, available, items. In the sample: name: “Burgers” and 2 other values; available: true in 3 of 3; items: median 8 entries.
Open in Playground
GET/grubhub/restaurant/reviewsapiKey1 credit/request
Returns 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.
Required: restaurant_id. Optional: page_size, page, sort (2 allowed values: timeCreated_desc, ratingValue_desc).
Sampled 14 Oct 2026: 20 items. Filled in every item: review_id, rating, text, author_name, created_at, sentiment, diner_type, reviewer_review_count and 1 more. In the sample: created_at: 2025-07-22 to 2026-10-06; rating: 1 to 5, median 5; items: median 2 entries; reviewer_review_count: 1 to 45, median 1.
Open in Playground
GET/grubhub/searchapiKey2 credits/request
Returns 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.
Required: latitude, longitude. Optional: search, order_method (2 allowed values: delivery, pickup), page_size, page.
Sampled 14 Oct 2026: 20 items. Filled in every item: restaurant_id, name, address, city, state, postal_code, latitude, longitude and 15 more. Not in every item: chain_name (10). In the sample: phone_number: 2,013,792,295 to 9,179,830,200, median 3,322,199,424; name: “sweetgreen” and 19 other values; logo_url: media-cdn.grubhub.com and 1 other host; open: true in 20 of 20; cuisines: median 4 entries; price_rating: 1 to 3, median 2; distance_miles: 0.1 to 0.31, median 0.21; delivery_time_minutes: 10 to 45, median 15.
Open in Playground
GET/grubhub/timepickerapiKey1 credit/request
Returns 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.
Required: restaurant_id, latitude, longitude, location_mode (2 allowed values: DELIVERY, PICKUP). Optional: days.
Sampled 14 Oct 2026: 8 items. Filled in every item: date, times. In the sample: date: 2026-10-13 to 2026-10-20; times: median 53 entries.
Open in Playground