Discover/MenuPages API
live

MenuPages APImenupages.com

Access full restaurant menus from MenuPages: categories, items, prices, modifier groups, and restaurant metadata. Search by name or location.

This API takes change requests — .
Endpoint health
verified 10h ago
get_menus_bulk
get_menu
get_menu_item
search_restaurants
4/4 passing latest checkself-healing
Endpoints
4
Updated
15d ago

What is the MenuPages API?

The MenuPages API covers 4 endpoints that return structured menu data from the MenuPages (Grubhub-powered) restaurant directory. Use get_menu to retrieve a complete restaurant menu — including every category, item price in cents and dollars, and modifier groups with min/max selection rules — or search_restaurants to look up Grubhub restaurant IDs by name and location before fetching menu details.

This call costs1 credit / call— charged only on success
Try it
Grubhub restaurant ID.
api.parse.bot/scraper/55cbca2b-9d74-4752-9abd-feb18551c984/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/55cbca2b-9d74-4752-9abd-feb18551c984/get_menu?restaurant_id=337444' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 4 totalmissing one? ·

Retrieve the full menu for a restaurant including all categories, items, prices, and modifier/customization options. Returns restaurant metadata (name, address, phone, cuisines, coordinates) alongside the complete menu structure organized by category. Each category contains its items with pricing, availability, popularity flags, images, and nested modifier groups. A single request fetches the entire menu; no pagination needed.

Input
ParamTypeDescription
restaurant_idstringGrubhub restaurant ID.
Response
{
  "type": "object",
  "fields": {
    "categories": "array of category objects each containing id, name, item_count, and items array with full item details",
    "restaurant": "object containing id, name, address (street/city/state/zip), phone, cuisines array, logo_url, latitude, longitude",
    "total_items": "integer count of all menu items across categories",
    "total_categories": "integer count of menu categories"
  },
  "sample": {
    "data": {
      "categories": [
        {
          "id": "2019114",
          "name": "Ceviches",
          "items": [
            {
              "id": "23493433",
              "name": "Ceviche de Aji Amarillo or Traditional",
              "tags": [],
              "price": {
                "currency": "USD",
                "amount_cents": 1111,
                "amount_dollars": 11.11
              },
              "popular": false,
              "category": "Ceviches",
              "available": true,
              "image_url": "https://media-cdn.grubhub.com/image/upload/awcahxog0wciotht6auf.jpg",
              "modifiers": [
                {
                  "id": "8977941",
                  "name": "Choose a style",
                  "options": [
                    {
                      "id": "1344127647",
                      "name": "Ceviche Traditional",
                      "price": {
                        "currency": "USD",
                        "amount_cents": 0,
                        "amount_dollars": 0
                      },
                      "default": false,
                      "available": true
                    }
                  ],
                  "required": true,
                  "max_selections": 1,
                  "min_selections": 1
                }
              ],
              "description": "White fish, cancha, choclo, sweet potato in your choice of leche de tigre: traditional or aji amarillo."
            }
          ],
          "item_count": 5
        }
      ],
      "restaurant": {
        "id": "337444",
        "name": "1111 Peruvian Bistro",
        "phone": "7866159633",
        "address": {
          "zip": "33130-5401",
          "city": "Miami",
          "state": "FL",
          "street": "1111 SW 1st Ave Ste 106"
        },
        "cuisines": [
          "Asian",
          "Dinner",
          "Latin American"
        ],
        "latitude": "25.763151",
        "logo_url": "https://res.cloudinary.com/grubhub/image/upload/v1471360634/ss03fqzrj78bckxgz8uv.png",
        "longitude": "-80.194576"
      },
      "total_items": 47,
      "total_categories": 9
    },
    "status": "success"
  }
}

About the MenuPages API

What the API Returns

The get_menu endpoint accepts a Grubhub restaurant_id and returns the full menu organized into category objects, each carrying an id, name, item_count, and a nested items array. Every item includes its price (both amount_cents and amount_dollars), a popular boolean, available status, an optional image_url, free-text description, and a modifiers array of customization groups. Restaurant-level metadata (name, street address, city, state, zip, phone, cuisines array, logo URL, latitude, longitude) is returned in the same response alongside total_items and total_categories counts.

Item-Level Detail and Modifiers

