Discover/Booli API
live

Booli APIbooli.se

Search active and sold Swedish property listings, get listing details, photos, area statistics, and price trends from Booli.se via 6 structured endpoints.

Endpoint health
verified 6d ago
get_listing_detail
search_sold_listings
get_listing_photos
search_listings_for_sale
get_area_statistics
6/6 passing latest checkself-healing
Endpoints
6
Updated
22d ago

What is the Booli API?

The Booli.se API provides access to Swedish real estate data across 6 endpoints, covering active listings, historical sold properties, listing photos, and area-level market statistics. The search_listings_for_sale endpoint accepts location queries and filters for price range, room count, rent, and property type, returning paginated results with coordinates, addresses, and list prices. Sold transaction history and 12-month price trend series are also available.

Try it
Page number for pagination.
Location search query (municipality, area, or street name, e.g. 'Stockholm', 'Göteborg', 'Nacka').
Maximum monthly rent/fee in SEK.
Maximum list price in SEK.
Maximum number of rooms.
Minimum list price in SEK.
Minimum number of rooms.
Property type filter. Accepted values: Lägenhet, Villa, Kedjehus-Parhus-Radhus, Fritidshus, Gård, Tomt/Mark.
Maximum living area in m².
Minimum living area in m².
api.parse.bot/scraper/62c0a0dc-f695-46ab-be29-04b903ed21c7/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/62c0a0dc-f695-46ab-be29-04b903ed21c7/search_listings_for_sale?page=1&query=Stockholm&max_rent=5000&max_price=5000000&max_rooms=5&min_price=1000000&min_rooms=2&object_types=L%C3%A4genhet&max_living_area=150&min_living_area=40' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace booli-se-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Booli.se Property SDK — search, drill-down, and market data."""
from parse_apis.booli.se_property_api import Booli, ObjectType, ListingNotFound

client = Booli()

# Search for apartments for sale in Stockholm (limit caps total items fetched)
for listing in client.listingsummaries.search_for_sale(
    query="Stockholm", object_types=ObjectType.APARTMENT, limit=3
):
    print(listing.street_address, listing.object_type, listing.tenure_form)

# Drill down: take one listing and get full details
summary = client.listingsummaries.search_for_sale(query="Nacka", limit=1).first()
if summary:
    detail = summary.details()
    print(detail.street_address, detail.construction_year, detail.residence_id)

    # Browse photos for that listing
    for photo in detail.photos.list(limit=3):
        print(photo.id, photo.primary_label, photo.width, photo.height)

# Typed error handling: catch ListingNotFound on an invalid ID
try:
    missing = client.listings.get(booli_id="9999999999")
    print(missing.street_address)
except ListingNotFound as exc:
    print(f"Listing not found: {exc.listing_id}")

# Area market statistics
stats = client.areastatistics.get(area_id="76")
print(stats.title, stats.description)

# Price trends for a property
trend = client.pricetrends.get(property_id="453126")
print(trend.title, trend.unit, trend.price_percentage_diff_description)

print("exercised: search_for_sale / details / photos.list / listings.get / areastatistics.get / pricetrends.get")
All endpoints · 6 totalmissing one? ·

Search for active property listings for sale across Sweden. Accepts a free-text location query (municipality, area, or street name). Returns paginated results ordered by most recently published. Each result includes address, price, object type, coordinates, and basic property attributes. Cloudflare-protected; transient blocks trigger proxy rotation.

Input
ParamTypeDescription
pageintegerPage number for pagination.
queryrequiredstringLocation search query (municipality, area, or street name, e.g. 'Stockholm', 'Göteborg', 'Nacka').
max_rentintegerMaximum monthly rent/fee in SEK.
max_priceintegerMaximum list price in SEK.
max_roomsintegerMaximum number of rooms.
min_priceintegerMinimum list price in SEK.
min_roomsintegerMinimum number of rooms.
object_typesstringProperty type filter. Accepted values: Lägenhet, Villa, Kedjehus-Parhus-Radhus, Fritidshus, Gård, Tomt/Mark.
max_living_areaintegerMaximum living area in m².
min_living_areaintegerMinimum living area in m².
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page number",
    "listings": "array of listing summary objects with booliId, streetAddress, objectType, listPrice, latitude, longitude, tenureForm, published, descriptiveAreaName, daysActive, url"
  },
  "sample": {
    "data": {
      "page": 1,
      "listings": [
        {
          "id": "6121470",
          "url": "/bostad/453126",
          "booliId": "6121470",
          "latitude": 58.5809718,
          "listPrice": {
            "raw": 1050000,
            "unit": "kr",
            "value": "1 050 000",
            "formatted": "1 050 000 kr"
          },
          "longitude": 16.1869314,
          "published": "2026-06-11 09:30:07",
          "daysActive": 0,
          "objectType": "Lägenhet",
          "tenureForm": "Bostadsrätt",
          "streetAddress": "Nelinsgatan 26",
          "descriptiveAreaName": "Söder"
        }
      ]
    },
    "status": "success"
  }
}

About the Booli API

Listing Search and Filtering

