{
  "openapi": "3.0.1",
  "info": {
    "title": "Zomato Reviews Scraper | Restaurant Ratings and Replies",
    "description": "Zomato reviews scraper: paste a restaurant link and get 100 reviews in 8 seconds, 41 fields each. Stars, review text, exact date, reviewer, liked and disliked tags, photos and the restaurant's reply, plus its ratings, address, phones and coordinates. Dining and delivery reviews, no login needed.",
    "version": "1.0",
    "x-build-id": "Ah2uec7kk7yNdbUUY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~zomato-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-zomato-reviews-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/silentflow~zomato-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-zomato-reviews-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/silentflow~zomato-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-zomato-reviews-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": {
          "startUrls": {
            "title": "🔗 Zomato links",
            "type": "array",
            "description": "Paste restaurant links from zomato.com, from any tab: <code>https://www.zomato.com/ncr/haldirams-connaught-place-new-delhi/reviews</code>, <code>…/order</code> or <code>…/info</code> all work, and so do share links <code>zoma.to/r/2298</code>. A chain or area link (<code>https://www.zomato.com/bangalore/restaurants/truffles-1</code>) returns the reviews of the first restaurants it lists, up to <b>Max restaurants per search or list</b>.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "🔎 Restaurant names",
            "type": "array",
            "description": "No links yet? Type a restaurant or chain name as people search it on Zomato: <code>Haldiram's</code>, <code>Truffles</code>, <code>Leopold Cafe</code>. Each name returns the reviews of the restaurants Zomato suggests for it in the city below, up to <b>Max restaurants per search or list</b>.",
            "items": {
              "type": "string"
            }
          },
          "city": {
            "title": "📍 City",
            "type": "string",
            "description": "Where the restaurant names are searched. Pick a city or type another Zomato city (<code>Bengaluru</code>, <code>Gurgaon</code>, <code>Navi Mumbai</code>). Empty means Delhi NCR. A city alone, with no other input, returns the reviews of the first restaurants of its Zomato page. Links and IDs ignore it."
          },
          "restaurantIds": {
            "title": "🆔 Restaurant IDs",
            "type": "array",
            "description": "Zomato restaurant IDs, for example <code>2298</code>: the <code>restaurantId</code> column of a previous run, or the number of a share link <code>zoma.to/r/2298</code>. Handy to follow the same restaurants every week.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerRestaurant": {
            "title": "💬 Max reviews per restaurant",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Stop each restaurant after this many reviews, in the order below. Zomato shows up to 500 reviews of a restaurant for each order: <code>0</code> reads all of them. Pick <b>Oldest first</b> in a second run to reach the other end of a busy restaurant.",
            "default": 100
          },
          "maxRestaurants": {
            "title": "🏢 Max restaurants per search or list",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "For restaurant names, chain or area links and a city alone: how many restaurants with reviews to read, in the order Zomato shows them. Outlets without a single review are skipped and not counted.",
            "default": 5
          },
          "maxItems": {
            "title": "🔢 Max reviews in total",
            "minimum": 1,
            "type": "integer",
            "description": "The run stops after this many reviews, all restaurants together. One review is one row.",
            "default": 1000
          },
          "sortBy": {
            "title": "↕️ Order",
            "enum": [
              "newest",
              "oldest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Newest first follows what guests say this week and gives every review its exact date and time. Lowest rated first collects complaints, highest rated first the praise, oldest first the history of the place.",
            "default": "newest"
          },
          "reviewType": {
            "title": "🍽️ Dining or delivery",
            "enum": [
              "all",
              "dining",
              "delivery"
            ],
            "type": "string",
            "description": "Zomato keeps two kinds of reviews: guests who ate at the restaurant (dining) and customers who ordered online (delivery). All reads both.",
            "default": "all"
          },
          "dateFrom": {
            "title": "📅 Reviews since",
            "type": "string",
            "description": "Only keep reviews posted on or after this date: <code>2026-01-01</code>, or an age such as <code>30 days</code> for a monthly schedule. With newest first, each restaurant stops at the first older review. Empty keeps every date."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}