# ImmobilienScout24 Austria Search API Documentation

<p>Scrappa's `GET /api/immoscout24-at/search` endpoint returns Austrian property listings from ImmobilienScout24.at as structured JSON, so you do not have to build and maintain your own scraper.

    ## Endpoint reference for ImmobilienScout24.at property search

    Search apartments, houses, plots, offices and other property for rent or sale. Filter by region, price, rooms, living area, property type, condition, outdoor space, facilities and more, and sort by price, area or date. The endpoint suits rental alerts, price monitoring, market research and property portals.

    ## What each result contains

    Every result carries the listing id, headline, address, price, area, room count, key facts, badges, agent, picture, map location and portal links. The response also gives the total number of matches for the filter set, so you can page through the whole market.

    ## Paging

    Use `size` (1 to 200, default 50) and `from` (offset). Keep paging until `hasMore` is false or a page is empty. A `size` above 200 is rejected with a 422, never cut down silently.

    ## Data notes

    New-build project listings have no single price. Their `primaryPrice` is `null` and the price and area range sits in `mainKeyFacts`. The portal sometimes returns a few listings of the other deal type; those are removed, so `rowsReturned` can be lower than `size`.

    ## Related endpoints

    Resolve a region id with Locations or Autocomplete. Fetch the full record with Property. Count matches per facet with Facets.</p>

