# Tencent Maps (腾讯地图) Scraper - QQ Maps, Contacts & Reviews (`zen-studio/tencent-maps-scraper`) Actor

Extract businesses from Tencent Maps (腾讯地图): name, address, phone numbers, opening hours, ratings, prices and real review counts. 80 fields per place, plus WeChat mini-program contacts, 200 photos, review text and dishes. Enter a search term and a Chinese city. CSV, JSON or Excel. No key needed.

- **URL**: https://apify.com/zen-studio/tencent-maps-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Lead generation, Travel
- **Features:** Limited permissions
- **Stats:** 176 total users, 21 monthly users, 95.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 places

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Tencent Maps Scraper | 腾讯地图 QQ Maps: China Business Data, Real Review Counts & WeChat Contacts (2026)

[![80 fields. Phones. Deals. Review totals. Tencent Maps business data.](https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/tencent-maps-scraper-readme-hero-a48885fdd1a1.png)](https://console.apify.com/actors/m6N528dGvfD6p2iLa/input)

From **Zen Studio**, creators of [Baidu Maps](https://apify.com/zen-studio/baidu-maps-scraper), [Amap Places](https://apify.com/zen-studio/amap-places-scraper) and [Apple Maps](https://apify.com/zen-studio/apple-maps-scraper-pro). Established maps actors for business research and lead generation, from China's major map platforms to global places.

### Why choose this actor?

**80 fields for business research and outreach.** Collect phone numbers, full addresses, opening hours, categories and coordinates. Deep details add priced deals, photos, review text and category-specific information, such as hotel rates or fuel prices. Build prospect lists and compare businesses using more than their names and locations.

**See the review total, not just the handful shown in the listing.** Get the venue's Dianping review total alongside its rating. For example, a saved restaurant record contains **18,995 total reviews**, plus a **¥97 voucher worth ¥100**. The actor returns the source's available review sample separately, so the total is not mistaken for the number of review texts collected.

**Search across cities without duplicate businesses.** Combine Chinese category terms and cities. The actor merges overlapping results and can search districts when city pagination falls short. Where available, attached WeChat mini-programs provide ordering and service links; they may belong to the merchant or a third-party provider.

<a href="https://console.apify.com/actors/m6N528dGvfD6p2iLa/input"><img src="https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/tencent-maps-scraper-readme-cta-6efb49a303a7.svg" width="244" height="48" alt="Find Chinese businesses" /></a>

### Quick input

**Free trial:** Free Apify accounts receive **10 lifetime runs per account**, with
**at most 20 places per run** across all search terms and cities. The allowance
does not reset. A trial slot is consumed when access is granted, including runs
that return no places or are interrupted. Previously unrestricted runs are not
counted retroactively. Upgrade your Apify plan for continued access and larger
results. Paying accounts are not subject to these trial limits; requested result
limits and run budgets still apply.

Try 20 restaurants in Shenzhen with deep details enabled:

```json
{
  "keywords": ["餐厅"],
  "cities": ["深圳"],
  "maxResults": 20,
  "includeDeepDetails": true
}
```

[Open actor input](https://console.apify.com/actors/m6N528dGvfD6p2iLa/input) to choose your searches. City names must be in Chinese. Export JSON, CSV or Excel; JSON preserves nested deals, media and category details.

**Deep details add $2.00 per 1,000 enriched places** to the base place charge. They are enabled by default; see [current pricing](https://apify.com/zen-studio/tencent-maps-scraper/pricing). Fields vary by place and category: the 80-field structure does not mean every field is populated. Email addresses and merchant websites are not provided.

<table><tr><td colspan="5" style="background:#137EFF;padding:10px 12px"><strong style="color:#071C32;font-size:14px">Zen Studio · Maps & Places</strong></td></tr><tr><td style="padding:9px 10px;background:#D8EBFF;border:1px solid #C6DCF2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-m6N528dGvfD6p2iLa-cPplSXPm7y-tencent-maps-qq-scraper-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/tencent-maps-scraper" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Tencent Maps</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">You are here</span></td><td style="padding:9px 10px;background:#EFF6FF;border:1px solid #C6DCF2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-EgDf0I1X8lNhCes2E-kpZCa398Jg-baidu-maps-scraper-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/baidu-maps-scraper" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Baidu Maps</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">China businesses</span></td><td style="padding:9px 10px;background:#EFF6FF;border:1px solid #C6DCF2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3rGXyh4kWAdtrE9vG-bsQxzBhXPT-amap-scraper-logo.jpg" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/amap-places-scraper" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Amap Places</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">Contacts & details</span></td><td style="padding:9px 10px;background:#EFF6FF;border:1px solid #C6DCF2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5bSvAQKSK3LPq9OXb-AgVhcT1mQC-apple-maps-scraper-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/apple-maps-scraper-pro" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Apple Maps</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">Global businesses</span></td><td style="padding:9px 10px;background:#EFF6FF;border:1px solid #C6DCF2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-vBUd2ObzJUemitHHP-IYaavrd0t8-google-maps-directions-api-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/google-maps-scraper" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Google Maps</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">Places & reviews</span></td></tr></table>

### How to scrape Tencent Maps

1. Open the **Input** tab of the Tencent Maps Scraper.
2. Enter one or more **search terms**, for example `餐厅`, `咖啡` or `酒店`.
3. Enter one or more **cities** in Chinese, for example `深圳`, `北京`, `上海`.
4. Optionally set **Maximum places**. Free accounts are capped at 20; paying accounts
   may leave it empty to collect everything available within their run budget.
5. **Include deep place details** is already on. Switch it off if you only need names,
   addresses and phone numbers.
6. Click **Start** and export the results as JSON, CSV, Excel or HTML.

#### What the deep details are actually for

Two things in there are hard to get anywhere else:

- **The real review numbers.** The listing itself shows how many reviews were *attached*,
  usually a handful. Deep details carry 大众点评 Dianping's own tally for the same venue —
  16,057 where the listing said 3 — along with its average price and opening hours.
- **Attached WeChat mini-programs** (`appId` and `gh_` account), where published. These may belong to the merchant or to a third-party ordering or payment provider.

Plus ~200 photos, short videos, review text with authors, ranked dishes with prices,
leaderboard placements, group-buy vouchers, and category extras: live rates from five
booking sites plus a two-week nightly calendar for hotels, fuel prices for filling stations.

#### Example input

```json
{
  "keywords": ["咖啡"],
  "cities": ["深圳"],
  "maxResults": 20,
  "includeDeepDetails": false
}
```

#### Example output

```json
{
  "uid": "6057367236966835053",
  "name": "SAANCI山池咖啡(One Avenue卓悦中心店)",
  "category": "咖啡厅",
  "categoryPath": [
    "娱乐休闲",
    "咖啡厅"
  ],
  "categoryCode": "161300",
  "address": "广东省深圳市福田区深南大道2005号One Avenue卓悦中心F1",
  "latitude": 22.538312,
  "longitude": 114.064319,
  "navLatitude": null,
  "navLongitude": null,
  "phones": [
    "18148556922"
  ],
  "avgRating": 4.4,
  "starLevel": 88,
  "commentLevel": 90.0,
  "reviewCount": 3,
  "averagePrice": 44,
  "openingHoursText": "07:30-22:00",
  "openingHours": {
    "default": [
      {
        "open": "07:30",
        "close": "22:00"
      }
    ]
  },
  "recommendedDishes": [
    "手冲咖啡",
    "山姜",
    "白桃荔枝",
    "柚子白茶",
    "桃酥",
    "龟苓膏鸳鸯",
    "晚香梨",
    "佛手柑抹茶芝士",
    "冬瓜",
    "玫珑瓜茶Dirty"
  ],
  "businessStatus": "正常商户",
  "brandId": "2056439",
  "specialties": [
    "明厨亮灶"
  ],
  "heat": 13036,
  "district": "福田区",
  "districtCode": "440304",
  "city": "深圳市",
  "cityCode": "440300",
  "province": "广东省",
  "provinceCode": "440000",
  "districtCcode": "1992",
  "cityCcode": "1990",
  "provinceCcode": "1965",
  "floorName": "F1",
  "isIndoor": true,
  "indoorCategory": "咖啡厅",
  "buildingId": "4403001398438",
  "masterId": "13179460731305633188",
  "indoorId": "345867836991179551",
  "photoId": null,
  "logoUrl": null,
  "reliability": null,
  "hasGroupBuy": false,
  "tags": [],
  "tips": [],
  "distanceMeters": null,
  "clickCounts": {
    "all_click_180_nav": 130,
    "all_click_180_search": 167,
    "all_click_180_sg": 160,
    "all_click_180_wechat_friend": 426,
    "all_click_180_wechat_send": 7104,
    "all_click_90_nav": 81,
    "city_rank_id": 4386,
    "city_rank_id_90_nav": 15581,
    "rank_id": 107269,
    "top_rate": 0.2
  },
  "dataUpdatedAt": "2024-03-18T12:10:39+00:00",
  "regionName": "福田区",
  "introduction": null,
  "merchantName": "SAANCI山池咖啡(卓悦中心店)",
  "merchantAddress": "广东省深圳市福田区福田街道深南大道oneavenue卓悦中心北区L1层N130",
  "merchantLatitude": 22.538312,
  "merchantLongitude": 114.064319,
  "floorAreaSqm": 0.0,
  "venueBounds": null,
  "partnerReviewCount": 3,
  "partnerName": "大众点评网",
  "partnerKey": "dianping_hezuo",
  "mapCommentCount": null,
  "partnerUrls": [],
  "poiType": null,
  "categoryName": null,
  "postcode": null,
  "specialRecommendation": null,
  "contentScore": 49,
  "recallTags": [
    "test1",
    "test2"
  ],
  "searchInfo": {
    "recommend_food_tag": "白桃荔枝:茶杏子拿铁:玫珑瓜茶dirty:浅烘美式 茶杏子:熔岩蛋糕:山姜:野肉桂:dirty:萨拉米包萨:青李"
  },
  "partnerSources": [
    {
      "bid": "",
      "bname": "",
      "m_url": "",
      "name": "lbs_rich",
      "p_url": "",
      "rich_category": "",
      "rich_source": "lbs_rich"
    },
    {
      "bid": "",
      "bname": "",
      "m_url": "",
      "name": "user.pp",
      "p_url": "",
      "rich_category": "rich.miniapp_info",
      "rich_source": "user.pp"
    },
    {
      "bid": "",
      "bname": "",
      "m_url": "",
      "name": "user_xgc_auto",
      "p_url": "",
      "rich_category": "rich.miniapp_info",
      "rich_source": "user_xgc_auto"
    },
    {
      "bid": "wx8ec895c418805e8e+21963",
      "bname": "",
      "m_url": "",
      "name": "op_wx_app",
      "p_url": "",
      "rich_category": "",
      "rich_source": "op_wx_app"
    },
    {
      "bid": "bCF9_PLB9R4YeWStO5kBZA",
      "bname": "",
      "m_url": "",
      "name": "点评",
      "p_url": "",
      "rich_category": "",
      "rich_source": "dianping"
    },
    {
      "bid": "B0HRF92WJ2",
      "bname": "",
      "m_url": "",
      "name": "gambol",
      "p_url": "",
      "rich_category": "",
      "rich_source": "gambol"
    },
    {
      "bid": "",
      "bname": "",
      "m_url": "",
      "name": "ai_poi_question",
      "p_url": "",
      "rich_category": "",
      "rich_source": "ai_poi_question"
    },
    {
      "bid": "bCF9_PLB9R4YeWStO5kBZA",
      "bname": "",
      "m_url": "",
      "name": "meituan_groupbuy",
      "p_url": "",
      "rich_category": "rich.tuangou",
      "rich_source": "meituan_groupbuy"
    },
    {
      "bid": "",
      "bname": "",
      "m_url": "",
      "name": "indoor_info_dig",
      "p_url": "",
      "rich_category": "",
      "rich_source": "indoor_info_dig"
    },
    {
      "bid": "",
      "bname": "",
      "m_url": "",
      "name": "wechat_channels_digpic",
      "p_url": "",
      "rich_category": "",
      "rich_source": "wechat_channels_digpic"
    }
  ],
  "partnerCommon": {
    "rich_category1": "rich.restaurant",
    "rich_category2": "娱乐休闲:咖啡厅",
    "rich_source": "lbs_rich"
  },
  "rankingSignals": {
    "ranktp": 0.872574,
    "rankep": 0.0,
    "rankqp": 0.0,
    "popularityLevel": 99.0,
    "sourceHeat": 300.0,
    "crossRank": 200.0,
    "relevance": 0.200000003,
    "qqClicks": 0.0
  },
  "sourceExtras": {
    "detail": 1
  },
  "sourceCategory": "娱乐休闲:咖啡厅",
  "sourceName": "lbs_rich",
  "sourceReviewUrl": null,
  "sourceUrl": "https://map.qq.com/m/detail/poi/poid=6057367236966835053",
  "searchKeyword": "咖啡",
  "searchScope": "深圳市",
  "scrapedAt": "2026-08-26T15:34:22+00:00"
}
```

With **Include deep place details** switched on, each row also carries a `details` object:

```json
"details": {
  "photoCount": 334,
  "photos": [
    { "url": "https://multimedia.map.qq.com/...", "category": "菜品",
      "source": "dianping", "width": 4167, "height": 3125, "score": 5 }
  ],
  "headPhoto": { "url": "https://multimedia.map.qq.com/...", "category": "海报" },
  "videos": [ { "desc": "...", "cover_url": "...", "fav_count": 128 } ],
  "tags": [ { "name": "环境好", "count": 42, "type": "1" } ],
  "aiQuestions": ["有停车位吗?"],
  "comments": [
    { "id": "3096443994581904643", "author": "S***", "authorAvatar": "https://...",
      "rating": 5, "publishedAt": "2026-05-19T08:14:00+00:00", "text": "...",
      "photos": [ { "url": "https://..." } ], "likes": 7,
      "isHighQuality": true, "source": "dianping" }
  ],
  "partnerReviewTotal": 10462,
  "starLevel": 4, "qualityLevel": 1, "commercialCredibility": 3,
  "miniPrograms": [ { "appId": "wx71...", "name": "巴奴毛肚火锅", "services": ["在线点单"] } ],
  "verticals": { "restaurant": { "recommend": { "recommend_menu": [ ... ] } } }
}
```

`partnerReviewTotal` is the review platform's full tally, often in the thousands, while
only a handful of review texts are published. `verticals` carries category-specific data
untouched: ranked dishes with prices and photos for restaurants, live rates from five
booking sites for hotels, fuel prices and facilities for filling stations.

`navLatitude` and `navLongitude` are the entrance point, which is where a driver should be
sent. It differs from the centre point of the venue.

`openingHours` is structured. Places with identical hours every day use a `default` key.
Places that vary by day use Chinese weekday keys (`周一` through `周日`), each holding one
or more open and close spans.

**`reviewCount` is the number of reviews attached to the listing, not the venue's total.**
It is usually a handful. `partnerReviewTotal` is the real tally from the review platform, and
needs deep details switched on. `mapCommentCount` is a third number: comments left on the map
itself.

**Some columns are usually empty.** Every place ships the same field set, so a CSV keeps one
shape across runs, but the source publishes `logoUrl`, `postcode`, `tags`, `distanceMeters`,
`poiType` and a few others as blank for most listings — all of them were empty across a
100-place sample in 深圳. They are kept rather than dropped, because they do fill for some
places and silently discarding data is worse than a blank column.

### Which search terms work best?

**Category words return far more places than brand names.** Tencent groups chain brands and
publishes only a curated selection of each, so a brand search returns a small set however it
is run:

| Search term | Shenzhen | Beijing | Shanghai |
|---|---|---|---|
| 餐厅 (restaurants) | 760 | 926 | 525 |
| 酒店 (hotels) | 754 | 847 | 801 |
| 银行 (banks) | 243 | 59 | 48 |
| 咖啡 (coffee) | 62 | 40 | 62 |
| 星巴克 (Starbucks) | 27 | 7 | 13 |
| 肯德基 (KFC) | 10 | 8 | 1 |

For coffee shops, search `咖啡` rather than `星巴克`. To find one chain's branches, search the
category and filter the results by name.

### How do I get photos, reviews and menus?

Switch on **Include deep place details**. Each place then costs one extra request and
returns, typically:

| | typical | max seen |
|---|---|---|
| photos with URLs | 115 | 200 |
| short videos | 8 | 55 |
| visitor tags with counts | 10 | 10 |
| review texts | 5 | 8 |

It also carries, where the place has them: category leaderboard positions
(`"火锅, #12 of 78"`), live group-buy vouchers with price and conditions, the building
footprint as a GeoJSON polygon, a street view reference, and the mini-programs attached to
the business.

**Filling stations** return fuel prices per supplier: one row per channel per fuel grade,
with the supplier named explicitly and station, guiding and discount prices side by side,
plus the service fee. A single station commonly carries a dozen channels.

```json
{ "supplier": "lbs_tuanyou_gas", "brand": "中国石化", "brandType": "联营",
  "fuel": "92#", "stationPrice": 6.62, "guidingPrice": 8.12,
  "discountPrice": 6.40, "serviceFee": 0.15, "hasDiscount": true }
```

Named promotions come with them, on about 70% of stations, with dates, fuel grade,
spend thresholds and the supplier that offers them:

```json
{ "kind": "activity", "name": "超级星期五-八八折活动", "supplier": "lbs_tuanyou_gas",
  "fuel": "92#", "description": "满200元前10升8.3折", "price": 6.42,
  "minSpend": 200, "litreCap": 10, "endsOn": "2999-12-30 00:00:00" }
```

**Hotels** return live rates from five booking sites, plus a nightly rate calendar about
two weeks forward:

```json
"rateCalendar": [ { "date": "2026-08-27", "lowestRate": 474 },
                  { "date": "2026-08-28", "lowestRate": 467 } ]
```

**Attractions** return `ticketPrice` where the platform publishes one.

Review texts stay limited because the platform publishes a curated selection rather than
its full corpus. `partnerReviewTotal` tells you how many exist in total. Everything else
scales up considerably, and hotels, which publish no review text on the website at all,
return full details here.

Rows get large with this on: a hotel carrying live rates from five booking sites can reach
several hundred KB. It is billed separately, so leaving it off costs nothing extra.

### Which cities can I scrape?

Cities must be given in Chinese. `深圳` works, `Shenzhen` does not. Anything that is not a
recognised Chinese city is reported and skipped, so a typo never silently returns results for
the wrong place.

Provinces are not searchable. List the cities you want individually, for example `广州`,
`深圳`, `东莞`. Passing a province name tells you so rather than returning an empty result set.

### How much does it cost to scrape Tencent Maps?

Pay per result: **$3.99 per 1,000 places** on the free plan, dropping to $2.99 per 1,000 on
higher plans.

**Deep place details are on by default** and add **$2.00 per 1,000 places**, so a default run
costs $5.99 per 1,000 on the free plan. They are on because the real review totals and the
attached mini-programs are useful additions to the place record. Switch them off in the input and
you are back to $3.99 for names, addresses, phones, hours and ratings.

A city-wide category search returns 500 to 900 places, so budget roughly $3 to $5 per city
with details on. You are charged for the places you receive, never for the ones that were
searched.

### Integrations and scheduling

Push results straight into Google Sheets, Make, Zapier, Slack or your own webhook from the
**Integrations** tab, or pull them through the Apify API in any language.

For tracking new openings and closures, a **weekly** schedule per city is the useful cadence.
Business listings change slowly, so anything more frequent mostly re-collects identical rows.

How to run the scraper and put it on a schedule (official Apify videos):

https://www.youtube.com/watch?v=1OW8gOqlZbY

https://www.youtube.com/watch?v=1jI7WcVQmwM

### Does Tencent Maps have an API?

Tencent publishes an official mapping API, but it requires a registered Chinese developer
account with real-name verification, applies a daily quota, and exposes a narrower field set
than the public listings do. This actor needs no key, no account and no quota, and returns
the richer public data including recommended dishes, indoor floor data and review text.

### FAQ

**Is the data complete for a city?**
For category searches, usually yes. The actor pages the whole city and, when that comes up
short of the published count, additionally sweeps every district and merges the two. Measured
on 餐厅 in 深圳: **759 of a published 759**, in 84 seconds. A repeat of the same search a day
earlier landed on 749, so expect the high nineties to all of it, with a little movement
between runs because the index itself shifts. For brand searches, no, and no scraper can be,
because the grouping happens before the data is published.

**Why do some places have no phone number or price?**
Not every listing carries every field. Banks and hotels in particular often have no price
level. Fields that are genuinely absent come back as `null` rather than as blanks or
placeholder text.

**Can I get places near a point, or inside a radius?**
Not currently. Searches are scoped to a city.

**Can I export to CSV or Excel?**
Yes. Every run's dataset downloads as JSON, CSV, Excel, XML or HTML, and is reachable through
the Apify API.

**Something looks wrong. Where do I report it?**
Open the **Issues** tab on this actor. For a custom variant or a different Chinese platform,
contact us through the Apify Store profile.

#### Copy to your AI assistant

```
zen-studio/tencent-maps-scraper on Apify collects Tencent Maps business places across mainland China, including names, addresses, coordinates, phone numbers, hours, ratings and review counts. Supply keywords and Chinese cities; Chinese category terms work best and English city names are not recognised. includeDeepDetails defaults to true and adds available review text, real review totals, WeChat mini-programs, photos, deals and category details, with an extra $2 per 1,000 enriched places. Set maxResults for a total limit across all terms and cities; only paying Apify accounts may leave it empty for all available results within their run budget. Free Apify accounts receive 10 lifetime trial runs per account and at most 20 places per run, including when maxResults is omitted or greater than 20; the allowance does not reset, and empty or interrupted runs consume a slot once access is granted. Previously unrestricted runs are not counted retroactively. Upgrade your Apify plan for continued access and larger results. Export JSON for nested details, or CSV and Excel for tabular data. Input/output specification: https://api.apify.com/v2/acts/zen-studio~tencent-maps-scraper/builds/default ; current pricing: https://apify.com/zen-studio/tencent-maps-scraper/pricing. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### Is it legal to scrape Tencent Maps?

The actor collects only publicly visible business listings, the same information any visitor
to the site can see. It collects no personal data beyond the pseudonymised author initials
attached to public reviews. You are responsible for how you use the output, including
compliance with GDPR and PIPL where they apply to you.

### Related actors

More maps and travel actors from the same team:

- [Baidu Maps Scraper](https://apify.com/zen-studio/baidu-maps-scraper) — the other big China
  map, 百度地图. Different data supplier, so running both widens coverage rather than repeating it.
- [Amap Places Scraper](https://apify.com/zen-studio/amap-places-scraper) — Gaode 高德地图,
  the third of China's big three.
- [Google Maps Scraper](https://apify.com/zen-studio/google-maps-scraper) — global places,
  for the markets outside mainland China.
- [Ctrip Hotel Prices](https://apify.com/zen-studio/ctrip-hotel-prices-scraper) and
  [Ctrip Hotel Reviews](https://apify.com/zen-studio/ctrip-hotel-reviews-scraper) — when the
  hotels here need rates and guest reviews rather than listings.
- [WeChat Official Account Scraper](https://apify.com/zen-studio/wechat-official-account-scraper)
  — collect articles from WeChat Official Accounts. These differ from the mini-programs attached to map listings.

***

*Tencent Maps scraper for China business data: extract listings, addresses, phone numbers,
opening hours, ratings, prices and reviews from 腾讯地图 without an API key.*

# Actor input Schema

## `keywords` (type: `array`):

What to look for. Category words such as <b>餐厅</b> (restaurants), <b>咖啡</b> (coffee) or <b>酒店</b> (hotels) return far more places than brand names, brands are grouped by the source and only a curated selection is shown.

## `cities` (type: `array`):

Chinese city names, for example <b>深圳</b>, <b>北京</b>, <b>上海</b>. English names are not recognised.

## `maxResults` (type: `integer`):

Stop after this many places in total across all terms and cities. Free Apify accounts are capped at 20 places per run, even if this is empty or greater than 20, with 10 lifetime trial runs per account. Paying accounts may leave this empty to collect everything available, subject to their run budget.

## `includeDeepDetails` (type: `boolean`):

Leave on unless you only need names, addresses and phone numbers.

## Actor input object example

```json
{
  "keywords": [
    "咖啡"
  ],
  "cities": [
    "深圳"
  ],
  "maxResults": 20,
  "includeDeepDetails": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "咖啡"
    ],
    "cities": [
        "深圳"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/tencent-maps-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["咖啡"],
    "cities": ["深圳"],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/tencent-maps-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "咖啡"
  ],
  "cities": [
    "深圳"
  ],
  "maxResults": 20
}' |
apify call zen-studio/tencent-maps-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/tencent-maps-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/m6N528dGvfD6p2iLa/builds/B1cinCjwwaOmap9XQ/openapi.json
