APIs / Real estate / Etuovi

1 credit per call6 endpoints25 datapoints

Etuovi API

Etuovi API for Finnish property search, listings, real estate agencies, agents and location autocomplete as JSON, sale or rent. 1 credit per successful call.

Etuovi
GET/v1/etuovi/search?listing_type=sale&location=Tampere&room_counts[]=2&max_price=200000
{
  "success": true,
  "data": {
    "items": [
      {
        "id": 2770003,
        "friendly_id": "20831797",
        "url": "https://www.etuovi.com/kohde/20831797",
        "listing_type": "sale",
        "address_line_1": "Ristinarkuntie 20",
        "address_line_2": "Janka Tampere",
        "location": "Ristinarkuntie 20 Janka Tampere",
        "geo": {
          "lat": 61.488856,
          "lng": 23.854849
        },
        "year_built": 2019,
        "published_at": "2026-11-12T13:20:04+00:00",
        "updated_at": "2026-11-12T13:20:04+00:00",
        "price": {
          "amount": 154000,
          "currency": "EUR",
          "is_share_price": false
        },
        "area": 37.5,
        "total_area": 37.5,
        "room_count": {
          "count": 2,
          "type": "TWO_ROOMS"
        },
        "room_structure": "2h, k, kph, lasit. parveke",
        "floor": 4,
        "floor_count": 7,
        "property_type": "RESIDENTIAL",
        "property_subtype": "APARTMENT_HOUSE",
        "new_building": false,
        "image": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/3/2770003/0e76b9541118d347871c0e0e51d244c4/25467491564731048a0ddb8f622aaf04/ORIGINAL.jpeg",
        "office": {
          "id": 2681,
          "name": "Herrainmäki | Sami Nyman LKV Oy",
          "logo": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/office/logo/customerlogo2681_1.png",
          "url": "https://www.herrainmaki.fi/"
        },
        "agent": {
          "name": "Nyman Sami",
          "image": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/agent/import/41383e893b76788fdf9f4f871772c49e/f1b0debe73c9a6b5165535f60feeb738/ORIGINAL.jpeg"
        },
        "preview_images": [
          "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/3/2770003/0e76b9541118d347871c0e0e51d244c4/9256ff8d83f976fc77f78f15e73b7c9f/ORIGINAL.jpeg",
          "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/3/2770003/0e76b9541118d347871c0e0e51d244c4/4fdbabe5d0e06625e47cf35c31f253f8/ORIGINAL.jpeg"
        ]
      },
      {
        "id": 2769992,
        "friendly_id": "628844",
        "url": "https://www.etuovi.com/kohde/628844",
        "listing_type": "sale",
        "address_line_1": "Sarvijaakonkatu 23 B",
        "address_line_2": "Kaleva Tampere",
        "location": "Sarvijaakonkatu 23 B Kaleva Tampere",
        "geo": {
          "lat": 61.492977,
          "lng": 23.812435
        },
        "year_built": 2018,
        "published_at": "2026-11-12T13:11:13+00:00",
        "updated_at": "2026-11-12T13:11:13+00:00",
        "price": {
          "amount": 189000,
          "currency": "EUR",
          "is_share_price": false
        },
        "area": 45.5,
        "total_area": 45.5,
        "room_count": {
          "count": 2,
          "type": "TWO_ROOMS"
        },
        "room_structure": "2h + kt + vh + p",
        "floor": 5,
        "floor_count": 6,
        "property_type": "RESIDENTIAL",
        "property_subtype": "APARTMENT_HOUSE",
        "new_building": false,
        "image": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/992/2769992/0e76b9541118d347871c0e0e51d244c4/665bf4765b6e48b0dd346328d2b590fd/ORIGINAL.jpeg",
        "office": {
          "id": 420,
          "name": "OP Koti Sisä-Suomi Oy LKV, Tampere Keskusta",
          "logo": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/etuovi/customer/logo/customerImage23_20261020_125652.jpeg",
          "url": "https://op-koti.fi?cmpid=.opkoti..huom.1.etuovi.banner.yrityslogo.ha_jn_opkoti_valitys"
        },
        "agent": {
          "name": "Heli Jussila",
          "image": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/agent/import/41383e893b76788fdf9f4f871772c49e/e7eac067c6d52df6796cf7eae47b13f1/ORIGINAL.jpeg"
        },
        "preview_images": [
          "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/992/2769992/0e76b9541118d347871c0e0e51d244c4/df5f314cbd1f1bd5087d405cc1eb4091/ORIGINAL.jpeg"
        ]
      },
      {
        "id": 2769973,
        "friendly_id": "67432227",
        "url": "https://www.etuovi.com/kohde/67432227",
        "listing_type": "sale",
        "address_line_1": "Hallituskatu 15",
        "address_line_2": "Keskusta Tampere",
        "location": "Hallituskatu 15 Keskusta Tampere",
        "geo": {
          "lat": 61.496086,
          "lng": 23.754608
        },
        "year_built": 1962,
        "published_at": "2026-11-12T12:54:05+00:00",
        "updated_at": "2026-11-12T12:54:05+00:00",
        "price": {
          "amount": 162000,
          "currency": "EUR",
          "is_share_price": false
        },
        "area": 36,
        "total_area": 36,
        "room_count": {
          "count": 2,
          "type": "TWO_ROOMS"
        },
        "room_structure": "2h, kk, kph / wc, vh",
        "floor": 8,
        "floor_count": 8,
        "property_type": "RESIDENTIAL",
        "property_subtype": "APARTMENT_HOUSE",
        "new_building": false,
        "image": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/973/2769973/0e76b9541118d347871c0e0e51d244c4/e6144c7ae5a375b4de875e03405b953c/ORIGINAL.jpeg",
        "office": {
          "id": 3297,
          "name": "Bo LKV Tampere | Valtteri Lampinen LKV Oy",
          "logo": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/etuovi/customer/logo/customerImage68v2.jpeg",
          "url": "https://bo.fi/myymassa/"
        },
        "agent": {
          "name": "Valtteri Lampinen",
          "image": "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/agent/import/41383e893b76788fdf9f4f871772c49e/957bc6f22f9717a41980a8cf4e48b1b4/ORIGINAL.png"
        },
        "preview_images": [
          "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/973/2769973/0e76b9541118d347871c0e0e51d244c4/eef287a17928a479b80449db49b94da4/ORIGINAL.jpeg",
          "https://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/973/2769973/0e76b9541118d347871c0e0e51d244c4/9898dfb64598af0f0e5f9c35e5f882af/ORIGINAL.png"
        ]
      }
    ],
    "pagination": {
      "page": 1,
      "per_page": 30,
      "total": 752,
      "total_pages": 26,
      "has_next": true
    }
  },
  "meta": {
    "endpoint_family": "search",
    "location": {
      "type": "CITY",
      "code": "FI_PIRKANMAA_TAMPERE",
      "name": "Tampere",
      "full_name": "Tampere"
    },
    "dropped_by_filter": 0,
    "request_id": "req_04ca53d239f44c81a3c9c0828fa83c82",
    "credits_charged": 1,
    "credits_remaining": 1872
  }
}
200 OKJSONX-Credits-Used: 1
Recorded from our API and shortened.

