Commercial rent per m² by neighborhood (GET /market/commercial-rents) — 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

Commercial rent per m² by neighborhood

GET/market/commercial-rents

Asking rent per m² of commercial space (shops, offices, warehouses, commercial land and whole buildings) by neighborhood, with the city-wide figure for each type as a benchmark. Built for site selection: compare what a shop of a given size costs a year across neighborhoods.

Unit. Every *_rent_per_sqm_sar field is yearly asking rent divided by the stated area, in SAR per m² per year. Monthly and other postings are converted to a yearly amount first. These are asking rents from active listings, not signed leases.

Sample. Active, deduplicated commercial rentals seen in the last 30 days, after the site's outlier filter (the market sample of every /market endpoint), and then only listings whose rent per m² can be trusted:

  • the area is stated and was not rejected by Kite's area check, and the price was not flagged;
  • the ad is not a lease takeover (تقبيل), whose price mixes key money with rent;
  • listings in the same neighborhood with the same type, rent and area count once (one advertiser often posts the same unit many times);
  • rent per m² is at least a floor per type (office 150, shop 100, warehouse 30, land 10, building 100 SAR/m²/yr), which removes business centres that post the whole centre's area with one desk's price, and within median ± 3·MAD of ln(rent per m²) for the city and type (applied with 20 or more listings). The fence is computed city-wide, so it does not move with neighborhood_id, area_min or area_max.

city_totals[].exclusions counts what each step removed, and price_per_sqm_fence_sar gives the bounds.

Small samples. A neighborhood with fewer than min_sample_size listings is still listed with its sample_size, but its statistics are null. Street width is reported where at least min_sample_size listings state it; it is the width of the street the property faces, as the ad gives it, and is often missing for offices.

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

    Like for like. Rent per m² falls as units get larger, so a neighborhood of big showrooms looks cheaper than one of small shops. Check median_area_sqm, or pass area_min/area_max to compare units of the size you need. For building and land the area is the one the ad states, usually the plot.

    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 (dammam, khobar, dhahran, jubail and qatif to eastern_province; buraydah and unaizah to qassim; hofuf to al_ahsa), as are Arabic city names. The response's filters.city and the X-Resolved-City header show the slug used.

    property_typequerystring[]

    One or more commercial property types, comma-separated. Defaults to all of them; each is reported separately, never pooled.

    One of: office, shop, warehouse, land, building

    neighborhood_idqueryinteger[]

    Limit the neighborhood rows to these ids (comma-separated, from GET /cities/{city}/neighborhoods). City totals are unaffected. Unknown ids are a 404.

    area_minqueryinteger

    Only units of at least this many m².

    area_maxqueryinteger

    Only units of at most this many m².

    min_sample_sizequeryinteger

    Statistics are null for a neighborhood (or city total) 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

    Rents are yearly; per-m² figures are SAR per m² per year.

    One of: yearly_rent

    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
    city_totalsrequiredobject[]

    One row per requested property type, for the whole city.

    neighborhoodsrequiredobject[]

    One row per neighborhood and property type with at least one listing in the sample: grouped by property type in the order requested, then highest median rent per m² first; rows below min_sample_size come last within their type.

    windowrequiredobject

    Example request

    curl
    curl "https://api.kite.sa/v1/market/commercial-rents?city=riyadh" \
      -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.commercialRents({ city: "riyadh" });
    Python (kite-sa)
    from kite_sa import Kite
    
    kite = Kite()  # reads KITE_API_KEY
    result = kite.market.commercial_rents(city="riyadh")

    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
    • Prices by neighborhood GET /market/neighborhoods

    Guides

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