# Anjuke Sale Detail Scraper by URL - 100+ Fields 2026 (`zen-studio/anjuke-sale-detail-scraper`) Actor

Enrich Anjuke (安居客) sale listings from URLs. Extract 100+ fields per listing — price, area, broker, community price history, schools, metro, VR tours. Paste desktop URLs from a prior run. Same schema as Anjuke Sale Listings Scraper. 1,000 URLs per run. Only successful rows are billed.

- **URL**: https://apify.com/zen-studio/anjuke-sale-detail-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.99 / 1,000 listings

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Anjuke Sale Detail Scraper | Deep Enrichment from URLs (2026)

<blockquote style="border-left:4px solid #4C945E;background:#F0FDF4;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">160+ fields per URL at 100+ listings/min</span> <span style="font-size:15px;color:#57534E"> — 6-month community price trend, broker profile, nearby metro & schools, VR tours. Same schema as Anjuke Sale Listings Scraper, URL-driven.</span>
</blockquote>

![Anjuke Sale Detail Scraper](https://iili.io/BgWIvHv.png)

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#4C945E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio Anjuke Collection</span>
<span style="color:#E8F5E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;安居客 二手房 &amp; 租房 scrapers across 677 Chinese cities</span>
</td>
</tr>
<tr>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;background:#E8F5E9;border-right:none;border-top:none;vertical-align:top;width:33%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1tAzNSf8Kz0v7Q2Lr-AINJ7FsZVU-anjuke-scraper-logo.jpg" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/anjuke-sale-detail-scraper" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:14px">Anjuke Sale Detail</a><br>
<span style="color:#4C945E;font-size:12px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1tAzNSf8Kz0v7Q2Lr-AINJ7FsZVU-anjuke-scraper-logo.jpg" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/anjuke-real-estate-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Anjuke Sale Listings</a><br>
<span style="color:#78716C;font-size:12px">Search 二手房 by city, price, rooms, school</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-lfc30NRxNSkmQX50Q-uMySapcNCz-anjuke-scraper-logo.jpg" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/anjuke-rent-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Anjuke Rent</a><br>
<span style="color:#78716C;font-size:12px">Search 租房 by city, price, rooms, type</span>
</td>
</tr>
</table>

### Key Features

- **URL-in, rich-data-out** — paste desktop Anjuke sale URLs, get back the same 100+ fields as our search-based sibling
- **Full community block** — avg price per m², 6-month price trend, year built, developer, plot rate, live sale/rent counts, nearby schools and metro with walking distances
- **Full broker profile** — name, agency, store, rating, seniority, earned medals, credit flags, service tags
- **Honest billing** — only successful rows are charged. Invalid URLs and dead listings produce free stub rows tagged with `rowStatus`
- **Input order preserved** — output rows appear in the exact order of your input URLs. Silent dedupe by listing ID

### How to Enrich Anjuke Sale URLs

#### Basic — single listing

```json
{
    "urls": [
        "https://beijing.anjuke.com/prop/view/4500370826243072"
    ]
}
````

#### Bulk enrichment — multiple cities

```json
{
    "urls": [
        "https://beijing.anjuke.com/prop/view/4500370826243072",
        "https://shanghai.anjuke.com/prop/view/4527210194396163",
        "https://guangzhou.anjuke.com/prop/view/4483837252870144",
        "https://shenzhen.anjuke.com/prop/view/4491038281093125"
    ]
}
```

#### Chained with Anjuke Sale Listings Scraper

Run [Anjuke Sale Listings Scraper](https://apify.com/zen-studio/anjuke-real-estate-scraper) first, grab the `url` column, feed it here. Same output shape, so your downstream code doesn't need to change.

```json
{
    "urls": [
        "https://beijing.anjuke.com/prop/view/4500370826243072",
        "https://beijing.anjuke.com/prop/view/4498716092884097"
    ]
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `urls` | string\[] | *required* | One Anjuke sale URL per line. Only the desktop shape `https://{pinyin}.anjuke.com/prop/view/{id}` is accepted. 1–1000 URLs per run. |

#### Accepted URL format

Exactly one shape is supported, and it's the same format the sibling [Anjuke Sale Listings Scraper](https://apify.com/zen-studio/anjuke-real-estate-scraper) emits in its `url` column:

```
https://{pinyin}.anjuke.com/prop/view/{id}
```

Examples:

- ✓ `https://beijing.anjuke.com/prop/view/4500370826243072`
- ✓ `https://shanghai.anjuke.com/prop/view/4527210194396163`
- ✗ `https://m.anjuke.com/bj/prop/view/...` (mobile — returns 404)
- ✗ `https://bj.zu.anjuke.com/fangyuan/...` (rent — use [Anjuke Rent](https://apify.com/zen-studio/anjuke-rent-scraper))
- ✗ `https://beijing.anjuke.com/loupan/p_...` (xinfang / new builds — not yet supported)

Invalid URLs produce a stub row with `rowStatus: "invalid"` and are **not billed**.

### What Data Can You Extract from Anjuke?

Every successful row includes:

- **Listing core** — ID, URL, title, post date, total price (万 + RMB), price per m², commission
- **Layout** — rooms, halls, bathrooms, area, orientation, floor (current / total / type), fitment, heating, use type, year built
- **Flags** — elevator, unique property, tax status (满二 / 满五), VR tour, panorama, government verification code
- **Media** — up to 13 photos, floor plan, VR walkthrough URL, panorama URL, video link
- **Tags** — hot listing, near subway, school district, 5+ years, and ~30 other feature tags
- **Description** — natural-language pitch plus structured sections (核心卖点, 业主心态, 服务介绍)
- **Mortgage estimate** — first payment + monthly (Anjuke's own 5.5% calculator)
- **Location** — district, block, address, shangquan, full lat/lng in 3 coordinate systems
- **Community (小区)** — name, year built, developer, plot rate, parking ratio, property fee, heating, 6-month price trend, avg price, month-over-month change, market sentiment, rating by category (商业配套 / 交通 / 居住品质 …), live sale/rent counts, nearby metro with walking distance, nearby schools
- **Broker** — name, agency, store, rating, seniority, honors with medal icons, credit flags, service tags

#### Output Example

```json
{
  "rowStatus": "ok",
  "listingId": "4500737557849088",
  "url": "https://beijing.anjuke.com/prop/view/4500737557849088",
  "title": "甄选房源，朝阳公园，农展馆枣营北里电梯高层，田字格三居",
  "sourceType": "broker",
  "sourceTypeRaw": "19",
  "status": "active",
  "statusRaw": "1",
  "postDate": "2026-03-21T03:21:03Z",
  "priceTotalWan": 499.0,
  "priceTotalRmb": 4990000,
  "pricePerM2Rmb": 66093,
  "priceOnRequest": false,
  "commissionCouponRmb": 0,
  "commissionType": "0",
  "commissionRate": "0",
  "area": 75.5,
  "propertyArea": "75.5",
  "rooms": 3,
  "halls": 1,
  "bathrooms": 1,
  "orientation": "西南",
  "floor": {
    "total": 18,
    "type": "high",
    "levelRaw": "高层(共18层)"
  },
  "fitment": "精装修",
  "heating": "central",
  "heatingRaw": "1",
  "useType": "普通住宅",
  "houseAge": "1991年",
  "yearBuilt": 1998,
  "propertyType": "商品房住宅",
  "hasElevator": true,
  "isUniqueProperty": false,
  "hasPanoramaTour": false,
  "taxStatus": "over-2-years (满二, VAT-free)",
  "taxStatusRaw": "2",
  "roleExplain": "",
  "agencyRecommendReason": "",
  "governmentCode": "",
  "governmentCodeLabel": "北京市政府核验编码",
  "ownerClaim": {},
  "description": "高楼层，视野好；南北通透；明厨明卫。此房户型为3室1厅1卫，建筑面积为75.5平米，朝向为西南北。户型方正，没有浪费面积",
  "descStructure": [
    {
      "name": "核心卖点",
      "content": "高楼层，视野好；南北通透；明厨明卫。此房户型为3室1厅1卫，建筑面积为75.5平米，朝向为西南北。户型方正，没有浪费面积"
    },
    {
      "name": "业主心态",
      "content": "业主诚心出售，欢迎看房，随时恭候您的到来。"
    },
    {
      "name": "服务介绍",
      "content": "我爱我家坚持客户为尊的服务理念，专注于房产透明交易，致力于为您提供专业的服务。"
    }
  ],
  "photos": [
    "https://pic1.ajkimg.com/display/ajk/703a2d10d0e4bd24ba2a274ab63ad109/960x720.jpg?frame=1&t=5",
    "https://pic1.ajkimg.com/display/ajk/703a2d10d0e4bd24ba2a274ab63ad109/214x156c.jpg?frame=1&t=5",
    "https://pic7.ajkimg.com/f07da8d47ba913f302f7e498f98cde9d/floorplan",
    "/* ... 10 more photos */"
  ],
  "media": {
    "panoUrl": "https://m.anjuke.com/panorama?p=imn7bh6bh4eehn43&type=102",
    "vrTakeLookUrl": "https://m.anjuke.com/panorama?p=aed9ak8siedcb6sc&type=102",
    "panoId": "138999080",
    "hasVideo": false,
    "isVrTakeLook": true,
    "vr": {
      "title": "VR带看",
      "subTitle": "专家1对1语音答疑",
      "buttonTitle": "立即体验",
      "icon": "https://pages.anjukestatic.com/usersite/app/anjukeapp/detail_vr_logo.png",
      "isShow": true,
      "bannerTagTitle": "VR带看 边看边聊",
      "bannerTagDesc": "在线语音沟通，专家解疑",
      "bannerBackgroundUrl": "https://pages.anjukestatic.com/usersite/app/anjukeapp/esf_prodetail_img_vrbg_orange.png"
    }
  },
  "tags": [
    "高清VR",
    "满五年",
    "有电梯",
    "近地铁",
    "采光较好",
    "直对通风"
  ],
  "activityTags": [],
  "dynamicTags": [],
  "dynamicTagsDesc": "",
  "publicityBrands": [
    "高清VR",
    "全城热卖",
    "甄选好房"
  ],
  "propertyFlags": {
    "hasVideo": false,
    "isGuaranteed": true,
    "isLandlordListed": false,
    "isDualCore": false,
    "isAuction": false,
    "isXinfang": false,
    "isCollected": false,
    "isTfj": false,
    "isVrTakeLook": true,
    "isBusinessSku": false,
    "panoUrl": "https://m.anjuke.com/panorama?p=imn7bh6bh4eehn43&type=102",
    "vrTakeLookUrl": "https://m.anjuke.com/panorama?p=aed9ak8siedcb6sc&type=102",
    "panoId": "138999080",
    "panoType": "vr-walkthrough",
    "panoTypeRaw": "2",
    "inductionTags": []
  },
  "engagement": {
    "focusCount": 0,
    "browseCount": 0,
    "weekCount": 0,
    "monthCount": 0,
    "totalCount": 0
  },
  "mortgageEstimate": {
    "firstPayRmb": 998000,
    "perMonthRmb": 17704
  },
  "location": {
    "cityName": "北京",
    "ajkCityId": "14",
    "district": "朝阳",
    "block": "朝阳公园",
    "address": "东三环农展馆路",
    "shangquan": "朝阳公园",
    "shangquanList": [
      {
        "id": "5999",
        "name": "朝阳公园"
      }
    ],
    "distance": "",
    "latBaidu": 39.946818,
    "lngBaidu": 116.469861,
    "latGaode": 39.946818,
    "lngGaode": 116.469861,
    "latBucketed": 39.95251,
    "lngBucketed": 116.4764532,
    "lat": 39.946818,
    "lng": 116.469861,
    "coordSystem": "baidu"
  },
  "community": {
    "id": "114615",
    "name": "枣营北里",
    "address": "东三环农展馆路",
    "defaultPhoto": "https://pic3.ajkimg.com/ajk/96becd859ea14438263148037ad4d433/360x312c.jpg",
    "mapImage": "https://pages.anjukestatic.com/usersite/app/esf_prodetail_img_map_v2.png",
    "yearBuilt": 1998,
    "buildingType": "多层",
    "propertyType": "商品房住宅",
    "score": 8.2,
    "plotRate": 1.2,
    "loupanId": "0",
    "developer": "北京大成房地产开发有限责任公司",
    "totalHouseHoldNum": 2719,
    "parking": "200(1:0.1)",
    "parkingFee": "地面120.00元/月",
    "parkingManagementFee": "暂无",
    "propertyFee": "1.00元/平米/月",
    "propertyCompany": "北京大成苑物业管理有限责任公司",
    "propertyBrand": "",
    "heatSupply": "是",
    "waterPowerSupply": "民用",
    "introduction": "枣营北里坐落于朝阳区高端公寓聚集区域-朝阳公园板块的核心，被朝阳公园、团结湖公园、红领巾公园三园环抱，东距亚洲第一城市公园朝阳公园仅500米，项目地块直接辐射到CBD、朝外和燕莎三大商圈，周边生活配套齐全，交通网线发达，朝阳公园：步行3分钟；国贸商圈：车行10分钟；燕莎商圈：车行5分钟；首都机场：车行25分钟。",
    "landUsagePeriod": "70年",
    "estateType": "2",
    "residentialType": "住宅",
    "totalArea": "",
    "completionTimes": [
      {
        "year": "1991",
        "month": ""
      },
      {
        "year": "1994",
        "month": ""
      },
      {
        "year": "1998",
        "month": ""
      }
    ],
    "supplyDemandRatio": 0.43,
    "buildingDistributeCity": 0,
    "commentedCount": 0,
    "recommendedBrokerCount": 1,
    "recommendedStoreCount": 0,
    "tags": [
      "14号线等",
      "三四环之间",
      "小户型居多",
      "配套齐全"
    ],
    "tagList": [],
    "flag": {
      "closeSubway": true,
      "closeSchool": false,
      "hasPanoPhoto": false,
      "hasEvaluation": false
    },
    "price": {
      "reportMonth": "4",
      "avgPricePerM2Rmb": 62721,
      "avgPriceMonthChangePct": 2.97,
      "marketSentiment": "看好",
      "rank": 0,
      "rankRatio": 0.0,
      "roomPricePerM2Rmb": 66048,
      "roomPriceChangePct": -0.33,
      "govPricePerM2Rmb": 0,
      "trendMonthly": [
        {
          "month": "26/4",
          "pricePerM2Rmb": 62721
        },
        {
          "month": "26/3",
          "pricePerM2Rmb": 60910
        },
        {
          "month": "26/2",
          "pricePerM2Rmb": 65321
        },
        {
          "month": "26/1",
          "pricePerM2Rmb": 61163
        },
        {
          "month": "25/12",
          "pricePerM2Rmb": 61182
        },
        {
          "month": "25/11",
          "pricePerM2Rmb": 57526
        }
      ]
    },
    "counts": {
      "saleListings": 20,
      "rentListings": 116,
      "newBuildUnits": 0,
      "recentTransactions": 0
    },
    "media": {
      "photoCount": 97,
      "videoCount": 93,
      "panoCount": 0,
      "panoIds": []
    },
    "rating": {
      "score": 8.2,
      "categories": [
        {
          "name": "商业配套",
          "score": 9.5
        },
        {
          "name": "交通便利",
          "score": 8.5
        },
        {
          "name": "用户评分",
          "score": 8.0
        },
        {
          "name": "小区环境",
          "score": 6.0
        },
        {
          "name": "地段交通",
          "score": 8.1
        },
        {
          "name": "生活配套",
          "score": 8.3
        },
        {
          "name": "居住品质",
          "score": 7.4
        }
      ]
    },
    "featuredBroker": {
      "id": "203135144",
      "name": "张岩",
      "photo": "https://spic1.ajkimg.com/3JgEDsJC33RTGhK-hnPqVNsVNDQtvPcuByqq07w_3_Nbs4CF192B-_HJXoxx6rtxJiprDg8YlsTRhsKMdaX8BjqSELYgu1XghKUip2Y5DDzRUWTjDaDIjAgmL9r4978-9ngaVO0qAXCX_KTimB6M0Elnvslqn84OMnJhYRFH2vqv9GIDdPOfKlfpAURVHDuU",
      "agencyName": "我爱我家",
      "storeName": "我爱我家呼家楼旗舰店",
      "rating": 5.0,
      "recommendText": "近期服务57人"
    },
    "engagement": {
      "collectCount": 60,
      "browseCount": 2065,
      "takelookCount": 0,
      "takelookIntroduction": "",
      "weChatCount": 35
    },
    "stats": {
      "analysisCount": 0,
      "transactionCount": 0,
      "buildingDistributeCity": 0,
      "recommendReason": "",
      "vrLabel": "360°看小区",
      "loupanAnalysis": ""
    },
    "nearbyFacilities": [
      {
        "category": "school",
        "categoryLabel": "学校",
        "facilities": [
          {
            "title": "北京市朝阳区枣营幼儿园",
            "distanceM": 130,
            "distanceText": "直线 130m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/54444ae9/school.png"
          },
          {
            "title": "北京市朝阳区枣营幼儿园卫生站",
            "distanceM": 138,
            "distanceText": "直线 138m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/54444ae9/school.png"
          }
        ]
      },
      {
        "category": "transit",
        "categoryLabel": "交通",
        "facilities": [
          {
            "title": "枣营",
            "distanceM": 523,
            "distanceText": "直线 523m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/6815523d/jiaotong.png"
          },
          {
            "title": "亮马桥",
            "distanceM": 714,
            "distanceText": "直线 714m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/6815523d/jiaotong.png"
          }
        ]
      },
      {
        "category": "shopping",
        "categoryLabel": "生活",
        "facilities": [
          {
            "title": "京客隆(枣营北里店)",
            "distanceM": 80,
            "distanceText": "直线 80m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/3ce68d2c/gouwu.png"
          },
          {
            "title": "佳园春便民生鲜超市(麦子店)",
            "distanceM": 127,
            "distanceText": "直线 127m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/3ce68d2c/gouwu.png"
          }
        ]
      },
      {
        "category": "hospital",
        "categoryLabel": "医疗",
        "facilities": [
          {
            "title": "李时珍耳鼻堂",
            "distanceM": 235,
            "distanceText": "直线 235m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/104e9807/hospital.png"
          },
          {
            "title": "劲松口腔(枣营分院)",
            "distanceM": 354,
            "distanceText": "直线 354m",
            "icon": "https://pages.anjukestatic.com/fe/esf/img/104e9807/hospital.png"
          }
        ]
      }
    ],
    "nearbyMetro": [
      {
        "line": "14号线",
        "station": "枣营",
        "walkingDistance": "步行607米"
      },
      {
        "line": "10号线",
        "station": "亮马桥",
        "walkingDistance": "步行907米"
      },
      {
        "line": "10号线",
        "station": "农业展览馆",
        "walkingDistance": "步行1134米"
      },
      {
        "line": "3/10号线",
        "station": "团结湖",
        "walkingDistance": "步行1951米"
      }
    ],
    "nearbySchools": [
      {
        "name": "",
        "type": "",
        "address": "",
        "distance": ""
      }
    ]
  },
  "broker": {
    "id": "688676",
    "wubaUserId": "18048850",
    "name": "雷文超",
    "photo": "https://spic1.ajkimg.com/Js4kBNrnYgnCZVDPza9FXvyrD_QCJwwGomXWohfhJV5YpApKpkt5MD_fSZZeqrGwSQBDbc3EC-kfDmE0im_Z4Ic4E4AszBlvvrkq-S6Zd92FYzDfR2pCR6D4-Tr4wcwaqEYphDfYOtViFXdnWT82sb2b7j97bYu7RtwRLreqDOGcIll5_Nov1DknLhnK97p8",
    "agencyName": "我爱我家",
    "companyFullName": "北京我爱我家房地产经纪有限公司",
    "storeName": "我爱我家枣营旗舰店",
    "storeId": "600240",
    "rating": 5.0,
    "ipLocation": "北京",
    "seniority": "5-8年",
    "seniorityYears": null,
    "takeUserNum": 0,
    "serviceTags": [
      "置换服务",
      "新房买卖",
      "产权核验"
    ],
    "badges": [
      "服务卓越之星",
      "小区达人",
      "好评如潮",
      "房源丰富",
      "行业认证",
      "闪电回复"
    ],
    "honors": [
      {
        "category": "service_star",
        "title": "服务卓越之星",
        "text": "平台最佳优质服务",
        "medalPicUrl": "https://pages.anjukestatic.com/fe/esf/img/cf3c79cb/8_SERVICE_STAR.png",
        "type": 8
      },
      {
        "category": "community_know",
        "title": "小区达人",
        "text": "精通房源所在小区信息",
        "medalPicUrl": "https://pages.anjukestatic.com/fe/esf/img/0655251f/1_COMMUNITY_KNOW.png",
        "type": 1
      },
      "/* ... 4 more honors */"
    ],
    "noHonors": [
      {
        "category": "type-0",
        "title": "业务精英",
        "text": "平台综合业务精英经纪人",
        "medalPicUrl": "https://pages.anjukestatic.com/fe/esf/img/16985818/no_jingying.png",
        "type": 0
      },
      {
        "category": "dzlj",
        "title": "店长力荐",
        "text": "所在门店店长推荐",
        "medalPicUrl": "https://pages.anjukestatic.com/fe/esf/img/b551bb18/5_DZLJ.png",
        "type": 5
      },
      "/* ... 1 more */"
    ],
    "credit": {
      "starScore": 5.0,
      "isShopkeeperRec": false,
      "isQuick": false,
      "isExpert": false,
      "isSenior": false,
      "hasPlatCert": false,
      "hasCareerCert": false,
      "starBattle": "95.3"
    },
    "flag": {
      "isTopTycoon": false,
      "isAjkPlus": false,
      "isExcellentBroker": false
    }
  },
  "scrapedAt": "2026-04-18T14:52:48Z"
}

```

### Row Status — stubs vs success

Every input URL produces exactly one output row, in input order. The `rowStatus` field tells you what happened:

| `rowStatus` | Meaning | Billed? |
|---|---|---|
| `ok` | Full enrichment succeeded | Yes |
| `unavailable` | Listing is dead or removed from Anjuke | No |
| `invalid` | URL didn't match the accepted format | No |
| `error` | Could not load after 3 retries (network / upstream fault) | No |

Duplicate URLs are silently deduplicated (keep first occurrence). The summary log reports how many duplicates were skipped.

### Pricing — Pay Per Event (PPE)

**$9.99 per 1,000 listings** (base price). Stubs are free.

| Event | Per call | Per 1,000 |
|-------|----------|-----------|
| `listing-scraped` | $0.00999 | $9.99 |

#### Cost Examples

| Successful rows | Cost |
|---|---|
| 10 | ~$0.10 |
| 100 | ~$1.00 |
| 1,000 | ~$9.99 |

#### Cost Optimization

- Invalid URLs and dead listings are never charged — paste liberally
- Dedupe is automatic (by listing ID), so repeated URLs don't double-bill
- Chain from our sibling [Anjuke Sale Listings Scraper](https://apify.com/zen-studio/anjuke-real-estate-scraper) — its URLs are guaranteed to parse

### FAQ

**Why a separate actor when Anjuke Sale Listings Scraper already returns the same data?**
The sibling is search-driven (pick a city, set filters, get up to 5,000 matches). This one is URL-driven — ideal when you already have listing URLs from a prior run, browser tabs, or a partner feed and want the same enriched schema without re-running a search.

**What URL format do I paste?**
`https://{pinyin}.anjuke.com/prop/view/{id}` — the same format our sibling emits. Rent URLs (`*.zu.anjuke.com/...`) and new-build URLs (`/loupan/...`) are rejected.

**How fresh is the data?**
Live — every run fetches the current version of the listing directly from Anjuke. Community price trends cover the last 6 months, updated monthly by Anjuke.

**What happens to dead or removed listings?**
You get a row with `rowStatus: "unavailable"`, the original URL echoed back, and no charge.

**Are duplicate URLs charged twice?**
No. The actor deduplicates by listing ID (silent), and the run summary tells you how many were skipped.

**How many URLs per run?**
Up to **1,000**. For larger batches, split into multiple runs.

**Is this the same schema as Anjuke Sale Listings Scraper?**
Identical, plus a new `rowStatus` field (present on both actors now — always `"ok"` on search-based rows).

**Does it work for new builds (xinfang / 新房)?**
No — new-build URLs (`/loupan/p_...`) are rejected. New-build enrichment will live in a separate actor.

**Do I need a Chinese IP myself?**
No. The actor uses Apify's Residential CN proxy pool automatically.

### Support

- **Bugs**: Issues tab
- **Features**: Issues tab

### Legal Compliance

Extracts publicly available data. Users must comply with Anjuke's terms of service and applicable data protection regulations (GDPR, CCPA, PIPL).

***

*Deep-enrich Anjuke sale listings from their URLs — same 100+ field schema as the search-based sibling, one event per successful listing.*

# Actor input Schema

## `urls` (type: `array`):

One Anjuke sale URL per line. Example:<br><code>https://beijing.anjuke.com/prop/view/4500370826243072</code><br><br>Accepted shape: <b>https://{pinyin}.anjuke.com/prop/view/{id}</b> — the exact format <b>anjuke-real-estate-scraper</b> emits in its <code>url</code> column. Mobile URLs (<code>m.anjuke.com/...</code>), rent URLs, and new-build URLs are not supported here.<br><br>Up to <b>1,000 URLs per run</b>. Duplicate URLs are silently deduplicated; invalid URLs produce a stub row with <code>rowStatus: invalid</code> and are not charged.

## Actor input object example

```json
{
  "urls": [
    "https://beijing.anjuke.com/prop/view/4500370826243072"
  ]
}
```

# Actor output Schema

## `listings` (type: `string`):

Link to the dataset containing all scraped Anjuke sale listings.

# 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 = {
    "urls": [
        "https://beijing.anjuke.com/prop/view/4500370826243072"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/anjuke-sale-detail-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 = { "urls": ["https://beijing.anjuke.com/prop/view/4500370826243072"] }

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://beijing.anjuke.com/prop/view/4500370826243072"
  ]
}' |
apify call zen-studio/anjuke-sale-detail-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/anjuke-sale-detail-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Anjuke Sale Detail Scraper by URL - 100+ Fields 2026",
        "description": "Enrich Anjuke (安居客) sale listings from URLs. Extract 100+ fields per listing — price, area, broker, community price history, schools, metro, VR tours. Paste desktop URLs from a prior run. Same schema as Anjuke Sale Listings Scraper. 1,000 URLs per run. Only successful rows are billed.",
        "version": "0.0",
        "x-build-id": "y8k7bqlga3vJyGlWm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~anjuke-sale-detail-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-anjuke-sale-detail-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~anjuke-sale-detail-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-anjuke-sale-detail-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~anjuke-sale-detail-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-anjuke-sale-detail-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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Sale URLs / 房源链接",
                        "minItems": 1,
                        "maxItems": 1000,
                        "type": "array",
                        "description": "One Anjuke sale URL per line. Example:<br><code>https://beijing.anjuke.com/prop/view/4500370826243072</code><br><br>Accepted shape: <b>https://{pinyin}.anjuke.com/prop/view/{id}</b> — the exact format <b>anjuke-real-estate-scraper</b> emits in its <code>url</code> column. Mobile URLs (<code>m.anjuke.com/...</code>), rent URLs, and new-build URLs are not supported here.<br><br>Up to <b>1,000 URLs per run</b>. Duplicate URLs are silently deduplicated; invalid URLs produce a stub row with <code>rowStatus: invalid</code> and are not charged.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
