Tencent Maps (腾讯地图) Scraper - QQ Maps, Contacts & Reviews avatar

Tencent Maps (腾讯地图) Scraper - QQ Maps, Contacts & Reviews

Pricing

from $2.99 / 1,000 places

Go to Apify Store
Tencent Maps (腾讯地图) Scraper - QQ Maps, Contacts & Reviews

Tencent Maps (腾讯地图) Scraper - QQ Maps, Contacts & Reviews

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.

Pricing

from $2.99 / 1,000 places

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Share

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

A whole Chinese city in 84 seconds — with the review counts and WeChat contacts the listing hides.
Measured, not estimated: 759 of the 759 restaurants Tencent publishes for 深圳, 80 fields each. No key, no account.

Tencent Maps (腾讯地图 QQ Maps) business scraper: name, address, phone, real review totals, WeChat mini-program contact, opening hours and photos as structured JSON

What you get that a plain listing scrape misses
💬 The real review countOne restaurant shows 3 on the listing and 16,057 here
💚 WeChat mini-programThe merchant's own account — in China, the direct line
📞 Phones on 98%Plus opening hours as structured per-weekday data
📸 200 photos & videosReview text with authors, ranked dishes with prices
🏨 Per categoryHotel rates from five booking sites · fuel prices · ticket prices

Tencent Maps is the map behind every WeChat location pin, and its listings come from a different supplier than Baidu or Amap — so this complements your China data rather than duplicating it. Deep details are on by default; switch them off for a fast, cheap list of names, addresses and phones.

Zen Studio Maps & Places   •  Local business data from every major regional map
Tencent Maps
➤ You are here
 Baidu Maps
China, 百度地图
 Amap Places
China, Gaode 高德
 Google Maps
Global places
 Mafengwo Places
Attractions & tickets

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, or leave it empty to collect everything available.
  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.
  • A WeChat mini-program per business (appId and gh_ account) on roughly 4 in 10 places, which is a direct channel to the merchant.

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

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

Example output

{
"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:

"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 termShenzhenBeijingShanghai
餐厅 (restaurants)760926525
酒店 (hotels)754847801
银行 (banks)2435948
咖啡 (coffee)624062
星巴克 (Starbucks)27713
肯德基 (KFC)1081

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:

typicalmax seen
photos with URLs115200
short videos855
visitor tags with counts1010
review texts58

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.

{ "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:

{ "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:

"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 250 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 WeChat contact are most of what makes this data worth having. 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):

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

Apify Actor zen-studio/tencent-maps-scraper extracts business listings from Tencent Maps (腾讯地图) across mainland China: name, address, coordinates, entrance point, phone numbers, structured opening hours, rating, review count, average price, recommended dishes, brand, indoor floor data and the full administrative path, plus optional review text. Input is a list of search terms (Chinese category words work best) and a list of Chinese city names. Call it with the Apify client: client.actor("zen-studio/tencent-maps-scraper").call(run_input={"keywords": ["咖啡"], "cities": ["深圳"], "maxResults": 100}). Full input schema and output fields: https://api.apify.com/v2/acts/zen-studio~tencent-maps-scraper/builds/default. Get a token at https://console.apify.com/settings/integrations.

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.

Same team, same output shape, so results join on name and coordinates:


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