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>
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
This endpoint has no required query parameters.
40 optional filters available.
string
Optional
Deal type. One of: BUY, RENT, LEASE, LEASEHOLD, TEMPORARY_RENT. Defaults to RENT. Several values are comma separated.
example
string
Optional
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.
example
string
Optional
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.
example
string
Optional
One of: RESIDENTIAL, COMMERCIAL. Defaults to RESIDENTIAL.
example
string
Optional
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.
US
string
Optional
Four digit Austrian postcode.
example
string
Optional
Free-text keywords.
running shoes
number
Optional
Minimum price in euro (monthly for rent).
10
number
Optional
Maximum price in euro (monthly for rent).
10
number
Optional
Minimum number of rooms.
10
number
Optional
Maximum number of rooms.
10
number
Optional
Minimum living area in square meters.
10
number
Optional
Maximum living area in square meters.
10
number
Optional
Minimum plot area in square meters.
10
number
Optional
Maximum plot area in square meters.
10
number
Optional
Minimum price per square meter.
10
number
Optional
Maximum price per square meter.
10
string
Optional
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.
example
string
Optional
One of: NEWBUILDING, OLDBUILDING.
example
string
Optional
Outdoor space. One of: BALCONY, GARDEN, LOGGIA, TERRACE. Several values are comma separated.
example
string
Optional
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.
example
string
Optional
One of: FULL, PART.
example
string
Optional
One of: LIFT, FREIGHT_LIFT.
example
string
Optional
One of: HANDICAPPED_ACCESSIBLE, SENIOR_CARE, SUITABLE_FOR_WHEELCHAIRS. Several values are comma separated.
example
string
Optional
One of: BATHTUBE, BIDET, SHOWER, URINAL, WINDOW. Several values are comma separated.
example
string
Optional
One of: MASSIVE, PREFABRICATED, WOOD. Several values are comma separated.
example
number
Optional
Minimum number of parking spaces.
10
string
Optional
Public transport nearby. One of: BUS, CABLE_CAR, FERRY, REGIONAL_TRAIN, SUBWAY, TRAM, URBAN_TRAIN. Several values are comma separated.
example
boolean
Optional
Set false for listings without agent commission.
true
boolean
Optional
Set true for private listings only.
true
boolean
Optional
Set true for new-build projects only.
true
boolean
Optional
Set true for investment properties only.
true
boolean
Optional
Set true for forced sales only.
true
boolean
Optional
Set true for short-term rentals only.
true
boolean
Optional
Set true for holiday homes only.
true
boolean
Optional
Set true for listings that need a financial contribution.
true
string
Optional
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.
relevance
integer
Optional
Listings per page, 1 to 200. Defaults to 50.
10
integer
Optional
Offset of the first listing, starting at 0.
10
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"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
Handle these documented responses before retrying or showing customer-facing failures.
Not Found
The requested listing, agency or place does not exist. Non-billable and not retryable.
{
"meta": {
"billable": false,
"retryable": false
},
"error": {
"code": "NOT_FOUND",
"message": "The requested ImmobilienScout24 Austria resource was not found.",
"failure_type": "not_found"
},
"success": false
}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.
{
"errors": {
"estate_type": [
"The estate_type field contains an unsupported value: FOO."
]
},
"message": "The request validation failed"
}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.
{
"meta": {
"billable": false,
"retryable": false
},
"error": {
"code": "UPSTREAM_REJECTED",
"message": "ImmobilienScout24 Austria could not accept this request. Please check the filters and retry.",
"failure_type": "invalid_request"
},
"success": false
}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.
{
"meta": {
"billable": false,
"retryable": true
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The ImmobilienScout24 Austria API is temporarily unavailable. Please retry.",
"failure_type": "transport_error"
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.