Anjuke Scraper | Rental Listings, Prices and Agents avatar

Anjuke Scraper | Rental Listings, Prices and Agents

Pricing

from $8.49 / 1,000 listings

Go to Apify Store
Anjuke Scraper | Rental Listings, Prices and Agents

Anjuke Scraper | Rental Listings, Prices and Agents

Anjuke scraper (安居客, 安居客租房) for China rental listings: 50 listings in 9 seconds, 51 fields each. Get monthly rent, layout, size, floor, amenities, photos, agent and agency, community and GPS coordinates. Search a city, district or metro line, or paste Anjuke links and listing IDs. No login needed.

Pricing

from $8.49 / 1,000 listings

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Anjuke Scraper (安居客) | Rental Listings, Rents, Agents and Coordinates (2026)

1 search. 50 Anjuke listings. 51 fields per listing.

From SilentFlow. Creators of Pinterest Scraper (#1 for “pinterest pins scraper” in Apify Store search) and Leboncoin Scraper Ppe, with 240,000+ combined lifetime runs.

Turn Anjuke's rental board (安居客租房) into a table you can sort: monthly rent, layout, size, floor, amenities, photos, agent and agency, community and GPS coordinates, one row per listing. 50 Beijing rentals in 12 seconds from the prefilled form, no Anjuke account needed.

Why choose this actor?

Copying rents from a Chinese-only app, one listing at a time, to price a flat in Chaoyang? Paying for a scraper that hands back nested objects you still have to unpack before the spreadsheet opens? Holding a list of Anjuke links from a colleague and no tool that reads them?

  • 51 filled fields per listing, as flat columns. On the prefilled run (Beijing, 50 listings, 30 Sep 2026) 51 of the 52 fields were filled on at least half of the rows, and every row had the rent, the size, the layout, the full description, the agent, the community and its coordinates. The only rarer field is the video link, because only 19 of those 50 listings had a video. Each row also carries payment terms (付1押1), the year the building went up, the amenities ticked by the landlord, every metro station within walking distance, the community's average rent and the rent per square metre. The most used Anjuke rental scraper shows 23 keys in its output example, with the basic facts, the broker and the community packed into nested objects.
  • A city and keywords, Anjuke links, or listing IDs, in the same run. Type a city and the districts, communities or metro lines you care about; paste listing links from the Anjuke website or the mobile site; paste a mobile search page with its rent band and bedrooms; or list listing IDs. In our test one run read two listings by link and ID and 18 one-bedroom Guangzhou rentals under ¥2,000 from a pasted search link: 20 rows in 4 seconds. The most used Anjuke rental scraper takes a city and a keyword only.
  • Nothing to fill in before you press Start. No field is required. The form comes with Beijing prefilled, and an empty input still returns Beijing rentals (100 listings in 31 seconds in our test). The most used Anjuke rental scraper will not start until you give it a city and a result count. Every other setting is optional: keywords, links, IDs, a cap, the rental type, a rent band and the number of bedrooms.

Try Anjuke Scraper

Try your first Anjuke rentals

Paste this input into the Input tab (JSON view) and press Start. It is the prefilled input of the form: 50 rental listings from all over Beijing, whole flats and shared flats alike, in the order Anjuke shows them to renters.

{
"city": "北京",
"maxItems": 50,
"rentalType": "any"
}

Runs of this size fit easily in the Apify Free plan, so you can try the actor on the city you care about before scheduling anything. Each listing is one row of the dataset; export it as JSON, CSV, Excel or HTML from the Storage tab, or read it from the API. Three views are ready in the Output tab: Rental listings (title, rent, type, layout, size, district, community, link), Agents (agent, agency, rating, listing, rent, community) and Location (community, district, area, address, nearest metro, latitude, longitude).

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this actor:

You have access to the Anjuke Scraper on Apify: silentflow/anjuke-scraper
It returns one row per Anjuke (安居客) rental listing in mainland China, read from Anjuke's public rental listings. No Anjuke account.
Input (all optional; an empty input searches Beijing):
- city (string, default "北京"): Chinese name (上海), pinyin (shanghai) or the short name in Anjuke addresses (sh). 645 cities.
- keywords (array of strings): districts, business areas, communities or metro lines inside the city (海淀, 望京, 10号线).
One search per keyword. Without keywords, links or IDs the whole city is searched.
- startUrls (array of {"url": string}): Anjuke rental links.
Listings: https://bj.zu.anjuke.com/fangyuan/<id>/ or https://m.anjuke.com/bj/rent/<id>-3/
City pages: https://m.anjuke.com/sh/rent/ and mobile filter pages https://m.anjuke.com/gz/rent/all/a0_2000-b1-0-0-f0/
(a = rent band in yuan, b = bedrooms). Links and IDs replace the city search unless keywords are given.
- listingIds (array of strings): Anjuke listing IDs such as 4759706656564239.
- maxItems (integer, default 100): listings for the whole run, shared evenly between searches.
- rentalType (string, default "any"): any, whole (整租) or shared (合租).
- minPrice, maxPrice (integer): monthly rent band in yuan.
- bedrooms (array of "1".."5"): "5" means five or more.
Output per listing (52 fields, flat):
- Identity: id (string, stable), url (Anjuke website), mobileUrl, title
- Home: rentalType (whole|shared), layout (e.g. 3室1厅2卫), bedrooms, livingRooms, bathrooms, areaSqm, floor, totalFloors,
floorLevel (低层/中层/高层), orientation (南, 南北...), decoration (精装修...), propertyType, yearBuilt, paymentTerms (付1押1...),
amenities (array), tags (array), description, hasElevator, hasVideo, isGuaranteed
- Agent: listedBy (agent|owner), agentName, agentId, agentCompany, agentRating, agentPhotoUrl
- Rent: price (integer, CNY per month), currency ("CNY"), pricePerSqm
- Place and time: city, cityId, district, businessArea, community, communityId, address, latitude, longitude,
nearestMetro, metroStations (array), communityAvgRent (CNY per month), postedAt (RFC 3339, China time),
updatedAt (RFC 3339 UTC)
- Media: imageUrl, images (array, full size), imageCount, videoUrl
- Meta: scrapedAt (RFC 3339 UTC)
Missing values are null. Text values stay in Chinese as Anjuke writes them.
Use apify-client for Python or JavaScript: client.actor("silentflow/anjuke-scraper").call(run_input=...)

How to scrape Anjuke rental listings

Three runs, from the simplest to the most filtered. Each JSON is a complete input: paste it into the JSON view of the Input tab.

Get the latest rentals of a whole city

Type the city and a cap. The run returns the listings Anjuke puts first for that city, whole flats and shared flats together. Shenzhen had 178,680 rental listings on Anjuke when we tested.

{
"city": "深圳",
"maxItems": 100
}

Find two-bedroom flats in Pudong under 8,000 yuan

Add a district as a keyword and the filters you would set in the app. In our Pudong test (whole flats, two bedrooms, 5,000 to 12,000 yuan) every row matched all three filters.

{
"city": "上海",
"keywords": ["浦东"],
"rentalType": "whole",
"bedrooms": ["2"],
"maxPrice": 8000,
"maxItems": 200
}

Compare shared rooms along a metro line and in two communities

Several keywords run as several searches, and maxItems is shared evenly between them, so each keyword gets its part of the dataset. A listing found by two keywords appears once.

{
"city": "北京",
"keywords": ["10号线", "望京", "天通苑"],
"rentalType": "shared",
"minPrice": 1500,
"maxPrice": 3500,
"maxItems": 300
}

Input parameters

FieldTypeDefaultDescription
citystring北京The city to search. Chinese name, pinyin or the short name in Anjuke addresses.
keywordsarray of stringsnoneDistricts, business areas, communities or metro lines inside the city, one search each.
startUrlsarray of linksnoneAnjuke rental links: listings, a city's rental page, or a mobile filter page.
listingIdsarray of stringsnoneAnjuke listing IDs, one per line.
maxItemsinteger100Listings for the whole run, shared evenly between the searches.
rentalTypestringanyany, whole (整租, the whole flat) or shared (合租, a room in a shared flat).
minPriceintegernoneLowest monthly rent, in yuan.
maxPriceintegernoneHighest monthly rent, in yuan.
bedroomsarraynone1 to 5, one or more; 5 means five or more.

No field is required. Listings asked for by link or ID are read first, in the order you list them, then the searches in the order of your keywords. When you give links or IDs without keywords, the city is not searched on top of them; add a keyword to search as well. The filters apply to every search (city, keywords and pasted search pages), not to listings asked for by link or ID.

Accepted formats

  • Cities: the Chinese name with or without 市 (北京, 北京市), the pinyin (beijing, Beijing), the short name used in Anjuke web addresses (bj, sh, gz, sz), or Anjuke's own city number (14). 645 cities are covered, from Beijing, Shanghai, Guangzhou and Shenzhen down to county towns such as 昆山, 义乌 or 张家港. Smaller cities have fewer rentals online: 丽江 had 2,909 when we tested.
  • Keywords: a district (海淀, 浦东, 武侯), a business area (望京, 陆家嘴), a community (天通苑), or a metro line (10号线). They work like the search box of the Anjuke app: the best matches come first, and a narrow keyword also brings listings nearby or that mention it. A district is the most precise: all 50 rows of our 海淀 test were in 海淀.
  • Listing links: https://bj.zu.anjuke.com/fangyuan/4759706656564239/, the older https://bj.zu.anjuke.com/fangyuan/4759706656564239x.html, and the mobile https://m.anjuke.com/bj/rent/4759706656564239-3/, with or without the parameters Anjuke adds after ?.
  • Search links: a city's rentals (https://m.anjuke.com/sh/rent/, https://sh.zu.anjuke.com/fangyuan/) and mobile filter pages such as https://m.anjuke.com/gz/rent/all/a0_2000-b1-0-0-f0/, where a0_2000 is the rent band and b1 the number of bedrooms. Website pages filtered by a district (/fangyuan/haidian/) are skipped with a message: type the district in Keywords instead.
  • Listing IDs: the number in a listing's address, 16 digits (4759706656564239) or the shorter 10-digit form. A link or an ID typed among the keywords is read as a listing.

What data can you extract from Anjuke?

Each listing is one flat row of 52 fields, in the same order in every row:

  • Identity (4): id (Anjuke's listing ID, stable), url (the listing on the Anjuke website, the address Anjuke itself declares as the listing's permanent one), mobileUrl (the same listing on the mobile site) and title.
  • The home (20): rentalType (whole or shared), layout as Anjuke writes it (3室1厅2卫), bedrooms, livingRooms, bathrooms, areaSqm, floor, totalFloors, floorLevel (低层, 中层, 高层), orientation (南, 南北), decoration (精装修, 简单装修), propertyType (普通住宅, 公寓), yearBuilt, paymentTerms (付1押1 means one month of deposit and one month paid ahead), amenities (the equipment the landlord ticked: bed, fridge, air conditioning, washing machine, heating, kitchen), tags, the full description, and hasElevator, hasVideo and isGuaranteed (Anjuke's verified-listing badge).
  • Who lists it (6): listedBy (agent or owner), agentName, agentId, agentCompany, agentRating (out of 5) and agentPhotoUrl.
  • Rent (3): price in yuan per month, currency (CNY) and pricePerSqm, the rent divided by the size.
  • Place and time (14): city, cityId, district, businessArea, community (小区), communityId, address, latitude, longitude, nearestMetro (距13号线回龙观步行863m), metroStations (every station within walking distance with its distance), communityAvgRent (the community's average monthly rent on Anjuke), postedAt and updatedAt.
  • Media (4): imageUrl (the first photo), images (every photo in full size), imageCount and videoUrl (an MP4 walkthrough when the listing has one).
  • Meta (1): scrapedAt.

A few facts that help when you use the data:

  • id and url do not change while a listing is online; use id to join runs and follow a listing week after week.
  • postedAt is the day the listing was published, at midnight China time (+08:00); updatedAt is the last time the agent refreshed it, in UTC. A listing refreshed yesterday can be months old.
  • Text values stay in Chinese as Anjuke writes them, so they match what renters see. Field names are in English, and rentalType, listedBy, the dates and the numbers are normalised.
  • price is the monthly rent. For a shared flat (shared), areaSqm and the price are those of the room, while layout describes the whole flat.
  • Photo and video links point to Anjuke's own servers and load as long as the listing is online. Download the files if you need to keep them.
  • A value Anjuke does not give is null, never an empty string or a made-up zero.

Output example

A real row from the prefilled Beijing run of 30 Sep 2026:

{
"id": "4665824140352516",
"url": "https://bj.zu.anjuke.com/fangyuan/4665824140352516/",
"mobileUrl": "https://m.anjuke.com/bj/rent/4665824140352516-3/",
"title": "直达大钟寺 西二旗13号线回龙观新龙城小区南向精装主卧独卫",
"rentalType": "shared",
"layout": "3室1厅2卫",
"bedrooms": 3,
"livingRooms": 1,
"bathrooms": 2,
"areaSqm": 25,
"floor": 9,
"totalFloors": 11,
"floorLevel": "高层",
"orientation": "南",
"decoration": "精装修",
"propertyType": "普通住宅",
"yearBuilt": 2007,
"paymentTerms": "付1押1",
"amenities": ["冰箱", "洗衣机", "宽带", "沙发", "可做饭", "热水器", "床", "空调", "电视", "衣柜", "阳台", "暖气", "卫生间"],
"tags": ["合租", "朝南", "近地铁", "有电梯", "精装修"],
"description": "13加8号线霍营地铁站精装大小次卧主卧室必选好房价格优惠一手房源可随时看房所有房源贵在真实,让我们彼此相互信任。1【房屋性质】:正规小区楼房,民水民电2【经典户型】:南北通透3【交通出行】:地铁十三号线八号线霍营站4【配套齐全】:出小区既是超市-饭店-商场-医院-银行-公园-游乐场...",
"hasElevator": true,
"hasVideo": true,
"isGuaranteed": true,
"listedBy": "agent",
"agentName": "耿佳乐",
"agentId": "202874156",
"agentCompany": "北京回新二十一世纪住房租赁有限公司",
"agentRating": 5,
"agentPhotoUrl": "https://spic1.ajkimg.com/k_szDrbAn988CDN_-Dgu-mv9GeZbGIgBr3F4CZeWC1548mbb4cieDS9fRYwNYq1yKdKJI6J0fwU3HZrFCM_7Ejk4t-_k4wfZ-WBdrsRgS7-ltRcHbkZv6LtxI4QYUkpQQB-VjnxOst2k7b0xtvS-kZYsIjiSJotEJUdAgEvFFps_Zw_MXMPMiJl1z1Nen6d7",
"price": 2300,
"currency": "CNY",
"pricePerSqm": 92,
"city": "北京",
"cityId": 14,
"district": "昌平",
"businessArea": "回龙观",
"community": "新龙城",
"communityId": "53121",
"address": "昌平路",
"latitude": 40.074768,
"longitude": 116.330707,
"nearestMetro": "距13号线龙泽步行929m",
"metroStations": ["13号线 龙泽-步行929米", "13号线 回龙观-步行1400米"],
"communityAvgRent": 9500,
"postedAt": "2026-07-16T00:00:00+08:00",
"updatedAt": "2026-09-30T12:05:20Z",
"imageUrl": "https://pic1.ajkimg.com/display/anjuke/d7766975e907473afdbe9d55125d1c5d/600x600.jpg?w=750&h=492",
"images": [
"https://pic1.ajkimg.com/display/anjuke/d7766975e907473afdbe9d55125d1c5d/600x600.jpg?w=3000&h=2200",
"https://pic1.ajkimg.com/display/anjuke/6f4a50052105da4ed477436c76e9066b/600x600.jpg?w=3000&h=2200",
"https://pic1.ajkimg.com/display/anjuke/072709871e2fd57dfe89ffdea4c20e33/600x600.jpg?w=3000&h=2200",
"https://pic1.ajkimg.com/display/anjuke/4e26ce09f68bd422130495c69ac781a0/600x600.jpg?w=3000&h=2200"
],
"imageCount": 4,
"videoUrl": "https://zjkzfvideo011.58wos.com.cn/mLNJiHgFeDmP/zftransform/9fdf03549c17041d37f1a75a4d34d63b_1785285969904.mp4",
"scrapedAt": "2026-09-30T13:27:32Z"
}

The description is cut here for reading; the dataset holds it in full.

Advanced usage

Watch a district's new rentals every week

Save this input as a task and schedule it weekly in the Schedules tab. Each run returns the listings Anjuke shows first for Binjiang in Hangzhou; keep the id column of the previous run and filter out what you already have to see only the new listings, or join on id to catch rent changes.

{
"city": "杭州",
"keywords": ["滨江"],
"maxItems": 500
}

Map the rent per square metre of a city, district by district

One keyword per district gives each district its share of the run, and every row carries latitude, longitude and pricePerSqm, ready for a heat map in QGIS, Kepler or a spreadsheet chart. Restricting to whole flats keeps shared rooms from skewing the rent per square metre.

{
"city": "成都",
"keywords": ["武侯", "锦江", "高新区", "成华", "金牛"],
"rentalType": "whole",
"maxItems": 1000
}

Check whether the listings on your shortlist are still online

Paste the IDs or links you saved. Each listing comes back with its current rent and its last refresh date; a listing taken down since is named in the log and skipped, so the number of rows tells you how many are still available.

{
"listingIds": ["4759706656564239", "4728762320382991", "4665824140352516"],
"maxItems": 50
}

Read the search you filtered on the Anjuke mobile site

Filter rentals on m.anjuke.com (city, rent band, bedrooms), copy the address of the results page and paste it. The run applies the same rent band and bedrooms; the fields you add in the form (rental type, for example) are applied on top.

{
"startUrls": [
{ "url": "https://m.anjuke.com/gz/rent/all/a0_2000-b1-0-0-f0/" }
],
"rentalType": "whole",
"maxItems": 200
}

Compute the median rent by district in Python

Run the actor from your own code and hand the rows to pandas. This call collects 600 whole flats in three Shanghai districts and prints the median rent and rent per square metre of each.

from apify_client import ApifyClient
import pandas as pd
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("silentflow/anjuke-scraper").call(run_input={
"city": "上海",
"keywords": ["浦东", "静安", "徐汇"],
"rentalType": "whole",
"maxItems": 600,
})
rows = client.dataset(run["defaultDatasetId"]).list_items().items
df = pd.DataFrame(rows)
print(df.groupby("district")[["price", "pricePerSqm"]].median().sort_values("pricePerSqm"))

FAQ

What is Anjuke? Anjuke (安居客) is one of China's largest property platforms, part of the 58.com group. Its rental board (安居客租房) lists hundreds of thousands of flats per large city: Beijing alone had 371,998 rental listings on Anjuke on the day we tested. Think of it as the Chinese counterpart of Zillow Rentals or Rightmove's lettings.

What does this actor extract? One row per rental listing with 52 fields: rent, rent per square metre, layout, size, floor, orientation, decoration, building year, property type, payment terms, amenities, tags, description, agent and agency, community, address, coordinates, metro stations, community average rent, dates, photos and video. On the prefilled Beijing run 51 of the 52 fields were filled on at least half of the rows.

Do I need an Anjuke account or a Chinese phone number? No. The actor reads public rental listings without any login, account or phone number.

How fresh is the data? Every run reads Anjuke live at the moment it runs; nothing is served from a cache. updatedAt tells you when the agent last refreshed each listing and postedAt when it was first published.

How many listings can one run return? There is no fixed limit on the run: set maxItems to what you need. One search goes as deep as Anjuke lets a renter scroll: in our test the whole of Beijing gave 1,746 distinct listings over 60 pages before Anjuke stopped serving more, and one community keyword (天通苑) returned 400 distinct listings in 1 minute 40 seconds. For large volumes, split a city into one keyword per district, or into rent bands: each search then goes its own depth and the run removes listings found twice.

Can I search several districts or cities in one run? Several districts, yes: one keyword per district, and maxItems is shared evenly between them. One run searches one city; to cover several cities, paste a city page link per city (https://m.anjuke.com/sh/rent/, https://m.anjuke.com/gz/rent/) or start one run per city.

Do I need to read Chinese? No, but the values are in Chinese. Field names are English and the key values are normalised (rentalType is whole or shared, prices and sizes are numbers, dates are standard timestamps). Districts, communities, titles and descriptions stay in Chinese as Anjuke writes them, which is what you need to match them against other Chinese sources. Cities can be typed in pinyin.

Which cities are covered? 645 cities: the four tier-1 cities, every provincial capital, the prefecture-level cities and a long list of county towns (昆山, 义乌, 张家港, 江阴). Smaller cities have fewer rentals online: 丽江 had 2,909 when we tested, and some county towns have none on a given day. Type the Chinese name, the pinyin or the short name from an Anjuke address. A city the actor does not know is named in the run's message with the formats it accepts.

Why does a keyword bring listings from outside that area? Keywords work like the search box of the Anjuke app: the listings that match best come first, then listings that mention the keyword or sit nearby. A district name is the most precise keyword; a business area or a community brings its surroundings too. Filter on district, businessArea or community in your spreadsheet if you need a strict cut.

Are photo and video links permanent? They point to Anjuke's own servers and load while the listing is online. When a listing is taken down its photos may go with it: download the files if you need an archive. url and id stay the same for the whole life of the listing.

Does it cover homes for sale or new developments? No. This actor covers rentals (租房). Sale listings (二手房) and new developments (新房) are a different part of Anjuke.

Is it legal to scrape Anjuke? The actor reads publicly available rental listings, the same ones any visitor sees, without logging in. How you use the data is your responsibility; see the Legal compliance section below.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

🧰 More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This actor extracts publicly available data from Anjuke. It does not bypass any login, paywall or CAPTCHA. Users are responsible for complying with Anjuke's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL, China's Personal Information Protection Law, since the listings concern homes and people in China). The rows contain personal data about agents (name, agency, photo, rating): handle it accordingly, keep only what your purpose needs, and do not use it for unsolicited marketing. The data returned is informational; check a listing on Anjuke before you rely on it for a rental, investment or legal decision.

Built by SilentFlow for investors, relocation teams and researchers who would rather price a Chinese flat from the whole market than from the three listings they found by hand.