Use Crawlora's Grubhub API endpoints to extract supported public Grubhub data as structured JSON. This documentation covers 7 active endpoints including Check ordering availability for a batch of Grubhub restaurants, Get one Grubhub restaurant's currently active promotions, Get one Grubhub restaurant's detail, Get one Grubhub restaurant's menu with prices, and related APIs. Developers can use these endpoints for monitoring, enrichment, research dashboards, internal data pipelines, and agent-native workflows without maintaining platform-specific scraping code. Each endpoint page documents authentication, request parameters such as restaurant_ids, latitude, longitude, restaurant_id, cURL examples, response examples, response schemas, errors, credit cost, and Playground testing. Send requests to the Crawlora API with an x-api-key header, review usage and plan limits on pricing, and test safe sample requests in Playground before moving the workflow into production.
Choose an endpoint, send an authenticated request with the x-api-key header, and inspect the normalized JSON response. The examples below use the public Crawlora API base URL and the same endpoint catalog used by Playground.
Base URL
https://api.crawlora.net/api/v1
Auth header
x-api-key: $CRAWLORA_API_KEY
Primary endpoint
GET /grubhub/search
Credit cost
2 credits/request
curl -X GET "https://api.crawlora.net/api/v1/grubhub/search?order_method=delivery&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"
These endpoint cards are generated from the active Crawlora endpoint catalog, including method, path, auth mode, credit cost, parameter summary, docs, and Playground links.
GET/grubhub/availabilityapiKey1 credit/request
Check ordering availability for a batch of Grubhub restaurants
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.
Get one Grubhub restaurant's currently active promotions
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.
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.
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.
Get one Grubhub restaurant's reviews and rating histogram
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.
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.
Get one Grubhub restaurant's future orderable time-slot calendar
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.