# Sh Centanet — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse Shanghai real estate listings across second-hand homes, rentals, and new developments with detailed community information and geographic filtering. Access comprehensive property details, community profiles, and neighborhood data to find your ideal home in Shanghai.

**Category:** Real Estate | **Website:** [sh.centanet.com/](https://sh.centanet.com/) | **Docs:** [parse.bot/marketplace/6ece800e-dee9-4c0e-9a5a-8cd0152dd31e/sh-centanet-com-api](https://parse.bot/marketplace/6ece800e-dee9-4c0e-9a5a-8cd0152dd31e/sh-centanet-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_community_detail

Get detailed information for a specific residential community by its EstateCode. Returns property management details, pricing stats, images, nearby schools, transit, and building info.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `estate_code` | string | Yes | Unique code for the community (EstateCode from search_communities results). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/get_community_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"estate_code":"<string>"}'
```

### get_geographic_scopes

Get all geographic districts and sub-areas available in Shanghai. Returns a flat list of district objects, each containing a nested GScopeList of sub-areas with their IDs and names. Use district GScopeId values as region_id filters on other endpoints. No pagination — returns all districts in one response.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/get_geographic_scopes \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_listing_detail

Get detailed information for a second-hand or rental listing by its AdsNo. Returns full property details including estate info, floor plan, loan calculator, tax estimates, agent contact, and nearby schools/transit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ads_no` | string | Yes | Unique listing ID (AdsNo from search_second_hand_listings or search_rental_listings results). |
| `post_type` | string | No | Listing type: 's' for sale, 'r' for rent. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/get_listing_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ads_no":"<string>","post_type":"<string>"}'
```

### get_new_development_detail

Get detailed information for a new housing development by its EstExtId. Returns project introduction, images, floor plans, developer info, nearby transit, pricing, and sale status.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `est_ext_id` | string | Yes | Unique ID for the new development (EstExtId from search_new_developments results). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/get_new_development_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"est_ext_id":"<string>"}'
```

### search_communities

Search for residential communities (xiaoqu) with optional filters. Returns paginated results with community summaries including average sale prices, addresses, sale/rent counts, and nearby transit info. Results are ordered by a relevance score.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `estate_name` | string | No | Filter by community name (partial match supported). |
| `page_count` | integer | No | Number of results per page. |
| `page_index` | integer | No | Page number (1-based). |
| `region_id` | string | No | District ID to filter by (e.g. '2172' for Pudong). Obtain from get_geographic_scopes endpoint. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/search_communities \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"estate_name":"<string>","page_count":"<integer>","page_index":"<integer>","region_id":"<string>"}'
```

### search_new_developments

Search new housing developments (xinfang). Returns paginated results with development summaries including average price, sale status, house types, location, developer info, and nearby transit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `length` | integer | No | Number of results per page. |
| `start_index` | integer | No | Starting index (0-based) for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/search_new_developments \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"length":"<integer>","start_index":"<integer>"}'
```

### search_rental_listings

Search rental property listings. Returns paginated results with listing summaries including monthly rent, area, room counts, community name, and agent info.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `estate_code` | string | No | Filter by community code (EstateCode from search_communities). |
| `keywords` | string | No | Search keywords (e.g. community name or address). |
| `page_count` | integer | No | Number of results per page. |
| `page_index` | integer | No | Page number (1-based). |
| `region_id` | string | No | District ID to filter by (from get_geographic_scopes). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/search_rental_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"estate_code":"<string>","keywords":"<string>","page_count":"<integer>","page_index":"<integer>","region_id":"<string>"}'
```

### search_second_hand_listings

Search second-hand housing listings for sale. Returns paginated results with listing summaries including total sale price, unit price, area, room/hall/toilet counts, community info, and agent details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `estate_code` | string | No | Filter by community code (EstateCode from search_communities). |
| `keywords` | string | No | Search keywords (e.g. community name or address). |
| `page_count` | integer | No | Number of results per page. |
| `page_index` | integer | No | Page number (1-based). |
| `region_id` | string | No | District ID to filter by (from get_geographic_scopes). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sh-centanet-com-api-6ece800e/search_second_hand_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"estate_code":"<string>","keywords":"<string>","page_count":"<integer>","page_index":"<integer>","region_id":"<string>"}'
```
