# CHINTAI Property Search API Documentation

Scrappa's `GET /api/chintai/search` returns CHINTAI rental rooms in Japan as structured JSON, by municipality or railway line, with type, rent, area, layout, walking time, building age, sort and paging. CHINTAI lists rentals only, so there is no sale search.

## What you get

One request returns one page of rooms and CHINTAI's own match count in `pagination.total` (rooms). Each room has `id`, `url`, `layout`, `area_m2`, `floor_text`, `floor_number`, `rent_yen`, `management_fee_yen`, `total_monthly_yen`, `deposit_text` with `deposit_yen`, `key_money_text` with `key_money_yen`, `availability`, `chips`, `comment`, `photo_count`, `thumbnail`, `floor_plan_image`, `nearest_station`, `agency` (`id`, `name`, `phone`, `url`), `updated_at` and `publish_end`. The `building` object holds `name`, `type`, `address`, `built_text`, `built_year`, `age_years`, `floors_text`, `structure`, `access` (line, station, walk minutes), `latitude` and `longitude`.

Japanese text stays as CHINTAI writes it. Numbers are added next to it. A value CHINTAI does not state is `null`, never 0. `なし` (none) is 0. A deposit in months (`1ヶ月`) is counted on the rent. CHINTAI shows only some rooms of a large building on a result page. Call the listing endpoint for `building_rooms`.

## Location

Send `prefecture` and exactly one of `city` (5-digit municipality code) or `line` (line id). Take them from `search_params` of `/api/chintai/autocomplete`. A prefecture, city or line that does not exist returns `404`.

## Filters are honoured

CHINTAI ignores a value it does not know and returns the unfiltered list. This API therefore checks every value before the lookup and rejects unknown values with `422`. It also checks every returned room against the rent, area, layout, walking time and age filters. A room that breaks a filter is dropped and counted in `pagination.dropped_by_filter`. `query` echoes the applied filters.

- `min_rent` and `max_rent` are in yen and use the steps of the CHINTAI form. CHINTAI applies them to rent plus management fee. The check uses `rent_yen` plus `management_fee_yen`. A room with no stated fee counts with its rent alone.
- `min_area` and `max_area` are in square metres and use the steps of the form.
- `layouts` is a comma-separated list such as `1K,1LDK`. `1LDK+S` counts as `1LDK`. `5K` covers 5K and 5DK, `5LDK` covers 5LDK and larger.
- `walk_minutes` keeps rooms with a station at most that many minutes away on foot.
- `max_age_years` keeps buildings at most that old. `0` is new. A building still under construction (`under_construction` is true, `age_years` is `null`) counts as new.
- `type` is `mansion`, `apart` or `kodate`.

## Sorting

`sort` is `rent_asc` (default), `rent_desc` or `area_desc`. Rooms stay grouped by building, so the order is by building.

## Pagination

`page` starts at 1. A page holds about 20 buildings with their rooms. A page past the last one returns an empty list with the real `total` and the page you asked for. `total_pages` is then `null`. It never returns page 1 data under another page number.

