Endpoint Playground
Test Crawlora's Grubhub Offers API with realistic prefilled parameters. Generate a cURL request, inspect the expected structured JSON response, and open the full docs or pricing page when you are ready to integrate this public web data extraction endpoint into your application.
curl "https://api.crawlora.net/api/v1/grubhub/offers?restaurant_id=<restaurant_id>&latitude=<latitude>&longitude=<longitude>" \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| restaurant_id | string | Yes | Grubhub restaurant id | |
| latitude | number | Yes | Diner location latitude | |
| longitude | number | Yes | Diner location longitude |
{
"code": 200,
"msg": "OK",
"data": {
"restaurant_id": "1338141",
"offers": [
{
"entitlement_id": "6b4aee10-a242-11f1-ae11-9fd715717d12",
"entitlement_type": "UNIFIED_REWARD",
"offer_type": "ENTERPRISE_REWARD",
"title": "Free Double Cheeseburger",
"description": "Get a free Double Cheeseburger (up to a $10 value) on your delivery order when you spend $20+. ...",
"pill_text": "$10 off",
"end_date": "2026-10-01T03:55:00.000Z",
"amount": {
"value": 0,
"type": "MENU_ITEM",
"currency": "USD",
"order_minimum": 20,
"amount_maximum": 10
},
"redeem_item_count": 1
}
],
"count": 1,
"source_url": "https://api-gtm.grubhub.com/offers/availability/1338141?orderType=STANDARD&locationMode=DELIVERY&whenFor=2026-09-01T08%3A00%3A00.000Z&isSubscriber=false&deliveryLatitude=40.75368499&deliveryLongitude=-73.99916077&nonAnchorCart=false&featureFlags=includeLockedOffers",
"fetched_at": "2026-09-01T08:00:00Z"
}
}Public Playground
Sample responses, schemas, request previews, and code snippets are visible before sign in. Create an account when you are ready to save an API key and run authenticated requests.
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.
{
"code": 200,
"msg": "OK",
"data": {
"restaurant_id": "1338141",
"offers": [
{
"entitlement_id": "6b4aee10-a242-11f1-ae11-9fd715717d12",
"entitlement_type": "UNIFIED_REWARD",
"offer_type": "ENTERPRISE_REWARD",
"title": "Free Double Cheeseburger",
"description": "Get a free Double Cheeseburger (up to a $10 value) on your delivery order when you spend $20+. ...",
"pill_text": "$10 off",
"end_date": "2026-10-01T03:55:00.000Z",
"amount": {
"value": 0,
"type": "MENU_ITEM",
"currency": "USD",
"order_minimum": 20,
"amount_maximum": 10
},
"redeem_item_count": 1
}
],
"count": 1,
"source_url": "https://api-gtm.grubhub.com/offers/availability/1338141?orderType=STANDARD&locationMode=DELIVERY&whenFor=2026-09-01T08%3A00%3A00.000Z&isSubscriber=false&deliveryLatitude=40.75368499&deliveryLongitude=-73.99916077&nonAnchorCart=false&featureFlags=includeLockedOffers",
"fetched_at": "2026-09-01T08:00:00Z"
}
}curl "https://api.crawlora.net/api/v1/grubhub/offers?restaurant_id=<restaurant_id>&latitude=<latitude>&longitude=<longitude>" \
-H "x-api-key: $CRAWLORA_API_KEY"