# Booli Sold Prices Search API

<p>Search Booli's `GET /api/booli/sold` endpoint for sold homes (slutpriser) with the final price, sold date and price per square metre. Rows recorded from land-registry transactions have no `booli_id` but are real sales and are returned with their `origin_id`, `residence_id` and url. Use `residence_id` with `GET /api/booli/sold-properties` for the full sale history of a home.</p>

- **Documentation:** [https://scrappa.co/docs/booli-api/booli_sold](https://scrappa.co/docs/booli-api/booli_sold)
- **API group:** Booli API
- **Endpoint:** `GET https://scrappa.co/api/booli/sold`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `area_ids` | string | Yes | Comma-separated Booli area ids, for example 1 for Stockholm kommun. Find ids with /api/booli/areas |
| `sort` | string | No | Sort key, one of soldDate, created, priceDiffPct, soldPrice, rooms, livingArea, soldSqmPrice, plotArea, postAddress. Defaults to soldDate |
| `ascending` | boolean | No | true or false. Each sort key is published in specific directions only; an unpublished combination returns 422 |
| `page` | integer | No | Page number, default 1. page * limit may not exceed 35000 |
| `limit` | integer | No | Results per page, default 35, maximum 100 |
| `object_type` | string | No | Comma-separated list of: Lägenhet, Villa, Kedjehus-Parhus-Radhus, Fritidshus, Gård, Tomt/Mark |
| `amenities` | string | No | Comma-separated list of: hasBalconyOrPatio, hasFireplace, buildingHasElevator |
| `extend_areas` | string | No | One of: 1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 50, 100 |
| `min_sold_date` | string | No | Date formatted YYYY-MM-DD |
| `max_sold_date` | string | No | Date formatted YYYY-MM-DD |
| `min_rooms` | string | No | Number, for example 2.5 |
| `max_rooms` | string | No | Number, for example 2.5 |
| `min_living_area` | integer | No | Whole number |
| `max_living_area` | integer | No | Whole number |
| `min_plot_area` | integer | No | Whole number |
| `max_plot_area` | integer | No | Whole number |
| `min_construction_year` | integer | No | Whole number |
| `max_construction_year` | integer | No | Whole number |
| `min_sold_price` | integer | No | Whole number |
| `max_sold_price` | integer | No | Whole number |
| `min_sold_sqm_price` | integer | No | Whole number |
| `max_sold_sqm_price` | integer | No | Whole number |

## Example response

```json
{
    "data": {
        "page": 1,
        "cards": [],
        "count": 10,
        "limit": 10,
        "total": 306304
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
|  | The id, area or home does not exist. This response is not billable. |  |
|  | A parameter or filter is missing or invalid. This response is not billable. |  |
|  | Booli is temporarily unavailable. Retry the request. This response is not billable. |  |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