- **Documentation:** [https://scrappa.co/docs/chintai-api/chintai_search](https://scrappa.co/docs/chintai-api/chintai_search)
- **API group:** CHINTAI API
- **Endpoint:** `GET https://scrappa.co/api/chintai/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 |
| --- | --- | --- | --- |
| `prefecture` | string | Yes | Prefecture slug from autocomplete, for example tokyo, osaka or hokkaido. |
| `city` | string | No | Municipality code (5 digits), for example 13104 for Shinjuku. Send city or line. |
| `line` | string | No | Railway line id, for example 101001 for the Yamanote line. Send city or line. |
| `type` | string | No | mansion, apart or kodate. Without it all three are searched. |
| `min_rent` | integer | No | Minimum rent plus management fee per month in yen, in the steps of the CHINTAI form. |
| `max_rent` | integer | No | Maximum rent plus management fee per month in yen, in the steps of the CHINTAI form. |
| `min_area` | integer | No | Minimum floor area in square metres, in the steps of the form. |
| `max_area` | integer | No | Maximum floor area in square metres, in the steps of the form. |
| `layouts` | string | No | Comma-separated: 1R, 1K, 1DK, 1LDK, 2K, 2DK, 2LDK, 3K, 3DK, 3LDK, 4K, 4DK, 4LDK, 5K, 5LDK. |
| `walk_minutes` | integer | No | At most this many minutes to a station on foot: 1, 3, 5, 7, 10, 15 or 20. |
| `max_age_years` | integer | No | Building age in years at most: 0 (new), 1, 3, 5, 7, 10, 15, 20, 25 or 30. |
| `sort` | string | No | rent_asc (default), rent_desc or area_desc. |
| `page` | integer | No | Result page from 1. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/chintai/search?prefecture=tokyo&city=13104&max_rent=150000&layouts=1K%2C1LDK&sort=rent_asc"
```

## Example response

```json
{
    "success": true,
    "data": {
        "items": [
            {
                "id": "C010100011111560075568290001",
                "url": "https://www.chintai.net/detail/bk-C010100011111560075568290001/",
                "building": {
                    "name": "\u30b8\u30aa\u30a4\u30c9\u66d9\u6a4b",
                    "type": "\u8cc3\u8cb8\u30de\u30f3\u30b7\u30e7\u30f3",
                    "address": "\u6771\u4eac\u90fd\u65b0\u5bbf\u533a\u4f4f\u5409\u753a",
                    "built_text": "2019\u5e7407\u6708\uff08\u7bc97\u5e74\uff09",
                    "built_year": 2019,
                    "built_month": 7,
                    "age_years": 7,
                    "under_construction": false,
                    "floors_text": "11\u968e\u5efa(\u5730\u4e0b1\u968e)",
                    "floors_above_ground": 11,
                    "floors_below_ground": 1,
                    "structure": "\u9244\u7b4b\u30b3\u30f3\u30af\u30ea\u30fc\u30c8\u9020",
                    "access": [
                        {
                            "text": "\u90fd\u55b6\u65b0\u5bbf\u7dda/\u66d9\u6a4b\u99c5 \u5f92\u6b692\u5206",
                            "line": "\u90fd\u55b6\u65b0\u5bbf\u7dda",
                            "station": "\u66d9\u6a4b\u99c5",
                            "walk_minutes": 2
                        }
                    ],
                    "latitude": 35.692285,
                    "longitude": 139.724542,
                    "building_code": "4141172",
                    "image": "https://img.chintai.net/awsorg/bk/ot/C01010001/68/29/111156007556829/021/1111560075568290001_20261026111334076.JPG"
                },
                "layout": "1K",
                "area_m2": 25.1,
                "floor_text": "3\u968e",
                "floor_number": 3,
                "rent_yen": 98000,
                "management_fee_text": "8,000\u5186",
                "management_fee_yen": 8000,
                "total_monthly_yen": 106000,
                "deposit_text": "1\u30f6\u6708",
                "deposit_months": 1,
                "deposit_yen": 98000,
                "key_money_text": "\u306a\u3057",
                "key_money_months": 0,
                "key_money_yen": 0,
                "availability": "\u5373\u5165\u5c45\u53ef",
                "chips": [
                    "\u672c\u65e5\u306e\u65b0\u7740",
                    "\u30aa\u30fc\u30c8\u30ed\u30c3\u30af",
                    "\u72ec\u7acb\u6d17\u9762\u53f0"
                ],
                "comment": "\u30aa\u30f3\u30e9\u30a4\u30f3\u6848\u5185\u53ef\u3002\u5199\u771f\u30fb\u52d5\u753b\u9001\u4ed8\u3001WEB\u5951\u7d04\u7b49\u6765\u5e97\u4e0d\u8981\u3067\u3054\u5951\u7d04\u53ef\u80fd\u3067\u3059\u3002",
                "photo_count": 12,
                "thumbnail": "https://img.chintai.net/awsorg/bk/ot/C01010001/68/29/111156007556829/021/1111560075568290001_20261026111334076.JPG",
                "floor_plan_image": "https://img.chintai.net/awsorg/bk/ot/C01010001/68/29/111156007556829/011/1111560075568290001_20261026111334204.JPG",
                "nearest_station": {
                    "name": "\u66d9\u6a4b\u99c5",
                    "walk_minutes": 2
                },
                "agency": {
                    "id": "C01010001",
                    "name": "\u682a\u5f0f\u4f1a\u793e\u30ea\u30d6\u30fb\u30de\u30c3\u30af\u30b9 \u30ea\u30d6\u30de\u30c3\u30af\u30b9\u79cb\u8449\u539f\u5e97",
                    "phone": "03-5297-8877",
                    "url": "https://www.chintai.net/shop/C01010001/"
                },
                "updated_at": "2026-10-26",
                "publish_end": "2026-11-09T23:59:59+09:00",
                "is_new_today": true
            }
        ],
        "pagination": {
            "page": 1,
            "buildings_per_page": 20,
            "total": 1214,
            "total_pages": 61,
            "returned": 1,
            "dropped_by_filter": 0,
            "has_more": true
        },
        "query": {
            "prefecture": "tokyo",
            "city": "13104",
            "max_rent": 150000,
            "layouts": [
                "1K",
                "1LDK"
            ],
            "sort": "rent_asc"
        }
    },
    "meta": {
        "endpoint_family": "search",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | Not Found | No CHINTAI search page exists for that prefecture, city or line. Take them from autocomplete. (`NOT_FOUND`). Non-billable. |
| 422 | Validation Error | A query parameter is missing, unknown or unusable. Unknown parameters and unknown values are rejected before any lookup, never ignored. Non-billable. |
| 503 | Upstream Unavailable | CHINTAI could not be reached after one retry, answered with an error or changed its format (`UPSTREAM_UNAVAILABLE`). Retryable and never billed. Clients are never rate limited. |

## 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)