Sample data

What one call returns

A recorded run of search: the fields and shapes you will get, shortened to 3 items.

#idintegerfriendly_idstringurlurllisting_typestringaddress_line_1stringaddress_line_2stringlocationstringgeoobjectyear_builtintegerpublished_atstringupdated_atstringpriceobjectareanumbertotal_areanumberroom_countobjectroom_structurestringfloorintegerfloor_countintegerproperty_typestringproperty_subtypestringnew_buildingbooleanimageurlofficeobjectagentobjectpreview_imagesstring[]
1277000320831797https://www.etuovi.com/kohde/20831797saleRistinarkuntie 20Janka TampereRistinarkuntie 20 Janka Tampere{2 fields}20192026-11-12T13:20:04+00:002026-11-12T13:20:04+00:00{3 fields}37.537.5{2 fields}2h, k, kph, lasit. parveke47RESIDENTIALAPARTMENT_HOUSEfalsehttps://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/3/2770003/0e76b9541118d347871c0e0e51d244c4/25467491564731048a0ddb8f622aaf04/ORIGINAL.jpeg{4 fields}{2 fields}[2 items]
22769992628844https://www.etuovi.com/kohde/628844saleSarvijaakonkatu 23 BKaleva TampereSarvijaakonkatu 23 B Kaleva Tampere{2 fields}20182026-11-12T13:11:13+00:002026-11-12T13:11:13+00:00{3 fields}45.545.5{2 fields}2h + kt + vh + p56RESIDENTIALAPARTMENT_HOUSEfalsehttps://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/992/2769992/0e76b9541118d347871c0e0e51d244c4/665bf4765b6e48b0dd346328d2b590fd/ORIGINAL.jpeg{4 fields}{2 fields}[1 item]
3276997367432227https://www.etuovi.com/kohde/67432227saleHallituskatu 15Keskusta TampereHallituskatu 15 Keskusta Tampere{2 fields}19622026-11-12T12:54:05+00:002026-11-12T12:54:05+00:00{3 fields}3636{2 fields}2h, kk, kph / wc, vh88RESIDENTIALAPARTMENT_HOUSEfalsehttps://d3ls91xgksobn.cloudfront.net/800x600/etuovimedia/images/property/import/973/2769973/0e76b9541118d347871c0e0e51d244c4/e6144c7ae5a375b4de875e03405b953c/ORIGINAL.jpeg{4 fields}{2 fields}[2 items]

