Prices by neighborhood (GET /market/neighborhoods) — Kite API
KitePlatform
Use casesDocsGuidesPricing
Browse endpoints
All endpoints

Reference data

  • List cities
  • List neighborhoods
  • List city directions
  • List enumerated values
  • Get this key's limits
  • What the API covers

Listings

  • Search listings
  • Count listings
  • Get listings by id
  • Get a listing
  • Get a listing's price history

Market data

  • Market summary
  • Price distribution
  • Area distribution
  • New supply
  • Vacancy indicator
  • Prices by neighborhood
  • Commercial rent per m² by neighborhood

Official data

  • Registered rents (REGA)
  • Kite Property Index

Analytics

  • Get comparable listings
  • Get a listing's market position
  • Get a listing's nearby asking-price band
  • Find below-market listings
  • Find below-market listings (old path)
  • Get gross rental yield
  • Get price trends
  • Compare neighborhoods

Registered transactions

  • Search registered deals
  • Registered deal statistics
  • Land prices per m²

Off-plan projects

  • Search projects
  • Get a project
  • List a project's units
  • Search project units
  • List developers

Exports

  • Create an export
  • List exports
  • Get an export

Administration

  • Get your organization
  • List data keys
  • Create a data key
  • Revoke a key
  • List projects
  • Daily usage
  • List members and invitations
  • List audit events
  • List request logs
  • Create a webhook endpoint
  • List webhook endpoints
  • Delete a webhook endpoint
  • List deliveries
  • Replay a delivery

Interactive reference

All endpoints

Reference data

  • List cities
  • List neighborhoods
  • List city directions
  • List enumerated values
  • Get this key's limits
  • What the API covers

Listings

  • Search listings
  • Count listings
  • Get listings by id
  • Get a listing
  • Get a listing's price history

Market data

  • Market summary
  • Price distribution
  • Area distribution
  • New supply
  • Vacancy indicator
  • Prices by neighborhood

Market data

Prices by neighborhood

GET/market/neighborhoods

Median and quartile price per neighborhood in a city, most expensive first. Neighborhoods with fewer than min_sample_size listings are left out (one unusual listing would swing their median); suppressed_neighborhoods says how many. Listings without a known neighborhood are not counted. Pass a property_type (and beds) for like-for-like comparisons; otherwise a neighborhood's median depends on its mix of apartments and villas.

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

NameTypeDescription
cityrequiredquerystring

City slug from GET /cities. A town inside a covered region is accepted and resolved to its city (, , , and to ; and to ; to ), as are Arabic city names. The response's and the header show the slug used.

Kite API

Saudi real estate data for developers.

Product
  • API reference
  • Data coverage
  • Pricing
  • Valuation checks
  • Changelog
  • Status
Company
  • kite.sa
  • Contact
  • Security
Legal
  • Terms
  • Subprocessors
© Kite
  • Commercial rent per m² by neighborhood
  • Official data

    • Registered rents (REGA)
    • Kite Property Index

    Analytics

    • Get comparable listings
    • Get a listing's market position
    • Get a listing's nearby asking-price band
    • Find below-market listings
    • Find below-market listings (old path)
    • Get gross rental yield
    • Get price trends
    • Compare neighborhoods

    Registered transactions

    • Search registered deals
    • Registered deal statistics
    • Land prices per m²

    Off-plan projects

    • Search projects
    • Get a project
    • List a project's units
    • Search project units
    • List developers

    Exports

    • Create an export
    • List exports
    • Get an export

    Administration

    • Get your organization
    • List data keys
    • Create a data key
    • Revoke a key
    • List projects
    • Daily usage
    • List members and invitations
    • List audit events
    • List request logs
    • Create a webhook endpoint
    • List webhook endpoints
    • Delete a webhook endpoint
    • List deliveries
    • Replay a delivery

    Interactive reference

    dammam
    khobar
    dhahran
    jubail
    qatif
    eastern_province
    buraydah
    unaizah
    qassim
    hofuf
    al_ahsa
    filters.city
    X-Resolved-City
    listing_typerequiredquerystring

    rent (prices are yearly rent) or sale (prices are total price).

    One of: rent, sale

    listing_categoryquerystring

    Defaults to residential when property_type is omitted, so dwellings and commercial stock are never mixed into one median. With a property_type, omit it to include both categories of that type.

    One of: residential, commercial

    property_typequerystring

    One property type, see GET /enums.

    One of: apartment, villa, floor, duplex, office, shop, warehouse, land, building

    bedsqueryinteger

    Exact number of bedrooms (0 = studio).

    min_sample_sizequeryinteger

    Leave out neighborhoods with fewer listings than this.

    Response

    The data field is an object with these fields.

    NameTypeDescription
    filtersrequiredobject

    The filters the numbers were computed for, after defaults.

    price_basisrequiredstring

    What the *_sar price fields mean: yearly_rent (SAR per year) for rentals, sale_price (total SAR) for sales.

    One of: yearly_rent, sale_price

    price_sourcerequiredstring

    Where the prices come from: asking = advertised asking prices from listings; registered = registered transactions or rent contracts. Asking prices typically sit above what is finally agreed.

    One of: asking, registered

    min_sample_sizerequiredinteger
    neighborhoodsrequiredobject[]
    suppressed_neighborhoodsrequiredinteger
    suppressed_sample_sizerequiredinteger

    Listings in the neighborhoods left out.

    windowrequiredobject

    The freshness window every market number uses.

    Example request

    curl
    curl "https://api.kite.sa/v1/market/neighborhoods?city=riyadh&listing_type=rent" \
      -H "Authorization: Bearer $KITE_API_KEY"
    JavaScript (@kite-sa/sdk)
    import { Kite } from "@kite-sa/sdk";
    
    const kite = new Kite(); // reads KITE_API_KEY
    const result = await kite.market.neighborhoods({ city: "riyadh", listing_type: "rent" });
    Python (kite-sa)
    from kite_sa import Kite
    
    kite = Kite()  # reads KITE_API_KEY
    result = kite.market.neighborhoods(city="riyadh", listing_type="rent")

    Open in the interactive reference

    Related endpoints

    • Market summary GET /market/summary
    • Price distribution GET /market/price-distribution
    • Area distribution GET /market/area-distribution
    • New supply GET /market/supply
    • Vacancy indicator GET /market/vacancy
    • Commercial rent per m² by neighborhood GET /market/commercial-rents

    Guides

    • Quickstart
    • Coverage and freshness
    • Searching and filtering
    • Limits and quotas
    • Errors