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.
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.
18 optional filters available.
string
Optional
sale (default) or rent.
example
integer
Optional
Place id from the autocomplete route. Send with location_type and location_name.
1234567890
string
Optional
Place type from the autocomplete route: city, district, street, region, postcode or country.
example
string
Optional
Exact place name from the autocomplete route.
example
integer
Optional
Minimum price in EUR (rent: per month).
10
integer
Optional
Maximum price in EUR.
10
number
Optional
Minimum living area in square meters.
10
number
Optional
Maximum living area in square meters.
10
array
Optional
Exact room counts, for example 2 or 2,3.
["example"]
array
Optional
One or more of apartment_building, row_house, house, leisure, detached, semi_detached, other, loft_house, wood_apartment_house.
["example"]
array
Optional
Sale only. One or more of ownership, right_of_occupancy, part_ownership.
["example"]
boolean
Optional
true to return new developments only.
true
integer
Optional
Earliest build year.
10
integer
Optional
Latest build year.
10
integer
Optional
Sale only. Minimum lot size in square meters.
10
string
Optional
published_desc (default), published_asc, price_asc, price_desc, size_asc or size_desc.
relevance
integer
Optional
One-based page number. Default 1.
1
integer
Optional
Results per page, 1 to 100. Default 24.
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": {
"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.
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"
}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.