# SiteCheck Shop & Social – Grubhub Restaurant Search

> SiteCheck Shop & Social – Grubhub Restaurant Search is a paid API for AI agents from api.shopsocial-api.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-29).

Returns Grubhub restaurants delivering to (or available for pickup at) a US ZIP code or lat/lng, with optional cuisine/dish/name search filtering

## Facts

- Endpoint: GET https://api.shopsocial-api.workers.dev/api/ecommerce/grubhub?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/sitecheck-shop-social-grubhub-restaurant-search-6c97dbfd
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_VfsRgmUAsy_2BPpZcWb4x

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability sitecheck-shop-social-grubhub-restaurant-search-6c97dbfd
```

Example prompt: What Grubhub restaurants are delivering sushi to ZIP code 10001 right now? Show me the first page of results with their ratings, delivery fees, and estimated delivery times.

## When to prefer this

Use this endpoint when you need structured Grubhub restaurant data (ratings, fees, menus, delivery times) for a specific US location identified by ZIP code or coordinates. It is the right choice when the user wants to browse or filter Grubhub delivery/pickup options programmatically, especially when combining location and cuisine/dish search. Prefer it over generic web scraping when you need clean, structured restaurant fields directly from Grubhub's diner API.

## Known failure modes

- Invalid or non-US ZIP code returns empty results or an error
- Missing both zip and lat/lng causes a parameter validation error
- Page number out of range (>10) may return empty results
- No restaurants match the search query in the given area — empty result set
- Grubhub upstream API unavailability causes a proxy error
- Rate limiting or proxy issues may result in 429 or 5xx errors

## How this service works

Grubhub restaurants delivering to a US ZIP code (or lat/lng), optionally matching a search such as pizza or sushi: restaurant id, name, cuisines, rating and rating count, price level (1-4), delivery fee and order minimum (USD), delivery time window (minutes), pickup/delivery, open now, phone, address, distance (miles) and Grubhub link. Up to 20 per page. From Grubhub's own diner API through a US proxy.

## Output

A paginated list of up to 20 Grubhub restaurants per page, each including: restaurant ID, name, cuisine types, star rating and review count, price level (1–4), delivery fee and minimum order in USD, estimated delivery time window in minutes, whether delivery and/or pickup is available, whether the restaurant is currently open, phone number, street address, distance in miles from the query location, and a direct Grubhub URL.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "lat": {
       "type": "number",
       "description": "Latitude (with lng, instead of zip)"
      },
      "lng": {
       "type": "number",
       "description": "Longitude (with lat, instead of zip)"
      },
      "zip": {
       "type": "string",
       "description": "US 5-digit ZIP code, e.g. 10001 (or give lat and lng)"
      },
      "mode": {
       "enum": [
        "delivery",
        "pickup"
       ],
       "type": "string",
       "description": "delivery (default) or pickup"
      },
      "page": {
       "type": "integer",
       "description": "Page number, 1-10 (default 1)"
      },
      "query": {
       "type": "string",
       "description": "Optional search text: cuisine, dish or restaurant name, e.g. pizza"
      }
     }
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/sitecheck-shop-social-grubhub-restaurant-search-6c97dbfd/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.shopsocial-api.workers.dev](https://www.zero.xyz/host/api.shopsocial-api.workers.dev/llms.txt)