get_menu_item lets you fetch a single item by its item_id (obtainable from get_menu's categories[*].items[*].id path) without pulling the entire menu. The response adds a tags array and a category string showing which menu section the item belongs to. Each entry in the modifiers array includes id, name, required, min_selections, and max_selections, plus an options array — giving you the full customization tree needed to programmatically construct an order form.

Searching and Bulk Fetching

search_restaurants matches against the MenuPages directory by partial restaurant name and/or location (city name or street address). It returns each match with a restaurant_id, name, address, and city, plus a total_results count — at least one of the two parameters is required. For pipeline use cases, get_menus_bulk accepts a JSON array of {name, location} objects, resolves each to a restaurant ID via search, and returns a results array keyed by input query. Each result carries a status field (success, not_found, or error) and the full menu payload for successful matches, letting you hydrate multiple restaurant menus in a single call.

Reliability & maintenanceVerified

The MenuPages API is a managed, monitored endpoint for menupages.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when menupages.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official menupages.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
10h ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a restaurant menu comparison tool by fetching get_menu for multiple venues and comparing item prices and category structures.
  • Populate an ordering interface with modifier groups from get_menu_item, respecting min_selections and max_selections constraints.
  • Geocode restaurant locations using latitude and longitude fields from get_menu to plot outlets on a map.
  • Identify popular menu items using the popular boolean flag for featured-dish displays or recommendation engines.
  • Resolve restaurant names to Grubhub IDs in batch using search_restaurants before ingesting menus programmatically.
  • Audit menu availability at scale with get_menus_bulk to check which items are available: false across a chain's locations.
  • Aggregate cuisine-type data from the cuisines array returned by get_menu to build neighborhood food-category indexes.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does MenuPages have an official developer API?+
MenuPages does not publish a public developer API. MenuPages is owned by Grubhub, which offers a separate Grubhub for Restaurants integration, but that product targets restaurant operators rather than menu data consumers and does not expose the same catalog endpoints this API covers.
What does `get_menu_item` return that `get_menu` does not?+
get_menu_item returns the same core fields as items inside get_menu (price, description, image_url, popular, available, modifiers) but also includes a tags array and a category string indicating which section of the menu the item belongs to. Use it when you need a single item's full detail without downloading the entire menu payload.
Does the API return user reviews or ratings for menu items?+
Not currently. The API covers menu structure, item prices, modifier groups, and restaurant metadata. Reviews and ratings are not part of any endpoint's response shape. You can fork this API on Parse and revise it to add a reviews endpoint if that data is available on the source page.
Are hours of operation or real-time availability returned?+
The available boolean on each item reflects whether a specific item is currently available, but restaurant hours of operation are not a returned field in any endpoint. You can fork the API on Parse and revise it to add an hours endpoint to surface that data.
How does `search_restaurants` handle ambiguous name matches?+
search_restaurants performs a case-insensitive substring match against the MenuPages directory for both the name and location parameters. When a name is common, the response will include multiple matches each with their own restaurant_id, address, and city. You then pass the correct restaurant_id to get_menu or get_menu_item to narrow to the intended restaurant.
Page content last updated . Spec covers 4 endpoints from menupages.com.
Related APIs in Food DiningSee all →
postmates.com API
Browse and search Postmates restaurants to discover menus, items, and detailed restaurant information all in one place. Get category suggestions, view complete menus, and access specific item details to find exactly what you're looking for.
ubereats.com API
Search for restaurants by cuisine or location and browse their menus, prices, ratings, and delivery times. Get detailed information about specific restaurants and menu items to find exactly what you want to order.
food.grab.com API
Search for GrabFood restaurants by location and retrieve complete menu listings with prices and details for any store. Access real-time restaurant information and full dining options using a guest token obtained from the browser.
chownow.com API
Search for nearby restaurants, view their operating hours and delivery zones, and browse complete menus with all items, modifiers, and prices. Access detailed restaurant information and locations to find exactly what you're looking for on the ChowNow marketplace.
pedidosya.com.ar API
Browse restaurants and menus available in Argentine cities through PedidosYa, search for specific restaurants by name or food category, and retrieve complete menu offerings including items, prices, and available options.
doordash.com API
Search for restaurants on DoorDash and view their menus, hours, and current promotions to find exactly what you're looking for. Get detailed information about any restaurant including pricing, availability, and active discounts across the US.
dennys.com API
Find Denny's restaurant locations near you by searching through states, cities, and zip codes, and browse their complete menu with detailed item information organized by category. Discover specific dishes, filter by tags, and get full details about any Denny's location to plan your visit.
katzsdelicatessen.com API
Browse Katz's Delicatessen's full menu by category and view detailed information about each sandwich, side, and specialty item available for pickup or delivery. Find exactly what you're looking for with organized product listings, descriptions, and menu options.