The search_listings_for_sale endpoint takes a required query parameter (a Swedish location name such as 'Stockholm' or 'Nacka') and optional filters including min_price, max_price, min_rooms, max_rooms, max_rent, and object_types (e.g. 'Lägenhet', 'Villa', 'Radhus'). Results are paginated via the page parameter and return an array of listing objects that include booliId, streetAddress, objectType, listPrice, and geographic coordinates (latitude, longitude). The search_sold_listings endpoint mirrors this interface for historical transactions, accepting the same query and page inputs.

Listing Detail and Photos

Once you have a booliId from search results, get_listing_detail returns the full property record: structured objects for rooms, listPrice, and livingArea (each with raw, formatted, value, and unit fields), plus objectType, tenureForm, streetAddress, constructionYear, and geographic coordinates. get_listing_photos takes the same listing_id and returns an array of image objects with id, primaryLabel, width, height, and alt text — useful for building property cards or detail views.

Area Statistics and Price Trends

get_area_statistics accepts a Booli area ID (e.g. '11' for Stockholm) and returns an areaInfo object containing a title, description, and an HTML-formatted market summary string. get_price_trends takes a property_id (the residenceId from a listing detail or a booliId) and returns an areaTrend object with periods (month ranges), a series array of named value sequences, type, and unit — representing how sold prices in the property's local area have moved over the past 12 months. A pricePercentageDiff object with a description field is also returned, though it may be null for some properties.

Reliability & maintenanceVerified

The Booli API is a managed, monitored endpoint for booli.se — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when booli.se changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official booli.se API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a Swedish property search tool filtered by price range, room count, and property type using search_listings_for_sale.
  • Analyse historical transaction prices in a specific Swedish city or neighbourhood via search_sold_listings.
  • Display a property detail page with structured room, area, price, and tenure data from get_listing_detail.
  • Populate a photo gallery for a listing using image dimensions and alt text from get_listing_photos.
  • Show 12-month local price trend charts for a specific property using the series and periods arrays from get_price_trends.
  • Generate area-level market summaries for Swedish locations using get_area_statistics with known Booli area IDs.
  • Track asking vs. sold price relationships by combining search_sold_listings results with get_listing_detail data.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Booli have an official developer API?+
Booli previously offered an official partner API at api.booli.se, but public access to that programme has been discontinued. New integrations are not accepted through the official channel.
What does `get_listing_detail` return beyond what's in search results?+
get_listing_detail returns structured sub-objects for rooms, listPrice, and livingArea — each with raw, formatted, value, and unit fields — plus tenureForm, constructionYear, and precise coordinates. Search results return a flatter subset of these fields sufficient for list views but without the structured value objects.
Can I filter sold listings by price range or property type the way I can with active listings?+
search_sold_listings currently accepts only query and page parameters — it does not support min_price, max_price, object_types, or room-count filters. Active listing search via search_listings_for_sale supports those filters. You can fork this API on Parse and revise it to add filter parameters to the sold listings endpoint.
Does the API cover rental listings or new-development projects?+
Not currently. The API covers for-sale listings and sold transactions. Booli.se does list some new-development (nyproduktion) projects on site, but those are not exposed as a separate endpoint here. You can fork this API on Parse and revise it to add a new-development search endpoint.
How fresh is the listing data, and are all Swedish regions covered?+
Results are ordered by most recently published, so freshness tracks Booli's own index. Coverage is Sweden-wide — any location name accepted by the Booli site can be passed as the query parameter. Rural areas with low listing volumes will return fewer results, not an error.
Page content last updated . Spec covers 6 endpoints from booli.se.
Related APIs in Real EstateSee all →
hemnet.se API
Search and browse real estate listings from Sweden's leading property portal, retrieving comprehensive property details including prices, specifications, and availability. Access detailed information about thousands of homes and properties to find your next Swedish property or compare market listings.
blocket.se API
Search and browse second-hand items, cars, and housing listings across Blocket.se and Qasa.se, then retrieve detailed information about any listing that interests you. Get instant access to comprehensive product details, pricing, and categorized inventory across multiple marketplaces in one unified interface.
zoopla.co.uk API
Search for properties available for sale or rent, view detailed listing information, check sold house prices, and find local estate agents all in one place. Get access to live marketplace data to help you research properties, compare prices, and connect with agents on the Zoopla platform.
trulia.com API
Search real estate listings for properties available for sale, rent, or recently sold, and access detailed information like property photos, price history, nearby schools, and local amenities. Compare similar homes, calculate mortgage estimates, and make informed decisions with comprehensive property data all in one place.
property24.com API
Search and explore properties across South Africa through Property24's comprehensive marketplace, accessing detailed listings, suburb trends, and historical sold prices to inform your property decisions. Use location autocomplete to quickly find neighborhoods and compare market insights all in one place.
funda.nl API
Search for property listings on Funda.nl, the largest Dutch real estate platform. Access prices, addresses, property details, and agent contact information across Dutch cities and neighbourhoods. Supports paginated browsing and bulk retrieval of listings by area.
domain.com.au API
Search and compare property listings for sale, rent, or sold properties across Australia, view detailed property information and agent profiles, and explore suburb insights to make informed real estate decisions. Access comprehensive data on agents, neighborhoods, and properties all in one place.
imot.bg API
Search real estate listings for sale or rent on Bulgaria's imot.bg marketplace, view detailed property information, and compare average prices to make informed decisions. Access search filters and options to refine your property search by location, price, and other criteria.