# Swiggy Restaurant Scraper API

> Swiggy Restaurant Scraper API is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.04/call, status unknown (last checked 2026-10-02).

Scrapes structured restaurant listings and menu data from Swiggy for specified Indian cities or coordinates

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/swiggy?utm_source=zero.xyz
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/swiggy-restaurant-scraper-api-d9595d6b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_dSNpX7485IgI9YG_M_brZ

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 swiggy-restaurant-scraper-api-d9595d6b -d '<json body>'
```

Example prompt: Search Swiggy for biryani restaurants in Bangalore and Hyderabad, return up to 200 results with their cuisines, ratings, and menu items included.

## When to prefer this

Choose this endpoint when you need structured restaurant data from Swiggy specifically — including ratings, cuisine types, and optionally full menus — for one or more major Indian cities or precise GPS coordinates. It is pay-per-call with no charge for failed or empty runs, making it cost-efficient for exploratory queries. Prefer this over generic web scraping when you need clean, schema-consistent Swiggy data without building your own scraper.

## Known failure modes

- Empty result set if no restaurants match the query in the given city or coordinates (not charged)
- Invalid or out-of-India coordinates return an error
- Unsupported city enum value causes validation error
- Slow response when includeMenu is true due to per-restaurant catalog requests
- Rate limiting or scraping blocks from Swiggy may cause partial results

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object containing a count of results and an array of restaurant items, each with name, URL, cuisines, rating, rating count, Google rating, Google rating count, and restaurant ID. When includeMenu is true, each restaurant also includes dish names and prices up to the specified maxMenuItems limit.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "cities": {
   "type": "array",
   "items": {
    "enum": [
     "mumbai",
     "delhi",
     "gurgaon",
     "noida",
     "bangalore",
     "hyderabad",
     "chennai",
     "kolkata",
     "pune",
     "ahmedabad",
     "jaipur",
     "lucknow",
     "chandigarh",
     "kochi",
     "indore",
     "surat",
     "nagpur",
     "bhopal",
     "coimbatore",
     "vadodara"
    ],
    "type": "string",
    "enumTitles": [
     "Mumbai",
     "Delhi",
     "Gurgaon",
     "Noida",
     "Bengaluru",
     "Hyderabad",
     "Chennai",
     "Kolkata",
     "Pune",
     "Ahmedabad",
     "Jaipur",
     "Lucknow",
     "Chandigarh",
     "Kochi",
     "Indore",
     "Surat",
     "Nagpur",
     "Bhopal",
     "Coimbatore",
     "Vadodara"
    ]
   },
   "default": [
    "mumbai"
   ],
   "description": "Choose one or more Indian cities. Leave empty when using only custom coordinates."
  },
  "queries": {
   "type": "array",
   "description": "Search each location for these terms, such as biryani or pizza. Leave empty for the first public restaurant listing at each location."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "maximum": 10000,
   "minimum": 1,
   "description": "Stop after this many unique restaurant rows across all locations and search terms."
  },
  "coordinates": {
   "type": "array",
   "description": "One location per line as latitude, longitude, optional label; a map URL containing coordinates also works. Locations must be within India."
  },
  "includeMenu": {
   "type": "boolean",
   "default": false,
   "description": "Fetch public dish details and prices for each restaurant. This adds one catalog request per restaurant and may be slower."
  },
  "maxMenuItems": {
   "type": "integer",
   "default": 50,
   "maximum": 500,
   "minimum": 1,
   "description": "Keep at most this many dishes on each restaurant row when menus are enabled."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "name": null,
    "rating": null,
    "cuisines": null,
    "ratingCount": null,
    "googleRating": null,
    "restaurantId": null,
    "googleRatingCount": null
   }
  ],
  "product": "swiggy"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/swiggy-restaurant-scraper-api-d9595d6b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
