# Centaline Search API

<p>Search homes for sale or rent on Centaline Property, the Hong Kong property portal. Filter by location, price, bedrooms, saleable (net) area, property type, building age, floor band, MTR walking time, views, features, facilities, developer, topic and agent. Sort by publish date, ranking, price or price per square foot and page through the results. Every returned listing satisfies every filter you send. A listing that does not is left out and counted in `omitted`; the page is never padded. The site returns some listings without a price in price searches. They are left out when you filter by price. They carry `unpaid_sale_price` when the site shows an unpaid price. `total` is the number of matches the site reports. The site serves the first 10000 results of a search: a page that reaches past that returns HTTP 422, so narrow the filters instead. A page past the last page returns an empty list. When you sort by price, listings without a price go to the end of the page. Sale prices are the total in HKD, rent is HKD per month. Listings marked sale_and_rent carry both prices; `price` is the one for the listing type you searched. Each listing carries the reference, price and price text, gross and net area, price per square foot, bedrooms, en-suite rooms, building age, direction, floor band, building type, estate, building, address, position, area, tags, nearby MTR, mall and car park walking minutes, cover image, media flags, fee flags, publish and update dates and the page URL. There is no bathrooms filter because Centaline does not publish a bathroom count. Use the location field of the autocomplete endpoint for `location` and the filter-options endpoint for the list filters.</p>

- **Documentation:** [https://scrappa.co/docs/centaline-api/centaline_search](https://scrappa.co/docs/centaline-api/centaline_search)
- **API group:** Centaline Property API
- **Endpoint:** `GET https://scrappa.co/api/centaline/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `listing_type` | string | Yes | `sale` for homes for sale, `rent` for homes for rent. |
| `location` | string | No | The `location` of an autocomplete result: a district, estate, building, MTR station, school, university, developer, mall or car park. |
| `price_min` | integer | No | Lowest price in HKD. Rent is per month, sale is the total price. |
| `price_max` | integer | No | Highest price in HKD. Rent is per month, sale is the total price. |
| `bedrooms` | string | No | Bedroom counts separated by commas: `0` (studio), `1`, `2`, `3` and `4` (4 or more). Example `2,3`. |
| `area_min` | integer | No | Smallest saleable (net) area in square feet. |
| `area_max` | integer | No | Largest saleable (net) area in square feet. |
| `property_type` | string | No | `private_residential`, `hos`, `public_housing` or `other`. Separate several types with commas. |
| `building_age_min` | integer | No | Youngest building age in years. |
| `building_age_max` | integer | No | Oldest building age in years. |
| `floors` | string | No | Floor band values from the filter-options endpoint, separated by commas. |
| `mtr_walk_minutes` | integer | No | Walking time to an MTR station: `2`, `5` or `10` minutes. |
| `views` | string | No | View values from the filter-options endpoint, separated by commas. Several values match any of them. |
| `features` | string | No | Feature values from the filter-options endpoint (balcony, terrace and more), separated by commas. |
| `facilities` | string | No | Estate facility values from the filter-options endpoint, separated by commas. |
| `developers` | string | No | Developer values from the filter-options endpoint, separated by commas. |
| `topics` | string | No | Topic values from the filter-options endpoint, separated by commas. |
| `agent_no` | string | No | Only listings of this agent number. The agent-listings endpoint offers the same with fewer parameters. |
| `sort` | string | No | `published` (default), `ranking`, `price` or `unit_price`. The ranking order can change between requests. |
| `order` | string | No | `desc` (default) or `asc`. |
| `page` | integer | No | Page number, 1-based. Page times size must stay within 10000. |
| `size` | integer | No | Listings per page, 1 to 100. Default 24. |
| `lang` | string | No | `en` (default) for English names, `hk` for Traditional Chinese. |

## Example response

```json
{
    "data": {
        "page": 1,
        "size": 24,
        "total": 26,
        "filters": {
            "lang": "en",
            "sort": "published",
            "order": "desc",
            "bedrooms": [
                2
            ],
            "location": "eyJ0eXBlQ29kZXMiOlsiMTktSE1BMDM0Il19",
            "price_max": 30000,
            "price_min": 20000,
            "listing_type": "rent"
        },
        "has_more": true,
        "listings": [
            {
                "id": "aa91062c-4357-cc0c-fef0-08df31aa1490",
                "url": "https://hk.centanet.com/findproperty/en/detail/Taikoo-Shing_DAQ896",
                "media": {
                    "vr": true,
                    "video": false,
                    "images": true,
                    "floor_plan": true
                },
                "phase": "Kao Shan Terrace",
                "price": 29000,
                "title": "Taikoo Shing\u30fbKao Shan Terrace\u30fb(T-17)  Kam Shan Mansion",
                "estate": "Taikoo Shing",
                "nearby": {
                    "mtr": [
                        {
                            "name": "Tai Koo",
                            "walk_minutes": 8
                        }
                    ],
                    "shopping_malls": [
                        {
                            "name": "CITYPLAZA I",
                            "walk_minutes": 3
                        }
                    ]
                },
                "ref_no": "DAQ896",
                "region": {
                    "area": "Taikoo Shing",
                    "district": "Eastern District",
                    "area_code": "HMA034",
                    "territory": "Hong Kong Island"
                },
                "address": "5 Tai Fung Avenue",
                "bedrooms": 2,
                "building": "(T-17)  Kam Shan Mansion",
                "currency": "HKD",
                "location": {
                    "lat": 22.285567,
                    "lng": 114.218283
                },
                "rent_price": 29000,
                "updated_at": "2026-10-26T14:39:35",
                "cover_image": "https://hkvrdata.centanet.com/CNHK-41799_a8c5c3079ad44fb1a3ed0ea79910522f/CoverImage/Cover.jpg?x-oss-process=style/master",
                "building_age": 48,
                "listing_type": "rent",
                "published_at": "2026-10-24T16:37:46",
                "area_net_sqft": 593,
                "building_type": "Apartment",
                "area_gross_sqft": 691,
                "rent_price_text": "Rent $29,000",
                "rent_per_sqft_net": 48,
                "net_to_gross_ratio": 0.8582,
                "management_included": true,
                "rent_per_sqft_gross": 41,
                "government_rates_included": true
            }
        ],
        "listing_type": "rent"
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
|  | The property or agent does not exist or is no longer online. This response is not billable. |  |
|  | A parameter is missing or invalid, or the page reaches past the first 10000 results. This response is not billable. |  |
|  | Centaline is temporarily unavailable, or its answer did not match the request. Retry the request. This response is not billable. |  |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
