
Zameen Price Map Zameen.com · 124,521 listings, four cities
I scraped every house and plot for sale on Zameen.com in four cities and turned them into a live price map. Here is what the asking prices say about where land is valuable, and why.
Introduction
Zameen.com is Pakistan's largest property portal, but it shows listings one page at a time. It never answers the question buyers actually ask: what does a marla cost in each neighbourhood?
Project
A fast, resumable scraper that collects every active for-sale house and plot in Lahore, Karachi, Islamabad and Faisalabad, turns 124,521 listings into price per marla by neighbourhood, and publishes it as a write-up and a live map.
Challenge
Zameen stops serving any search after page 400, the same plot is posted by several agencies, and one mistyped price can wreck an average. Big searches are split into price bands, repeat ads are flagged, and every price is a median judged against its own neighbourhood.
My role
Solo project: scraper, cleaning rules, analysis, charts and map. Python, requests, pandas, H3, Leaflet and Observable Plot.
Links
The map
Every neighbourhood, coloured by its median asking price per marla. Switch city, houses or plots, or the hexagon grid; zoom in for sub-areas and societies; click any circle for details.
Karachi asks the most for both houses and land
Median asking price per marla, with the middle half of listings
Dot = median. Bar = 25th to 75th percentile. PKR lakh per marla (1 lakh = 100,000).
The location premium lives in the land, not the house
Median asking price per marla by distance from the city centre
Centres: . Distance bands with at least 30 listings.
Buy bigger, pay less per marla
Price per marla relative to a 5-marla unit in the same neighbourhood
Median across neighbourhoods with 3+ listings at both sizes. 5 marla = 100.
Why compare inside a neighbourhood?
City-wide, big plots look more expensive per marla, because 1-kanal plots cluster in DHA and the old elite schemes while 5-marla plots dominate cheaper areas. Comparing each size only with its neighbours removes that. What remains is the bulk discount: fewer buyers can afford the larger unit, so sellers price its land lower.
A DHA plot in Karachi asks almost four times one in Islamabad
DHA and Bahria Town across cities, median price per marla
Each row is the whole scheme in that city (all phases). PKR lakh per marla.
How far apart are neighbourhoods?
What can your budget buy?
Pick a budget, a property type and a size. The tool finds every neighbourhood where the typical asking price for exactly that size fits.
The priciest addresses within budget
Just out of reach
"Typical" = the median asking price of listings of exactly that size in the neighbourhood (3 or more such listings). Asking prices usually exceed what deals close at.
An agents' market, full of repeat ads
Share of ads that repeat another ad
Same neighbourhood, size, price and rooms as an older ad. Counted once in every price here.
Plot ads per house ad
A rough gauge of how much of each market is land held as an investment.
124,521 listings in fifteen minutes
Read the data the page already ships. Zameen's search pages are rendered on the server and carry their data as JSON: each page holds 25 complete listings, with price, area, GPS coordinates and the full location tree. So the scraper never opens individual ads. A whole city is a few hundred to a couple of thousand requests.
Get past the 10,000-result wall. Zameen stops serving any search after page 400. Large searches (Lahore has 32,000 plot ads) are split recursively into price bands until each fits, with overlapping boundaries so nothing falls through a gap. Coverage is checked against Zameen's own totals: .
Fast without being rude. Requests run in parallel under an AIMD controller, the scheme TCP uses: one more in flight after every ten clean responses, half as many on any error, and a hard ceiling of about seven per second. The scraper identifies itself honestly and stops if it is blocked. It never was. Opening every ad one at a time would have taken about 56 hours.
Clean, but never delete. Seven rules flag rows rather than removing them. The largest is repeat ads: the same plot posted by several agencies is one price, not twelve. Outliers are judged only against their own neighbourhood. One rule exists because of a surprise in the data: DHA Phase 4 Islamabad's houses first came out at 16 lakh a marla, a third of the going rate, because half its "houses" were plots filed under the wrong category.
Medians, not means. One mistyped price ("4.5 lakh" for "4.5 crore") can drag a mean by millions but barely moves a median. On the map, colours split each city's listings into fifths, so the full scale is used in every city.
Python · requests · pandas · H3 · Leaflet · Observable Plot. Personal data (seller names and phone numbers) is dropped before anything is saved, and only aggregates are published.
What this data can't tell you
- Asking, not selling. These are the prices sellers hope for. Deals usually close lower, and nobody publishes those.
- Zameen is not the whole market. Planned societies are heavily listed. Old city centres, informal settlements and private sales are thin or missing, so blank map space means "no listings", not "no value".
- One snapshot. These are prices on . The pipeline keeps a history, so trends will build up as it runs again.
- Zameen's own geography. City lines and neighbourhood names are Zameen's. "Islamabad" includes the schemes along the GT Road toward Rawalpindi, for example.