Grubhub
Overview
Grubhub is a food delivery platform (archetype: Food Delivery). Search restaurants, browse menus with prices, and check delivery time/fee estimates.
Responses are adapter-trimmed (camelCase, prices in USD dollars). Fields are clean and ready to use.
Workflows
Find restaurants and browse menu
searchRestaurants(latitude, longitude, searchTerm) → restaurants[] with restaurantId, name, ratings, fees
getMenu(restaurantId) → categories[].items[] with names and prices
Check delivery details
searchRestaurants(latitude, longitude) → restaurants[].restaurantId
getDeliveryEstimate(restaurantId) → open/hours, delivery fee, pickup estimate, minimum order
Operations
| Operation |
Intent |
Key Input |
Top-level Shape |
Notes |
| searchRestaurants |
find restaurants near a location |
latitude, longitude, searchTerm? |
{ totalResults, restaurants[] } |
paginated via pageNum/pageSize |
| getMenu |
browse restaurant menu |
restaurantId ← searchRestaurants |
{ restaurantName, categories[] } |
items in categories[].items[] |
| getDeliveryEstimate |
check delivery time and fees |
restaurantId ← searchRestaurants |
{ open, openDelivery, deliveryFee, orderMinimum, … } |
money in USD; ranges in minutes |
Field Reference
searchRestaurants — restaurants[]
restaurantId — unique ID (use with getMenu and getDeliveryEstimate)
name — restaurant name
rating — average rating (0-5 scale, null if too few)
ratingCount — number of ratings
priceRating — price tier (1-4, dollar signs)
cuisines — array of cuisine strings
logo — logo URL (nullable)
deliveryFee — delivery fee in USD
deliveryEstimateMin / deliveryEstimateMax — delivery time range in minutes (nullable)
address — street address (nullable)
distance — miles from delivery location (nullable)
totalResults — total matching restaurants (top level)
getMenu — categories[]
restaurantName — restaurant name (top level)
categories[].name — category name (e.g. "Appetizers", "Pizza")
categories[].items[].itemId — menu item ID
categories[].items[].name — item name
categories[].items[].description — item description (nullable)
categories[].items[].price — price in USD
categories[].items[].popular — popular flag
getDeliveryEstimate
restaurantId — restaurant ID
open / openDelivery / openPickup — availability flags
deliveryEstimateMin / deliveryEstimateMax — delivery time range in minutes
pickupEstimateMin / pickupEstimateMax — pickup time range in minutes (nullable)
deliveryFee — delivery fee in USD
orderMinimum — minimum order in USD
salesTax — sales tax rate (e.g. 8.875 for 8.875%)
Quick Start
# Search for pizza near Midtown Manhattan
openweb grubhub exec searchRestaurants '{"latitude": 40.7484, "longitude": -73.9857, "searchTerm": "pizza"}'
# Get a restaurant's menu
openweb grubhub exec getMenu '{"restaurantId": "64436"}'
# Check delivery estimate
openweb grubhub exec getDeliveryEstimate '{"restaurantId": "64436"}'
1---2name: grubhub3description: Grubhub4---5# Grubhub67## Overview8Grubhub is a food delivery platform (archetype: Food Delivery). Search restaurants, browse menus with prices, and check delivery time/fee estimates.910Responses are **adapter-trimmed** (camelCase, prices in USD dollars). Fields are clean and ready to use.1112## Workflows1314### Find restaurants and browse menu151. `searchRestaurants(latitude, longitude, searchTerm)` → `restaurants[]` with `restaurantId`, `name`, ratings, fees162. `getMenu(restaurantId)` → `categories[].items[]` with names and prices1718### Check delivery details191. `searchRestaurants(latitude, longitude)` → `restaurants[].restaurantId`202. `getDeliveryEstimate(restaurantId)` → open/hours, delivery fee, pickup estimate, minimum order2122## Operations2324| Operation | Intent | Key Input | Top-level Shape | Notes |25|-----------|--------|-----------|-----------------|-------|26| searchRestaurants | find restaurants near a location | latitude, longitude, searchTerm? | `{ totalResults, restaurants[] }` | paginated via `pageNum`/`pageSize` |27| getMenu | browse restaurant menu | restaurantId ← searchRestaurants | `{ restaurantName, categories[] }` | items in `categories[].items[]` |28| getDeliveryEstimate | check delivery time and fees | restaurantId ← searchRestaurants | `{ open, openDelivery, deliveryFee, orderMinimum, … }` | money in USD; ranges in minutes |2930## Field Reference3132### searchRestaurants — `restaurants[]`33- `restaurantId` — unique ID (use with getMenu and getDeliveryEstimate)34- `name` — restaurant name35- `rating` — average rating (0-5 scale, null if too few)36- `ratingCount` — number of ratings37- `priceRating` — price tier (1-4, dollar signs)38- `cuisines` — array of cuisine strings39- `logo` — logo URL (nullable)40- `deliveryFee` — delivery fee in USD41- `deliveryEstimateMin` / `deliveryEstimateMax` — delivery time range in minutes (nullable)42- `address` — street address (nullable)43- `distance` — miles from delivery location (nullable)44- `totalResults` — total matching restaurants (top level)4546### getMenu — `categories[]`47- `restaurantName` — restaurant name (top level)48- `categories[].name` — category name (e.g. "Appetizers", "Pizza")49- `categories[].items[].itemId` — menu item ID50- `categories[].items[].name` — item name51- `categories[].items[].description` — item description (nullable)52- `categories[].items[].price` — price in USD53- `categories[].items[].popular` — popular flag5455### getDeliveryEstimate56- `restaurantId` — restaurant ID57- `open` / `openDelivery` / `openPickup` — availability flags58- `deliveryEstimateMin` / `deliveryEstimateMax` — delivery time range in minutes59- `pickupEstimateMin` / `pickupEstimateMax` — pickup time range in minutes (nullable)60- `deliveryFee` — delivery fee in USD61- `orderMinimum` — minimum order in USD62- `salesTax` — sales tax rate (e.g. 8.875 for 8.875%)6364## Quick Start6566```bash67# Search for pizza near Midtown Manhattan68openweb grubhub exec searchRestaurants '{"latitude": 40.7484, "longitude": -73.9857, "searchTerm": "pizza"}'6970# Get a restaurant's menu71openweb grubhub exec getMenu '{"restaurantId": "64436"}'7273# Check delivery estimate74openweb grubhub exec getDeliveryEstimate '{"restaurantId": "64436"}'75```