{
  "openapi": "3.0.1",
  "info": {
    "title": "Swiggy Dineout Scraper — Restaurants, Deals, Phones & Hours",
    "description": "Scrape Swiggy Dineout restaurants anywhere in India: ratings, cost for two, cuisines, walk-in and pre-book discounts, bank and UPI offers, photos — plus optional business phone, full address, pincode, GPS coordinates and weekly opening hours. No login.",
    "version": "0.1",
    "x-build-id": "B7h3ef6FW9rXhMDGF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~swiggy-dineout-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-swiggy-dineout-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/yugenox~swiggy-dineout-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-swiggy-dineout-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/yugenox~swiggy-dineout-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-swiggy-dineout-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "title": "📍 Locations",
            "type": "array",
            "description": "Where to look for restaurants. Each line can be a city (\"Bangalore\", \"Mumbai\", \"Delhi\", \"Gurgaon\", \"Pune\"…), a neighbourhood or landmark (\"Koramangala, Bangalore\", \"Bandra West, Mumbai\", \"Cyber Hub Gurgaon\"), GPS coordinates (\"19.0760, 72.8777\") or a Swiggy city link. Each location returns the restaurants Swiggy Dineout lists around that spot — about 1,000–1,200 in big cities.",
            "items": {
              "type": "string"
            }
          },
          "restaurantUrls": {
            "title": "🔗 Restaurant URLs",
            "type": "array",
            "description": "Optional. Swiggy Dineout restaurant links (e.g. https://www.swiggy.com/restaurants/muro-ashok-nagar-bangalore-829411/dineout) or just the restaurant ids. Returns full details for exactly these restaurants — handy for tracking deals at a fixed list of places.",
            "items": {
              "type": "string"
            }
          },
          "coverage": {
            "title": "Coverage",
            "enum": [
              "nearby",
              "wholeArea"
            ],
            "type": "string",
            "description": "\"Around each location\" returns the ~1,000–1,200 restaurants Swiggy shows near that spot (within roughly 5–10 km) — fast. \"Whole city / area\" searches a grid of points across the entire city or area and merges the results (duplicates removed), for complete city lists of several thousand restaurants.",
            "default": "nearby"
          },
          "areaRadiusKm": {
            "title": "Area radius (km)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Optional, for \"Whole city / area\". How far from each location to search. Leave empty to use the city's size (e.g. 18 km for Bangalore, 20 km for Mumbai, 8 km for smaller cities)."
          },
          "maxItems": {
            "title": "Max restaurants",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many restaurants in total. 0 = no limit.",
            "default": 200
          },
          "maxItemsPerLocation": {
            "title": "Max restaurants per location",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Cap each location separately, so a multi-city run gets some results from every city."
          },
          "includeDetails": {
            "title": "Add business details (phone, full address, pincode, GPS, hours)",
            "type": "boolean",
            "description": "Adds the restaurant's business phone number, full street address with pincode, exact latitude/longitude, weekly opening hours and open-now status, restaurant category (Casual Dining, Nightlife, Café…), all amenities, popular dishes, menu images, every bank/UPI/card offer with its coupon code and terms, and upcoming events. One extra request per restaurant.",
            "default": false
          },
          "minRating": {
            "title": "Minimum rating",
            "enum": [
              "any",
              "3.5",
              "4.0",
              "4.3",
              "4.5"
            ],
            "type": "string",
            "description": "Keep only restaurants rated at least this (Google rating shown on Swiggy Dineout).",
            "default": "any"
          },
          "maxCostForTwo": {
            "title": "Max cost for two (₹)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only restaurants whose \"cost for two\" is at most this many rupees, e.g. 1500."
          },
          "cuisines": {
            "title": "Cuisines",
            "type": "array",
            "description": "Optional. Keep only restaurants serving one of these cuisines, e.g. \"North Indian\", \"Chinese\", \"Italian\", \"Cafe\", \"Desserts\" (partial, case-insensitive match).",
            "items": {
              "type": "string"
            }
          },
          "facilities": {
            "title": "Must have",
            "type": "array",
            "description": "Optional. Keep only restaurants with ALL of these features, e.g. \"Alcohol served\", \"Pure veg\", \"Valet parking\", \"Parking available\", \"Free wifi\", \"Smoking area\", \"Pet friendly\", \"Vegan food\", \"Jain food\", \"Halal for meat\", \"Reservation available\" (partial, case-insensitive match).",
            "items": {
              "type": "string"
            }
          },
          "onlyWithOffers": {
            "title": "Only restaurants with a discount or offer",
            "type": "boolean",
            "description": "Skip restaurants that have no walk-in, pre-book, coupon or bank offer right now.",
            "default": false
          },
          "skipSponsored": {
            "title": "Skip sponsored placements",
            "type": "boolean",
            "description": "Leave out restaurants that appear as paid (sponsored) placements.",
            "default": false
          },
          "tileSpacingKm": {
            "title": "Grid spacing (km)",
            "minimum": 2,
            "maximum": 10,
            "type": "integer",
            "description": "For \"Whole city / area\": distance between search points. Smaller = more complete but slower. 4 km finds nearly everything.",
            "default": 4
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many pages to fetch at the same time.",
            "default": 16
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is required. The default (automatic datacenter proxy) works; the run switches to residential proxies on its own if datacenter IPs get blocked.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}