Market summary
GET/market/summary
Headline numbers for a city (or neighborhoods): listing count, median and quartile price, median area and price per m², how recently listings were updated, and breakdowns by property type, top neighborhoods by volume, and source.
Computed over the market sample: active, deduplicated listings updated in the last 30 days (updated_at), after the same outlier filter kite.sa uses (per-tier price fences from the median and MAD of log price, bedroom and area sanity checks, and a floor at 30% of the neighborhood median). Prices are asking prices in SAR: yearly rent for listing_type=rent (monthly, weekly and daily postings are converted to a yearly amount), total price for listing_type=sale. Check sample_size before relying on a number; small samples are noisy.
- Authentication
- Send a data key (dk_live_… or dk_test_…) as a Bearer token.
- Scope
market- Cost
- 50 units per call
Parameters
| Name | Type | Description |
|---|---|---|
cityrequiredquery | string | City slug from GET /cities. A town inside a covered region is accepted and resolved to its city ( |
listing_typerequiredquery | string |
One of: |
listing_categoryquery | string | Defaults to One of: |
property_typequery | string | One property type, see GET /enums. One of: |
bedsquery | integer | Exact number of bedrooms (0 = studio). |
neighborhood_idquery | integer[] | Limit to one or more neighborhoods (comma-separated ids from GET /cities/{city}/neighborhoods). Unknown ids are a 404. |
Response
The data field is an object with these fields.
| Name | Type | Description |
|---|---|---|
filtersrequired | object | The filters the numbers were computed for, after defaults. |
price_basisrequired | string | What the One of: |
price_sourcerequired | string | Where the prices come from: One of: |
sample_sizerequired | integer | Listings in the sample. |
median_price_sarrequired | integer | null | Median price. |
p25_price_sarrequired | integer | null | 25th percentile price. |
p75_price_sarrequired |
Example request
curl "https://api.kite.sa/v1/market/summary?city=riyadh&listing_type=rent" \
-H "Authorization: Bearer $KITE_API_KEY"import { Kite } from "@kite-sa/sdk";
const kite = new Kite(); // reads KITE_API_KEY
const result = await kite.market.summary({ city: "riyadh", listing_type: "rent" });from kite_sa import Kite
kite = Kite() # reads KITE_API_KEY
result = kite.market.summary(city="riyadh", listing_type="rent")Open in the interactive reference
Related endpoints
- Price distribution
GET /market/price-distribution - Area distribution
GET /market/area-distribution - New supply
GET /market/supply - Vacancy indicator
GET /market/vacancy - Prices by neighborhood
GET /market/neighborhoods - Commercial rent per m² by neighborhood
GET /market/commercial-rents