Get a listing's nearby asking-price band
GET/listings/{id}/price-band
The 25th percentile, median and 75th percentile of asking prices for comparable units near this listing, in SAR and per m², where this listing's price sits against them, and the cohort and stability behind the numbers. Use it as a fair-price check on an ask; it compares asking prices and is not a valuation.
The band comes from Kite's published nearby asking-price comparison (methodology nearby-asking-v5): the same snapshot the kite.sa listing page and GET /market/below-market use, so the three always agree.
Comparables are residential listings with the same listing type, property type and exact bedroom count, an area within a calibrated tolerance of this listing's, inside a calibrated radius and look-back. Each distinct unit counts once, at its latest asking price (copies across sources and reposts collapse into one), and this listing's own copies are left out. Every comparable passes Kite's price, bedroom, area, property-type and location checks. Radius, look-back, area tolerance and the minimum evidence are calibrated per city, property type, bedroom count and listing type, and a comparison is published only for cohorts that passed that calibration. Nothing falls back to a wider area or ignores bedrooms. A band needs the cohort's minimum number of distinct units, spread across independent evidence clusters (a project, or a ~100 m cell).
p25–p75 is the middle half of nearby asking prices. It is not a valuation, an appraisal or an expected achieved price. Prices are asking prices in SAR: yearly rent for rentals (monthly, weekly and daily postings are converted to a yearly amount), total price for sales. Snapshots are refreshed at least weekly, and retired as soon as this listing's price, bedrooms or property type change.
GET /listings/{id}/market-position always answers, against the whole neighborhood and city. This endpoint answers only for a like-for-like nearby cohort, and otherwise says why not. status is available when there is a band. Otherwise band, position and stability are null and status gives the reason:
insufficient_comparables: the cohort is published but too few distinct units were observed nearby.cohortshows what was searched and found.unsupported_cohort: this city, property type, bedroom count and listing type hasn't passed calibration, so no comparison is published for it.not_residential,multi_unit(the ad prices several units together),no_price,no_location: the listing can't be compared.plot_area_only: the listing gives only the building plot's area, not the unit's, and comparables are matched on unit area.area_unusable: the area is missing or failed Kite's area checks.fields_unusable: the price, bedrooms, property type or location failed Kite's checks.
- Authentication
- Send a data key (dk_live_… or dk_test_…) as a Bearer token.
- Scope
analytics- Cost
- 50 units per call
Parameters
| Name | Type | Description |
|---|---|---|
idrequiredpath | integer | Listing id. |
Response
The data field is an object with these fields.
| Name | Type | Description |
|---|---|---|
listing_idrequired | integer | |
statusrequired | string |
One of: |
price_basisrequired | string | What the One of: |
price_sourcerequired | string | Where the prices come from: One of: |
Example request
curl "https://api.kite.sa/v1/listings/128647/price-band" \
-H "Authorization: Bearer $KITE_API_KEY"import { Kite } from "@kite-sa/sdk";
const kite = new Kite(); // reads KITE_API_KEY
const result = await kite.analytics.listingPriceBand(128647);from kite_sa import Kite
kite = Kite() # reads KITE_API_KEY
result = kite.analytics.listing_price_band(128647)Open in the interactive reference
Related endpoints
- Get comparable listings
GET /listings/{id}/comparables - Get a listing's market position
GET /listings/{id}/market-position - Find below-market listings
GET /market/below-market - Find below-market listings (old path)
GET /market/deals - Get gross rental yield
GET /market/rental-yield - Get price trends
GET /market/trends - Compare neighborhoods
GET /market/neighborhoods/compare