{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple Maps Scraper | Grid, Phones, Websites & Coordinates",
    "description": "Scrape Apple Maps business listings: search by keyword and location, or find nearby places. Returns name, address, phone, website, coordinates and more. No browser required.",
    "version": "1.0",
    "x-build-id": "hFbbKhESpQDSFQI1C"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/muzafferkadir~apple-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-muzafferkadir-apple-maps-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/muzafferkadir~apple-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-muzafferkadir-apple-maps-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/muzafferkadir~apple-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-muzafferkadir-apple-maps-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",
        "required": [
          "searchQueries"
        ],
        "properties": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "What to look for, one keyword per line, e.g. cafe, eczane, dentist. Use the local language for best coverage (e.g. 'restoran' instead of 'restaurant' in Turkey). Add several keywords (and brands) to cover more places.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Area center as text, geocoded automatically, e.g. 'Kadıköy, İstanbul'. The search area is sized automatically from the place — a city is covered wide, a neighbourhood or street narrow. Leave empty if you provide coordinates or a bounding box."
          },
          "lat": {
            "title": "Center latitude",
            "type": "number",
            "description": "Center latitude (alternative to Location). Example: 40.9907."
          },
          "lng": {
            "title": "Center longitude",
            "type": "number",
            "description": "Center longitude (alternative to Location). Example: 29.0289."
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum total places to collect.",
            "default": 100
          },
          "lang": {
            "title": "Language",
            "type": "string",
            "description": "Result language. Examples: tr-TR, de-DE, fr-FR.",
            "default": "en-US"
          },
          "radius": {
            "title": "Radius (meters)",
            "minimum": 100,
            "type": "integer",
            "description": "Optional. How far around the center to cover, in meters. Leave empty to size the area automatically from the location; set a value to force a fixed radius instead."
          },
          "boundingBox": {
            "title": "Bounding box",
            "type": "object",
            "description": "Explicit area as { northLat, eastLng, southLat, westLng }. Overrides Location / coordinates / radius."
          },
          "cellSizeMeters": {
            "title": "Grid cell size (meters)",
            "minimum": 200,
            "type": "integer",
            "description": "Initial size of each grid cell. Smaller cells can find more places but increase request count and cloud cost.",
            "default": 1200
          },
          "adaptiveGrid": {
            "title": "Adaptive grid",
            "type": "boolean",
            "description": "Split saturated cells again. This can find more places in dense areas but increases request count and cloud cost.",
            "default": true
          },
          "saturationThreshold": {
            "title": "Saturation threshold",
            "minimum": 1,
            "type": "integer",
            "description": "If a cell returns this many raw results, it is considered saturated and can be split. A lower value splits more aggressively.",
            "default": 20
          },
          "maxGridDepth": {
            "title": "Max adaptive depth",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum recursive split depth per cell. Higher values cover dense areas better but can multiply requests.",
            "default": 2
          },
          "minCellSizeMeters": {
            "title": "Minimum cell size (meters)",
            "minimum": 50,
            "type": "integer",
            "description": "Adaptive splitting stops below this cell size.",
            "default": 250
          },
          "maxCells": {
            "title": "Max grid cells",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on total searched cells including adaptive splits and query expansions. The scan stops early once maxItems is reached, so this mainly raises the ceiling for sparse or large areas. Higher values can improve coverage but increase runtime/cost.",
            "default": 150
          },
          "maxCellsPerQueryVariant": {
            "title": "Max cells per query variant",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap per original/matched query variant. Prevents the first variant from using the whole maxCells budget."
          },
          "queryExpansion": {
            "title": "Query expansion",
            "type": "boolean",
            "description": "Try known local-language variants for generic keywords (e.g. cafe → kahve). This can find more places. Results keep originalQuery and matchedQuery.",
            "default": true
          },
          "queryExpansions": {
            "title": "Custom query expansions",
            "type": "object",
            "description": "Optional extra variants by original query, e.g. { \"market\": [\"A101\", \"BİM\"] }."
          },
          "mapkitToken": {
            "title": "MapKit token",
            "type": "string",
            "description": "Provide your own MapKit access token to skip the automatic DuckDuckGo bootstrap. Leave empty to fetch one automatically."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy. Use Apify Proxy to avoid per-IP rate limits on large grids.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}