Recorded from our API · 3 items shown · 25 datapoints per itemGET /v1/etuovi/search?listing_type=sale&location=Tampere&room_counts[]=2&max_price=200000

25 datapoints

Identity

  • idinteger
  • friendly_idstring
  • listing_typestring
  • property_typestring
  • property_subtypestring

Contact

  • urlurl
  • agentobject

Location

  • address_line_1string
  • address_line_2string
  • locationstring
  • areanumber
  • total_areanumber

Reputation

  • imageurl
  • preview_imagesstring[]

Price

  • priceobject

Other

  • geoobject
  • year_builtinteger
  • published_atstring
  • updated_atstring
  • room_countobject
  • room_structurestring
  • floorinteger
  • floor_countinteger
  • new_buildingboolean
  • officeobject

Playground

Run this API

cURLshell
curl "https://api.perceptlayer.com/v1/etuovi/search?listing_type=sale&location=Tampere&room_counts[]=2&max_price=200000" \
  -H "X-API-Key: $API_KEY"

Etuovi · 6 endpoints

Endpoints

Every endpoint takes the same key. Open one for its parameters and an example request.

EndpointRequired parametersCost
GET/v1/etuovi/agencies
none+2 optional
1 credit
GET/v1/etuovi/agency
id+5 optional
1 credit
GET/v1/etuovi/agent
realtor_id+1 optional
1 credit
GET/v1/etuovi/autocomplete
query
1 credit
GET/v1/etuovi/listing
id+1 optional
1 credit
GET/v1/etuovi/search
none+17 optional
1 credit

Overview

About the Etuovi API

What you can get

The Etuovi API returns Finnish property data from Etuovi as JSON through 6 endpoints.

  • Search: search takes a listing_type (sale or rent), with location, location_type, location_code, property_type (residential, plot, leisure, estate or other), repeatable residential_type[] (apartment_house, row_house, semi_detached_house, detached_house, separate_house, balcony_access_block or wooden_house_apartment) and room_counts[] (1 to 5 or more_than_five), min_price, max_price, min_area, max_area, min_year, max_year, agency_id, sort (newest, oldest, price_asc, price_desc, area_asc, area_desc, year_asc or year_desc), page and per_page (30, 50 or 100).
  • Listings: listing takes an id, with listing_type.
  • Agencies and agents: agencies takes a location or name; agency takes an id, with include_listings, listing_type, property_type, page and per_page; agent takes a realtor_id, with include_listings.
  • Locations: autocomplete takes a query.

The recorded search for two-room homes for sale in Tampere up to 200,000 EUR returns data.items, each with id, friendly_id, url, listing_type, address_line_1, location, geo, year_built, published_at, price, area, total_area, room_count, room_structure, floor, property_type, property_subtype, new_building, office and agent. It also returns pagination with total (752), total_pages and has_next, and meta.location with the resolved location type, code and name.

How a call works

Search a city: GET /v1/etuovi/search?listing_type=sale&location=Tampere&room_counts[]=2&max_price=200000 with your key in the X-API-Key header. Page with page and per_page while has_next is true. To see who is selling, agencies?location=Tampere lists the agencies there, and agency returns one with its listings when you pass include_listings. Every successful call costs 1 credit; failed calls cost nothing.

Real estateJSONRESTMCP

More real estate APIs

Use cases

Track asking prices for flats in Tampere, Helsinki and other Finnish cities

Use the Etuovi API to track asking prices for flats in Tampere, Helsinki and other Finnish cities

Compare homes by `year_built`, `room_structure` and area

Use the Etuovi API to compare homes by `year_built`, `room_structure` and area

Watch summer cottages and plots with `property_type=leisure` or `plot`

Use the Etuovi API to watch summer cottages and plots with `property_type=leisure` or `plot`

Build an agency directory for a city with `agencies`

Use the Etuovi API to build an agency directory for a city with `agencies`

FAQ

Questions

Do I need an Etuovi account?

No. You call this Etuovi API with your Perceptlayer key in the `X-API-Key` header, with no Etuovi login.

How much does the Etuovi API cost?

Each successful call costs one credit. New accounts get free credits to start, and credit packs bring the price down as you scale.

What format are responses in?

Every endpoint returns JSON, with no HTML parsing on your side.

How do I filter by room count?

Repeat `room_counts[]` once per value, for example `room_counts[]=2`. `residential_type[]` works the same way.

Should I build an Etuovi scraper instead?

You can, but an Etuovi scraper is code you maintain: page changes break it, requests get blocked, and Etuovi's terms govern how you collect data. The Etuovi API gives you 6 endpoints of named JSON fields for 1 credit per successful call, and failed calls cost nothing. A scraper makes sense only for data these endpoints don't return, so check the response in the playground on this page first.

Try the Etuovi API with 100 free credits

No credit card. Failed calls are never billed.