Markets
Where we have coverage, how each market is subdivided, and the aggregate statistics computed across it.
/v1/api/marketsmarkets:readList markets
Every market with coverage, and how deep that coverage runs.
Call this before hardcoding a market identifier. Coverage expands, and a market absent here has no systematic inventory yet rather than no property.
Response
{
"data": [
{
"id": "berlin-de",
"name": "Berlin",
"country": "DE",
"property_count": 1284,
"district_count": 12,
"coverage": "systematic",
"currency": "EUR",
"area_unit": "sqm"
}
],
"meta": { "has_more": false, "limit": 50 }
}https://api.skautik.com/v1/api/markets
GET /v1/api/markets HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/markets/{city}markets:readRetrieve a market
One market with supply and price distribution.
Path parameters
| Name | Type | Description |
|---|---|---|
cityrequired | string | Market identifier, such as berlin-de. example: berlin-de |
Query parameters
| Name | Type | Description |
|---|---|---|
period | string | Month to report, as YYYY-MM. Defaults to the most recent computed. example: 2026-07 |
property_type | enum | Restrict the figures to one kind of property. apartment | house | studio | villa | penthouse | loft | townhouse | other example: apartment |
Response
{
"data": {
"id": "berlin-de",
"name": "Berlin",
"country": "DE",
"property_count": 1284,
"price_distribution": {
"currency": "EUR",
"p25": 31500000,
"median": 41500000,
"p75": 58000000,
"median_price_per_area": 560000
},
"computed_at": "2026-08-11T04:00:00Z"
}
}https://api.skautik.com/v1/api/markets/{city}
GET /v1/api/markets/berlin-de?period=2026-07&property_type=apartment HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/markets/{city}/districtsmarkets:readList districts
Subdivisions of a market, for building your own filters.
Path parameters
| Name | Type | Description |
|---|---|---|
cityrequired | string | Market identifier. example: berlin-de |
https://api.skautik.com/v1/api/markets/{city}/districts
GET /v1/api/markets/berlin-de/districts HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/markets/{city}/districts/{district}Growth and abovemarkets:readRetrieve a district
District-level supply, price distribution, and amenity context.
Path parameters
| Name | Type | Description |
|---|---|---|
cityrequired | string | Market identifier. example: berlin-de |
districtrequired | string | District identifier. example: kreuzberg |
Query parameters
| Name | Type | Description |
|---|---|---|
period | string | Month to report, as YYYY-MM. Defaults to the most recent computed. example: 2026-07 |
property_type | enum | Restrict the figures to one kind of property. apartment | house | studio | villa | penthouse | loft | townhouse | other example: apartment |
https://api.skautik.com/v1/api/markets/{city}/districts/{district}
GET /v1/api/markets/berlin-de/districts/kreuzberg?period=2026-07&property_type=apartment HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/markets/{city}/statisticsmarkets:readMarket statistics
Supply and price series over time, by property type.
Computed from the catalogue we hold, which means these describe asking behaviour rather than transacted prices. They are not appraisals and must not be used for lending decisions.
Path parameters
| Name | Type | Description |
|---|---|---|
cityrequired | string | Market identifier. example: berlin-de |
Query parameters
| Name | Type | Description |
|---|---|---|
property_type | enum | Narrow to one property type. apartment | house | studio | villa | penthouse | loft | townhouse | other example: apartment |
transaction_type | enum | sale or rent. sale | rent example: sale |
interval | enum | Granularity of the returned series. week | month | quarter example: month |
since | string | RFC 3339 lower bound on the series. example: 2026-08-01T00:00:00Z |
Response
{
"data": {
"market_id": "berlin-de",
"interval": "month",
"series": [
{
"period": "2026-06",
"listing_count": 1211,
"median_price": 41000000,
"median_price_per_area": 554000,
"median_days_listed": 41
},
{
"period": "2026-07",
"listing_count": 1284,
"median_price": 41500000,
"median_price_per_area": 560000,
"median_days_listed": 38
}
]
},
"meta": { "computed_at": "2026-08-11T04:00:00Z" }
}https://api.skautik.com/v1/api/markets/{city}/statistics
GET /v1/api/markets/berlin-de/statistics?property_type=apartment&transaction_type=sale&interval=month HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…