- **Documentation:** [https://scrappa.co/docs/immoscout24-at-api/immoscout24_at_search](https://scrappa.co/docs/immoscout24-at-api/immoscout24_at_search)
- **API group:** ImmobilienScout24 Austria API
- **Endpoint:** `GET https://scrappa.co/api/immoscout24-at/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 |
| --- | --- | --- | --- |
| `transfer_type` | string | No | Deal type. One of: `BUY`, `RENT`, `LEASE`, `LEASEHOLD`, `TEMPORARY_RENT`. Defaults to `RENT`. Several values are comma separated. |
| `estate_type` | string | No | Property type. One of: `APARTMENT`, `HOUSE`, `OFFICE`, `PROPERTY`, `INDUSTRIAL`, `RETAIL`, `PARKING_PLACE`, `INVESTMENTPROPERTY`, `MISCELLANEOUS`, `GASTRONOMY`, `AGRICULTURE_AND_TIMBER`, `HOTEL`, `ROOM`, `LEISUREFACILITY`. Defaults to `APARTMENT`. Several values are comma separated. |
| `estate_detail_type` | string | No | Property subtype such as `PENTHOUSE`, `LOFT`, `MAISONETTE` or `VILLA`. One of: `AGRICULTURE_HOLDING`, `APARTMENT`, `APARTMENTHOUSE`, `BAR`, `BARN`, `BED_AND_BREAKFAST`, `BOOTBERTH`, `BUNGALOW`, `CAFE`, `CARPORT`, `DOCTORS_OFFICE`, `DUPLEX`, `END_TERRACE_HOUSE`, `EXHIBITION_SPACE`, `FARM`, `FARMHOUSE`, `FIELD`, `FLOOR_APARTMENT`, `FUNFAIR`, `GARAGE`, `GASSTATION`, `GASTRONOMY`, `GROUND_FLOOR`, `HALF_BASEMENT`, `HEALTHCARE`, `HORSE_STABLE`, `HOTEL`, `HUNTING_GROUND`, `INDUSTRIAL`, `LAND`, `LOFT`, `MAISONETTE`, `MID_TERRACE_HOUSE`, `MISCELLANEOUS`, `MISCELLANEOUS_AGRICULTURE_AND_TIMBER`, `MISCELLANEOUS_GASTRONOMY`, `MISCELLANEOUS_HOTEL`, `MISCELLANEOUS_HOUSE`, `MISCELLANEOUS_INDUSTRIAL`, `MISCELLANEOUS_INVESTEMENTPROPERTY`, `MISCELLANEOUS_RETAIL`, `MULTI_FAMILY_HOUSE`, `OFFICE`, `OFFICE_BUILDING`, `OPEN_AREA`, `PARKING_SPACE`, `PARKINGHOUSE`, `PENTHOUSE`, `PRODUCTION`, `RESTAURANT`, `RETAIL_SHOP`, `RETAIL_STORE`, `ROOF_STOREY`, `ROUGH_ATTIC`, `SEMIDETACHED_HOUSE`, `SHARED_OFFICE_SPACE`, `SHOP`, `SHOPPING_CENTER`, `SINGLE_FAMILY_HOUSE`, `SINGLE_GARAGE`, `SPECIAL_OFFICE`, `SPORTSAREA`, `SUPERMARKET`, `TERRACE_HOUSE`, `TERRACED_FLAT`, `TOWN_HOUSE`, `UNDERGROUND_PARKING_PLACE`, `VILLA`, `VINEYARD`, `WAREHOUSE`, `WORKSHOP`. Several values are comma separated. |
| `use_type` | string | No | One of: `RESIDENTIAL`, `COMMERCIAL`. Defaults to `RESIDENTIAL`. |
| `region` | string | No | Region id from the locations or autocomplete endpoint, for example `009001` (Vienna) or `009001022` (Vienna, 22nd district). An id the portal does not know is rejected without charge. |
| `zip_code` | string | No | Four digit Austrian postcode. |
| `keywords` | string | No | Free-text keywords. |
| `price_from` | number | No | Minimum price in euro (monthly for rent). |
| `price_to` | number | No | Maximum price in euro (monthly for rent). |
| `rooms_from` | number | No | Minimum number of rooms. |
| `rooms_to` | number | No | Maximum number of rooms. |
| `area_from` | number | No | Minimum living area in square meters. |
| `area_to` | number | No | Maximum living area in square meters. |
| `plot_area_from` | number | No | Minimum plot area in square meters. |
| `plot_area_to` | number | No | Maximum plot area in square meters. |
| `price_per_sqm_from` | number | No | Minimum price per square meter. |
| `price_per_sqm_to` | number | No | Maximum price per square meter. |
| `condition_type` | string | No | Condition. One of: `DEMOLITION`, `FIRST_TIME_USE`, `FIRST_TIME_USE_AFTER_REFURBISHMENT`, `FRAMING`, `FULLY_REFURBISHED`, `FULLY_RENOVATED`, `GUTTED`, `MINT_CONDITION`, `MODERNIZED`, `NEED_OF_RENOVATION`, `NEED_TO_DISCUSS`, `PARTLY_REFURBISHED`, `PROJECTPHASE`, `REFURBISHED`, `WELL_KEPT`. Several values are comma separated. |
| `condition_age` | string | No | One of: `NEWBUILDING`, `OLDBUILDING`. |
| `outdoor_spaces` | string | No | Outdoor space. One of: `BALCONY`, `GARDEN`, `LOGGIA`, `TERRACE`. Several values are comma separated. |
| `facilities` | string | No | Facilities. One of: `AIR_CONDITIONING`, `ATTIC`, `BIKE_ROOM`, `CABLE_DUCTS`, `CELLAR`, `CELLAR_PARTIAL`, `CRANE`, `EV_CHARGING_STATION`, `FIREPLACE`, `GARDEN`, `GUEST_TERRACE`, `GUEST_TOILET`, `HOLIDAY_PROPERTY_PHONE`, `LIBRARY`, `LIFTING_PLATTFORM`, `PARCEL_DELIVERY_BOX`, `PHOTOVOLTAIC_SYSTEM`, `RAMP`, `SAUNA`, `SHUTTER`, `SMART_HOME_SYSTEM`, `SPORTS_FACILITIES`, `STOREROOM`, `SWIMMING_POOL`, `WASHING_DRYING_ROOM`, `WELLNESS_AREA`, `WINTER_GARDEN`. Several values are comma separated. |
| `furnishing` | string | No | One of: `FULL`, `PART`. |
| `lift` | string | No | One of: `LIFT`, `FREIGHT_LIFT`. |
| `accessibility` | string | No | One of: `HANDICAPPED_ACCESSIBLE`, `SENIOR_CARE`, `SUITABLE_FOR_WHEELCHAIRS`. Several values are comma separated. |
| `bathroom` | string | No | One of: `BATHTUBE`, `BIDET`, `SHOWER`, `URINAL`, `WINDOW`. Several values are comma separated. |
| `construction_method` | string | No | One of: `MASSIVE`, `PREFABRICATED`, `WOOD`. Several values are comma separated. |
| `parking_spaces` | number | No | Minimum number of parking spaces. |
| `transit_line_types` | string | No | Public transport nearby. One of: `BUS`, `CABLE_CAR`, `FERRY`, `REGIONAL_TRAIN`, `SUBWAY`, `TRAM`, `URBAN_TRAIN`. Several values are comma separated. |
| `has_commission` | boolean | No | Set `false` for listings without agent commission. |
| `is_private_insertion` | boolean | No | Set `true` for private listings only. |
| `is_developer_project` | boolean | No | Set `true` for new-build projects only. |
| `is_investment_property` | boolean | No | Set `true` for investment properties only. |
| `is_forced_sale` | boolean | No | Set `true` for forced sales only. |
| `is_social_housing` | boolean | No | Set `true` for social housing only. |
| `is_shortterm_rentable` | boolean | No | Set `true` for short-term rentals only. |
| `is_suitable_as_holiday_home` | boolean | No | Set `true` for holiday homes only. |
| `requires_financial_contribution` | boolean | No | Set `true` for listings that need a financial contribution. |
| `sort` | string | No | Sort order. One of: `LATEST`, `PRICE_ASC`, `PRICE_DESC`, `PRICE_PER_SQUARE_METER_ASC`, `PRICE_PER_SQUARE_METER_DESC`, `AREA_ASC`, `AREA_DESC`, `CREATED_DESC`, `PLUS_OFFER_DESC`. Price sorts can place project listings without a price between priced ones. |
| `size` | integer | No | Listings per page, 1 to 200. Defaults to 50. |
| `from` | integer | No | Offset of the first listing, starting at 0. |

## Example response

```json
{
    "data": {
        "from": 0,
        "hasMore": true,
        "results": [
            {
                "exposeId": "69ce7e3d6fd3644eae4a06ca",
                "headline": "Helle 2-Zimmer-Wohnung",
                "accountCwid": "012.001P900000QhO6b",
                "primaryArea": 54,
                "primaryPrice": 1192,
                "addressString": "1200 Wien",
                "numberOfRooms": 2
            }
        ],
        "totalHits": 3881,
        "rowsReturned": 20,
        "rowsRequested": 20
    },
    "meta": {
        "attempts": 1,
        "billable": true,
        "duration_ms": 640
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | Not Found | The requested listing, agency or place does not exist. Non-billable and not retryable. |
| 422 | Validation Error | A query parameter failed validation: a missing required value, an unsupported filter value or a number outside the documented range. Every filter value is checked before a request is made, so a typo is never answered with a plausible but unfiltered result. Non-billable. |
| 503 | Request Rejected | ImmobilienScout24 Austria answered with an application error, for example a region it does not know. Non-billable and not retryable: the same request fails the same way. Published as 503; branch on `meta.retryable` rather than on the status code. |
| 503 | Temporarily Unavailable | ImmobilienScout24 Austria could not be reached. Every attempt is made again on a fresh route before this is returned, so it is always retryable. The `failure_type` is one of `upstream_unreachable`, `transport_error`, `edge_blocked`, `rate_limited` or `attempts_exhausted`. Non-billable; a later request is worth making. |

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