---
title: "Search Grubhub restaurants near a location"
method: GET
path: "/grubhub/search"
tags: ["Grubhub"]
---

# Search Grubhub restaurants near a location

`GET /grubhub/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/grubhub/search`
- Auth: API key in header `x-api-key`

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.

## Query parameters

- `latitude` number, required
- `longitude` number, required
- `search` string
- `order_method` 'delivery' | 'pickup'
- `page_size` integer
- `page` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- GrubhubSearchResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` GrubhubSearchResponse
    - `count` integer
    - `fetched_at` string
    - `page` integer
    - `restaurants` GrubhubSearchRestaurant[]
      - `address` string
      - `chain_name` string
      - `city` string
      - `coupons_available` boolean: CouponsAvailable and TotalOffers describe promotions without reproducing their (volatile) terms.
      - `cuisines` string[]
      - `delivery_fee` GrubhubMoney
        - `amount` integer
        - `currency` string
        - `value` number
      - `delivery_minimum` GrubhubMoney
        - `amount` integer
        - `currency` string
        - `value` number
      - `delivery_time_minutes` integer
      - `distance_miles` string: DistanceMiles is the distance from the search coordinate.
      - `latitude` number
      - `logo_url` string
      - `longitude` number
      - `menu_path` string
      - `name` string
      - `offers_delivery` boolean
      - `offers_pickup` boolean
      - `open` boolean
      - `phone_number` string
      - `pickup_time_minutes` integer
      - `postal_code` string
      - `price_rating` number: PriceRating is Grubhub's 1-4 "$" tier.
      - `rating` GrubhubRating
        - `count` integer
        - `value` number
      - `restaurant_id` string
      - `service_fee` GrubhubMoney
        - `amount` integer
        - `currency` string
        - `value` number
      - `state` string
      - `total_menu_items` integer
      - `total_offers` integer
    - `source_url` string
    - `total_hits` integer
    - `total_pages` integer
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
