# OneRoof Search API Documentation

<p><strong>OneRoof Search API</strong> returns up to 50 listings per page (40 by default) for sale, rent or sold in New Zealand. Filter by region, district and suburb, bedrooms, bathrooms, carparks, category, price, land and floor area, agency, agent and new homes, and sort by latest, price or open home. Each item carries the price text and, when the site shows one clear amount, a numeric <code>price</code>; text prices such as Auction stay text and <code>price</code> is null. Every item satisfies the filters you sent; items that break a filter are never returned and are counted in <code>excluded_by_filters</code>. <code>pagination.total_items</code> is the total the site reports for the same filters (null for sold and for agent searches). A page past the last returns an empty list with the page you asked for. Failed requests are not billed.</p>

- **Documentation:** [https://scrappa.co/docs/oneroof-api/oneroof_search](https://scrappa.co/docs/oneroof-api/oneroof_search)
- **API group:** OneRoof API
- **Endpoint:** `GET https://scrappa.co/api/oneroof/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 |
| --- | --- | --- | --- |
| `type` | string | Yes | Required. sale, rent or sold. A sold item is a past sale; its detail is not available. |
| `region_id` | integer | No | Region id from the autocomplete route (level region). Example: 35 for Auckland. |
| `district_id` | integer | No | District id from the autocomplete route (level district). |
| `suburb_id` | integer | No | Suburb id from the autocomplete route (level suburb). |
| `bedrooms` | string | No | Bedroom counts, 0 to 5, as a comma list, for example 3,4. The value 5 means five or more bedrooms. |
| `bathrooms` | integer | No | Bathroom count, 0 to 5. 5 means five or more. |
| `carparks` | integer | No | Carpark count, 0 to 5. 5 means five or more. |
| `category` | integer | No | 1 House, 2 Apartment, 3 Studio, 4 Townhouse, 5 Unit, 6 Home and Income, 7 Lifestyle Property, 8 Lifestyle Section, 9 Section. |
| `price_min` | number | No | Minimum price in NZD. For rent the price is per week. Listings priced in words only, such as Auction or By Negotiation, cannot be checked against a price range and are kept with price null. |
| `price_max` | number | No | Maximum price in NZD (per week for rent). Same rule as the minimum price. |
| `land_area_min` | number | No | Minimum land area in square metres. Listings without a land area are kept. |
| `land_area_max` | number | No | Maximum land area in square metres. |
| `floor_area_min` | number | No | Minimum floor area in square metres. Listings without a floor area are kept. |
| `floor_area_max` | number | No | Maximum floor area in square metres. |
| `office_id` | integer | No | Only listings of this agency (office id from a search item or the agency route). |
| `agent_id` | integer | No | Only listings of this agent. Needs office_id. The site cannot filter by agent, so the agent is matched inside the pages of that agency: a page can hold fewer than per_page items and total_items is null. |
| `new_homes` | boolean | No | true to return new home projects only. |
| `sort` | string | No | featured (default), latest, price_desc, price_asc or open_home (earliest open home). |
| `page` | integer | No | Page number, 1-based. A page past the last returns an empty list with the page you asked for. |
| `per_page` | integer | No | Items per page, 1 to 50. Default 40. |

## Example response

```json
{
    "data": {
        "items": [
            {
                "id": 2540878,
                "uid": "rN6Ox",
                "url": "https://www.oneroof.co.nz/property/auckland/onehunga/66-trafalgar-street/rN6Ox",
                "code": "1755731",
                "slug": "auckland/onehunga/66-trafalgar-street/rN6Ox",
                "sold": null,
                "tags": [],
                "price": null,
                "title": "Lucky 66 - THAB - corner site - well serviced",
                "agents": [
                    {
                        "id": 117482,
                        "name": "Chester Duffett",
                        "phone": "021 000 0000",
                        "photo": "https://s.oneroof.co.nz/image/6d/fe/6dfecbb6f02e24a52d84ab4f2b4977a3.jpg?x-oss-process=image/quality,q_80"
                    }
                ],
                "images": [
                    "https://s.oneroof.co.nz/image/81/5c/815ccc8bf3a5210632a7305b56bf7121.jpg?x-oss-process=image/quality,q_80",
                    "https://s.oneroof.co.nz/image/d7/01/d701083a1752e19de25adcbc9fcd3c09.jpg?x-oss-process=image/quality,q_80"
                ],
                "office": {
                    "id": 107,
                    "name": "Bayleys Real Estate Ltd (Licensed: REAA 2008) - Bayleys, Remuera",
                    "photo": "https://s.oneroof.co.nz/image/3b/29/3b291efc7b46be09a66f4c4058daf534.jpg?x-oss-process=image/quality,q_80",
                    "banner": "https://s.oneroof.co.nz/image/9a/01/9a0168ca52acd05f60736ce7377d459f.jpg?x-oss-process=image/quality,q_80"
                },
                "status": 1,
                "address": {
                    "full": "66 Trafalgar Street, Onehunga, Auckland City, Auckland",
                    "region": "Auckland",
                    "street": "66 Trafalgar Street",
                    "suburb": "Onehunga",
                    "district": "Auckland City",
                    "latitude": -36.916478,
                    "longitude": 174.7748438,
                    "region_id": 35,
                    "suburb_id": 2899,
                    "district_id": 225
                },
                "auction": {
                    "at": "2026-11-24T21:00:00Z",
                    "end": null,
                    "address": null
                },
                "summary": null,
                "bedrooms": 7,
                "carparks": 0,
                "currency": "NZD",
                "bathrooms": 4,
                "listed_at": "2026-10-25T16:00:00Z",
                "price_max": null,
                "price_min": null,
                "video_url": null,
                "open_homes": [],
                "price_note": "25 Nov 2026 10:00",
                "price_text": "Auction",
                "category_id": 1,
                "floor_plans": [],
                "is_new_home": false,
                "property_id": null,
                "tour_3d_url": null,
                "building_age": "1910",
                "image_groups": [
                    {
                        "key": "living room",
                        "label": "Living Room",
                        "images": [
                            "https://s.oneroof.co.nz/image/42/54/4254139bfbad8f712e008e21db064ec4.jpg?x-oss-process=image/quality,q_80",
                            "https://s.oneroof.co.nz/image/f4/e3/f4e35606c5860357ca7f5a8ab6060c54.jpg?x-oss-process=image/quality,q_80"
                        ]
                    },
                    {
                        "key": "kitchen",
                        "label": "Kitchen",
                        "images": [
                            "https://s.oneroof.co.nz/image/42/54/4254139bfbad8f712e008e21db064ec4.jpg?x-oss-process=image/quality,q_80",
                            "https://s.oneroof.co.nz/image/f2/25/f225f72b6769da0172da34ff71a02d0a.jpg?x-oss-process=image/quality,q_80"
                        ]
                    }
                ],
                "listing_type": "sale",
                "price_period": null,
                "land_area_sqm": 797,
                "property_type": "House",
                "available_from": null,
                "floor_area_sqm": null,
                "is_coming_soon": false,
                "is_new_listing": true,
                "land_area_text": "797m\u00b2",
                "rateable_value": "$2,220,000",
                "estimated_value": null,
                "floor_area_text": null,
                "online_auctions": null,
                "detail_available": true,
                "median_sale_price": null,
                "price_method_code": 3,
                "listing_type_label": "Residential for sale"
            }
        ],
        "pagination": {
            "page": 1,
            "per_page": 40,
            "next_page": 2,
            "total_items": 16791,
            "total_pages": 420
        },
        "excluded_by_filters": 0
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or invalid. This response is not billable. |
| 503 | Upstream Unavailable | OneRoof could not be reached. This response is not billable and is retryable. |

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