Skip to content
Scrappa Get API key
Oikotie API 1 credit/request

Oikotie Search API Documentation

GET https://scrappa.co/api/oikotie/search

Oikotie Search API lists properties for sale or for rent in Finland. Pick a place with the autocomplete route and send its location_id, location_type and location_name together. Without a place the search covers the whole country. Prices are in EUR, rent is per month. A missing value is null, never 0.

Every item is checked against your filters. Items that break a filter are dropped and counted in meta.dropped_by_filter, so a page can hold fewer items than the limit. A page past the last page returns an empty page with has_next false, never the first page under another number. A valid empty result is billed. A failed request is not billable. Oikotie has no bathrooms filter: the bathrooms parameter is rejected with a validation error.

Each item carries the price, living area, rooms, build year, fees, address, coordinates, images and the listing agency when the listing has one. Use agency.id with the agency route.

Oikotie Search API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/oikotie/search
Auth header
x-api-key
Cost
1 credit/request
Response preview
200 OK
{
    "data": {
        "items": [
            {
                "id": 24755858,
                "url": "https://asunnot.oikotie.fi/myytavat-asunnot/helsinki/24755858",
                "fees": {
                    "currency": "EUR",
                    "maintenance": 166.4,
                    "security_deposit": null
                },
                "size": {
                    "max": 32,
                    "min": 32,
...

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.

18 optional filters available.

listing_type string Optional

sale (default) or rent.

Example value example
location_id integer Optional

Place id from the autocomplete route. Send with location_type and location_name.

Example value 1234567890
location_type string Optional

Place type from the autocomplete route: city, district, street, region, postcode or country.

Example value example
location_name string Optional

Exact place name from the autocomplete route.

Example value example
price_min integer Optional

Minimum price in EUR (rent: per month).

Example value 10
price_max integer Optional

Maximum price in EUR.

Example value 10
size_min number Optional

Minimum living area in square meters.

Example value 10
size_max number Optional

Maximum living area in square meters.

Example value 10
rooms array Optional

Exact room counts, for example 2 or 2,3.

Example value ["example"]
building_type array Optional

One or more of apartment_building, row_house, house, leisure, detached, semi_detached, other, loft_house, wood_apartment_house.

Example value ["example"]
habitation_type array Optional

Sale only. One or more of ownership, right_of_occupancy, part_ownership.

Example value ["example"]
new_development boolean Optional

true to return new developments only.

Example value true
construction_year_min integer Optional

Earliest build year.

Example value 10
construction_year_max integer Optional

Latest build year.

Example value 10
lot_size_min integer Optional

Sale only. Minimum lot size in square meters.

Example value 10
sort string Optional

published_desc (default), published_asc, price_asc, price_desc, size_asc or size_desc.

Example value relevance
page integer Optional

One-based page number. Default 1.

Example value 1
limit integer Optional

Results per page, 1 to 100. Default 24.

Example value 10

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

data meta success
JSON Response
200 OK
{
    "data": {
        "items": [
            {
                "id": 24755858,
                "url": "https://asunnot.oikotie.fi/myytavat-asunnot/helsinki/24755858",
                "fees": {
                    "currency": "EUR",
                    "maintenance": 166.4,
                    "security_deposit": null
                },
                "size": {
                    "max": 32,
                    "min": 32,
                    "text": "32 m\u00b2"
                },
                "floor": 2,
                "price": {
                    "text": "139 000 \u20ac",
                    "amount": 139000,
                    "period": null,
                    "currency": "EUR"
                },
                "rooms": 1,
                "agency": {
                    "id": 14641782,
                    "logo": "https://cdn.asunnot.oikotie.fi/V8CRBPOmtfRRK3D6h0fI0b4cmMQ=/fit-in/350x70/ot-real-estate-mediabank-prod/513/195/source/214591315",
                    "name": "Bo LKV | Espoo"
                },
                "images": [
                    {
                        "large": "https://cdn.asunnot.oikotie.fi/D0VYWwrzI0owOi936_jOuFJc6ow=/full-fit-in/708x444/filters:background_color(white):format(jpeg):quality(60)/ot-real-estate-mediabank-prod/613/365/source/234563316",
                        "thumbnail": "https://cdn.asunnot.oikotie.fi/jHX2dSF5xjuHW2ZK0bXo_rVd2Uc=/full-fit-in/330x206/filters:background_color(white):format(jpeg)/ot-real-estate-mediabank-prod/613/365/source/234563316"
                    }
                ],
                "visits": 0,
                "address": {
                    "city": "Helsinki",
                    "street": "Ruusutarhantie 5 D",
                    "country": "Suomi",
                    "district": "Haaga",
                    "postcode": "00300"
                },
                "lot_size": 2586,
                "condition": null,
                "published": "2026-10-25T16:57:55Z",
                "build_year": 1960,
                "coordinates": {
                    "latitude": 60.2079,
                    "longitude": 24.8877
                },
                "description": "Talon ylimm\u00e4ss\u00e4 kerroksessa ilta-aurinko l\u00f6yt\u00e4\u00e4 l\u00e4nteen avautuvalle parvekkeelle...",
                "floor_count": 2,
                "listing_type": "sale",
                "next_viewing": null,
                "building_type": "apartment_building",
                "price_changed": null,
                "price_per_sqm": 4343.75,
                "new_development": false,
                "room_configuration": "1h, kt, alkovi, kph, et, parveke (yj 1 h + kk + parveke)"
            }
        ],
        "pagination": {
            "page": 1,
            "limit": 24,
            "total": 8191,
            "has_next": true,
            "total_pages": 342,
            "total_is_estimate": false
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search",
        "dropped_by_filter": 0
    },
    "success": true
}

Errors

Handle these documented responses before retrying or showing customer-facing failures.

422

Validation Error

A required parameter or a value is invalid. This response is not billable.

{
    "errors": {
        "sort": [
            "The selected sort is invalid."
        ]
    },
    "message": "The request validation failed"
}
503

Upstream Unavailable

Oikotie could not be reached or returned data that does not match the request. This response is not billable and is retryable.

{
    "meta": {
        "billable": false,
        "retryable": true,
        "endpoint_family": "search"
    },
    "error": {
        "code": "UPSTREAM_UNAVAILABLE",
        "message": "Oikotie could not be reached. Please retry shortly."
    },
    "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.