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

Etuovi Listing API Documentation

GET https://scrappa.co/api/etuovi/listing

Etuovi Listing API returns one listing: price in EUR, debt-free price, price per square meter, fees, living and total area, rooms, bedrooms when given, floor, year built, condition, heating, features, room descriptions, address with coordinates and location codes, the housing company with plot, energy certificate, features and renovations, all images, floor plans, links, the agent and the agency. Send the friendly_id from search as id. Sale and rent use the same id format, so send the matching listing_type. A missing value is null. For rent the price is the monthly rent and the response adds deposit, agreement type, pets, smoking, availability and special terms. A private seller or lessor is not returned as an agent, and phone numbers are never returned.

Etuovi Listing API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/etuovi/listing
Auth header
x-api-key
Cost
1 credit/request
id = 1234567890
Response preview
200 OK
{
    "data": {
        "id": 2751484,
        "geo": {
            "lat": 60.18451,
            "lng": 24.94434,
            "accuracy": "ADDRESS"
        },
        "url": "https://www.etuovi.com/kohde/80541041",
        "area": 46,
        "fees": [
            {
                "type": "HOUSING_COMPANY_MAINTENANCE_CHARGE",
                "amount": 239.2,
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

1 required parameter needed before sending a request.

1 optional filter available.

id string Required

Listing id (friendly_id) from search. Example: 80541041.

Example value 1234567890
listing_type string Optional

sale (default) or rent. It must match the listing.

Example value example

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": {
        "id": 2751484,
        "geo": {
            "lat": 60.18451,
            "lng": 24.94434,
            "accuracy": "ADDRESS"
        },
        "url": "https://www.etuovi.com/kohde/80541041",
        "area": 46,
        "fees": [
            {
                "type": "HOUSING_COMPANY_MAINTENANCE_CHARGE",
                "amount": 239.2,
                "period": "MONTH",
                "included_in_overall_cost": null
            },
            {
                "type": "SAUNA",
                "amount": 11,
                "period": "MONTH",
                "included_in_overall_cost": null
            }
        ],
        "agent": {
            "name": "Tuomo Ik\u00e4l\u00e4inen",
            "image": "https://images.example.com/800x600/etuovimedia/images/agent/import/41383e893b76788fdf9f4f871772c49e/fb9d63575dac718841c4a148ab362a04/ORIGINAL.png",
            "title": "yritt\u00e4j\u00e4, LKV, LVV, KTM",
            "is_premium": false,
            "realtor_id": 1888
        },
        "floor": 3,
        "links": [],
        "price": {
            "amount": 242000,
            "period": null,
            "currency": "EUR",
            "is_share_price": false
        },
        "rooms": {
            "type": "TWO_ROOMS",
            "count": 2,
            "structure": "2 h, avok, kph, et"
        },
        "images": [
            {
                "id": 88485594,
                "url": "https://images.example.com/1200x800/etuovimedia/images/property/import/484/2751484/0e76b9541118d347871c0e0e51d244c4/e6bc40ad5a4e9b4751ab2058ad81b44e/ORIGINAL.jpeg",
                "type": "OTHER"
            },
            {
                "id": 88485596,
                "url": "https://images.example.com/1200x800/etuovimedia/images/property/import/484/2751484/0e76b9541118d347871c0e0e51d244c4/f03d5d0dda8c3ddf1ed3a4c776c73482/ORIGINAL.jpeg",
                "type": "OTHER"
            }
        ],
        "office": {
            "id": 3421,
            "city": "Helsinki",
            "logo": null,
            "name": "Maininki LKV",
            "street": "Vesimyllyntie 4a",
            "postal_code": "00920"
        },
        "status": "PUBLISHED",
        "address": {
            "region": "Uusimaa",
            "street": "Kolmas Linja 31 B",
            "country": "Suomi",
            "district": "Kallio",
            "apartment": "B",
            "post_area": "HELSINKI",
            "postal_code": "00530",
            "house_number": "31",
            "municipality": "Helsinki"
        },
        "heating": {
            "systems": [
                "DISTRICT_HEATING"
            ],
            "description": "Kaukol\u00e4mp\u00f6"
        },
        "bedrooms": null,
        "features": [],
        "condition": "GOOD",
        "fees_note": null,
        "total_area": 46,
        "updated_at": "2026-10-25T15:00:36+00:00",
        "year_built": 1938,
        "description": "Kolmas Linja 31:ss\u00e4 on nyt myynniss\u00e4 valoisa, siisti kaksio Kallion syd\u00e4mess\u00e4. T\u00e4m\u00e4 asunto on ihanteellinen valinta, jos arvostat keskeist\u00e4 sijaintia kantakaupungissa, muuttovalmis...",
        "floor_count": 6,
        "floor_plans": [
            "https://images.example.com/1200x800/etuovimedia/images/property/import/484/2751484/0e76b9541118d347871c0e0e51d244c4/8eee63967a574cafa16a016c1092e8ca/ORIGINAL.jpeg"
        ],
        "friendly_id": "80541041",
        "availability": "Heti",
        "listing_type": "sale",
        "new_building": false,
        "open_bidding": false,
        "published_at": "2026-10-25T15:00:36+00:00",
        "price_per_sqm": 5260.87,
        "property_type": "RESIDENTIAL",
        "location_codes": {
            "region": "FI_UUSIMAA",
            "district": "FI_UUSIMAA_HELSINKI_KALLIO",
            "post_code": "FI_UUSIMAA_HELSINKI_00530_HELSINKI",
            "municipality": "FI_UUSIMAA_HELSINKI"
        },
        "ownership_type": "OWN",
        "debt_free_price": 242000,
        "housing_company": {
            "name": "Asunto Oy Aurinkola",
            "manager": "Manager Oy, Test Person, 000...",
            "features": [
                "ATTIC_CABIN",
                "ELEVATOR",
                "LAUNDERETTE",
                "DRYING_ROOM",
                "CELLAR_CABIN",
                "SPORTS_EQUIPMENT_STORAGE",
                "SAUNA"
            ],
            "plot_area": 862,
            "maintainer": "Huoltoyhti\u00f6",
            "other_info": "Muuta: Taloyhti\u00f6n kiinnitykset: 276\u00a0000\u00a0\u20ac....",
            "floor_count": 6,
            "renovations_done": "2025 Kylpyhuoneiden kuntoarvio\n2014 L\u00e4mm\u00f6nvaihtime...",
            "plot_holding_type": "OWN",
            "energy_certificate": "E18_E",
            "renovations_planned": "2026 Huoneistojen m\u00e4rk\u00e4tilat (500 000 \u20ac), palovaro...",
            "energy_certificate_note": "Energialuokka: E2018, Energiatodistuksen voimassaoloaika: 30.01.2036"
        },
        "property_subtype": "APARTMENT_HOUSE",
        "room_descriptions": {
            "bedroom": "Sein\u00e4materiaalit: maalattu",
            "living_room": "Sein\u00e4materiaalit: maalattu"
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "listing"
    },
    "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": {
        "id": [
            "The id field is required."
        ]
    },
    "message": "The request validation failed"
}
404

Not Found

No listing has this id for this listing type. This response is not billable.

{
    "meta": {
        "billable": false,
        "retryable": false,
        "endpoint_family": "listing"
    },
    "error": {
        "code": "NOT_FOUND",
        "message": "The requested resource was not found."
    },
    "success": false
}
503

Upstream Unavailable

Etuovi 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": "listing"
    },
    "error": {
        "code": "UPSTREAM_UNAVAILABLE",
        "message": "Etuovi 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.