{
  "openapi": "3.0.1",
  "info": {
    "title": "Baidu Maps (百度地图) Scraper - China POI, Contacts & Reviews",
    "description": "Extract places from Baidu Maps across mainland China: names, phone numbers, ratings, opening hours, WGS84 coordinates, and national admin codes. Up to 250 reviews per place, each labelled real, third-party, or AI-generated. Coupon values and group-buy prices included. Export to JSON, CSV, or Excel.",
    "version": "0.0",
    "x-build-id": "88zBIpZsmyIr5T4Pi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~baidu-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-baidu-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/zen-studio~baidu-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-baidu-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/zen-studio~baidu-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-baidu-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",
        "properties": {
          "query": {
            "title": "搜索关键词 / Search keywords",
            "type": "array",
            "description": "要搜索的关键词，每行一个。<br>中英文均可；少数中文特有的品类用中文明显更好，例如「火锅」。多个关键词会合并去重，是覆盖一个城市更多地点的最佳方式。<br><br>Keywords to search, one per line.<br>Chinese and English both work; a few distinctly Chinese categories do much better in Chinese, e.g. 火锅 (hotpot). Multiple keywords are merged and de-duplicated, and are the best way to cover more places in a city.",
            "default": [
              "火锅"
            ],
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "分类 / Category",
            "enum": [
              "",
              "美食",
              "火锅",
              "咖啡",
              "酒店",
              "超市",
              "药店",
              "医院",
              "银行",
              "加油站",
              "健身房",
              "美容美发",
              "汽车维修",
              "幼儿园",
              "学校",
              "景点",
              "停车场",
              "快递"
            ],
            "type": "string",
            "description": "常用分类的快捷方式，会作为额外的搜索关键词。<br><br>Shortcut for a common category. Added as an extra search keyword.",
            "default": ""
          },
          "city": {
            "title": "城市 / City",
            "type": "string",
            "description": "搜索所在城市，中文或英文均可，全国城市均支持。<br>例如：北京、上海、广州、深圳、成都、杭州、厦门。<br><br>City to search in. Chinese or English both work, and every city in China is supported.<br>For example: Beijing, Shanghai, Guangzhou, Shenzhen, Chengdu, Hangzhou, Xiamen.",
            "default": "北京"
          },
          "maxResults": {
            "title": "最大结果数 / Max results",
            "minimum": 1,
            "type": "integer",
            "description": "每个关键词最多返回多少个地点。单次搜索上限约 185 条，超过该数量时会自动在城市范围内分区搜索以获得更多结果。<br><br>Max places per keyword. A single search tops out around 185 places; above that the actor automatically searches the city area by area to reach your target.",
            "default": 100
          },
          "includeDetails": {
            "title": "采集详细信息（含坐标）/ Include full details (with coordinates)",
            "type": "boolean",
            "description": "默认开启。为每个地点补充精确坐标、完整图库和更细的分类路径。<b>坐标来自该步骤，如需坐标请保持开启。</b>会额外计费并略微增加运行时间；如需更快更省可关闭。<br><br>On by default. Adds precise coordinates, the full photo gallery and a finer category path to every place. <b>Coordinates come from this step, so keep it on if you need them.</b> Bills an extra event and is slightly slower; turn it off for cheaper, faster runs.",
            "default": true
          },
          "includeReviews": {
            "title": "采集评论 / Include reviews",
            "type": "boolean",
            "description": "为每个地点采集最多 250 条评论，含用户真实评论、第三方聚合评论与 AI 生成评论，每条都标注来源类别。<b>按每条评论计费，默认关闭。</b><br><br>Collect up to 250 reviews per place: real user reviews, third-party aggregated reviews and AI-generated reviews, each labeled with its source class. <b>Billed per review and off by default.</b>",
            "default": false
          },
          "maxReviews": {
            "title": "每个地点最多评论数 / Max reviews per place",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "开启评论采集时，每个地点最多采集多少条评论（上限 250）。<br><br>When reviews are on, the most reviews to collect per place (up to 250).",
            "default": 50
          },
          "includePlaceContent": {
            "title": "地点亮点 / Place highlights",
            "type": "boolean",
            "description": "为每个地点采集亮点内容：AI 点评摘要、问一问问答、达人攻略、完整团购列表和周边相关地点。<b>按地点计费，默认关闭。</b>（招牌菜、人均/门票价格、优惠券金额，以及带真实价格的招牌团购，均已包含在每个地点的基础字段中，无需开启。）<br><br>Collect highlight content per place: an AI review summary, Q&A, travel tips, the full group-buy list and related nearby places. <b>Billed per place and off by default.</b> (Signature dishes, per-person/ticket prices, coupon values and the headline group-buy deal with its real price are already in every place's base fields — no need to enable this for those.)",
            "default": false
          },
          "placeUrls": {
            "title": "地点链接 / Place URLs",
            "type": "array",
            "description": "已有具体地点时填这里，跳过搜索。支持百度地图地点链接，或 24 位地点 ID（可从上次采集结果的 <code>placeId</code> 直接粘回）。<br><br>Use this when you already have specific places, skipping search. A Baidu Maps place link, or a 24-character place ID (paste a <code>placeId</code> straight back from a previous run's output).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "最低评分 / Minimum rating",
            "enum": [
              "",
              "3.0",
              "3.5",
              "4.0",
              "4.5"
            ],
            "type": "string",
            "description": "只保留达到该评分的地点。无评分的地点会被排除。<br><br>Keep only places at or above this rating. Places without a rating are excluded.",
            "default": ""
          },
          "minReviewCount": {
            "title": "最少评论数 / Minimum review count",
            "minimum": 0,
            "type": "integer",
            "description": "只保留评论数达到该值的地点。<br><br>Keep only places with at least this many reviews.",
            "default": 0
          },
          "priceMin": {
            "title": "人均消费下限 / Min price per person",
            "minimum": 0,
            "type": "integer",
            "description": "人均消费下限（元）。仅餐饮类地点提供该数据，因此设置后也会排除无价格的地点。<br><br>Minimum average spend per person in CNY. Only dining places report this, so setting it also excludes places without a price.",
            "default": 0
          },
          "priceMax": {
            "title": "人均消费上限 / Max price per person",
            "minimum": 0,
            "type": "integer",
            "description": "人均消费上限（元），0 表示不限。<br><br>Maximum average spend per person in CNY. 0 means no limit.",
            "default": 0
          },
          "searchMatching": {
            "title": "名称匹配 / Name matching",
            "enum": [
              "all",
              "only_includes",
              "only_exact"
            ],
            "type": "string",
            "description": "控制地点名称与关键词的匹配严格程度。<br><br>How strictly a place name must match your keyword.",
            "default": "all"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}