{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Illinois Restaurants Scraper",
    "description": "Turn Google Maps into a ready-to-use Illinois restaurant lead list: names, ratings, review counts, categories, full addresses, phone numbers, and websites across 39 major IL cities — no API key needed.",
    "version": "0.0",
    "x-build-id": "9ySN8wbSDDWrt1GLU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fermaja~google-maps-il-restaurants/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fermaja-google-maps-il-restaurants",
        "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/fermaja~google-maps-il-restaurants/runs": {
      "post": {
        "operationId": "runs-sync-fermaja-google-maps-il-restaurants",
        "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/fermaja~google-maps-il-restaurants/run-sync": {
      "post": {
        "operationId": "run-sync-fermaja-google-maps-il-restaurants",
        "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",
        "required": [
          "searchTerm",
          "cities"
        ],
        "properties": {
          "searchTerm": {
            "title": "Search term",
            "type": "string",
            "description": "The Google Maps search query to run in each city, e.g. 'restaurants'.",
            "default": "restaurants"
          },
          "cities": {
            "title": "Illinois cities to search",
            "type": "array",
            "description": "Google Maps has no single 'search the whole state' mode, so the Actor runs one search per city/town and merges results. Defaults to a curated list of Illinois's most populous cities; override with your own list to narrow or widen coverage.",
            "default": [
              "Chicago, IL",
              "Aurora, IL",
              "Naperville, IL",
              "Joliet, IL",
              "Rockford, IL",
              "Springfield, IL",
              "Elgin, IL",
              "Peoria, IL",
              "Champaign, IL",
              "Waukegan, IL",
              "Cicero, IL",
              "Bloomington, IL",
              "Arlington Heights, IL",
              "Evanston, IL",
              "Decatur, IL",
              "Schaumburg, IL",
              "Bolingbrook, IL",
              "Palatine, IL",
              "Skokie, IL",
              "Des Plaines, IL",
              "Orland Park, IL",
              "Tinley Park, IL",
              "Oak Lawn, IL",
              "Berwyn, IL",
              "Mount Prospect, IL",
              "Normal, IL",
              "Wheaton, IL",
              "Hoffman Estates, IL",
              "Oak Park, IL",
              "Downers Grove, IL",
              "Elmhurst, IL",
              "Glenview, IL",
              "DeKalb, IL",
              "Moline, IL",
              "Belleville, IL",
              "Urbana, IL",
              "Crystal Lake, IL",
              "Quincy, IL",
              "Rock Island, IL",
              "Park Ridge, IL"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxPlacesPerCity": {
            "title": "Max places per city",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum number of restaurant listings to collect per city search.",
            "default": 10
          },
          "maxCities": {
            "title": "Max cities to process",
            "minimum": 1,
            "type": "integer",
            "description": "Caps how many cities from the list are actually searched. Defaults to 1 city so a default run finishes quickly; raise it (or leave blank) to cover more of Illinois.",
            "default": 1
          },
          "scrapeContactDetails": {
            "title": "Scrape phone/website/hours",
            "type": "boolean",
            "description": "When enabled, opens each place's detail panel to also collect phone number, website, full address, and opening hours. Roughly doubles the number of page loads.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of browser pages running in parallel.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}