Property portals think in cities, not countries.
Rents, availability and price history are city-level objects. A national average is the one number in this market that describes nothing anybody buys or rents.
Why proxies solve this
Portals serve results, currency and often the whole search interface from the visitor’s location, and the listings that matter move within days. Collecting from one place gives you one city’s view of a market that is priced street by street, and the portals rate limit hard enough that pacing matters more than pool size.
The problems you hit without proxies
The listing set is scoped before you filter
A portal decides a default region from the visitor and filters within it. Your city filter narrows what was already chosen, which is why two collectors in two countries get different sets from the same query.
Listings churn faster than a weekly crawl
A rental in a tight market lives for days. A weekly pass measures what survived a week, which is a different population from what was offered.
The same property appears many times
Agencies repost across portals and within one portal. Without a stable key the dataset counts one apartment as five and reports a market that is deeper than it is.
How SotaProxy handles it
Residential addresses in 220+ countries with city targeting where portals are metropolitan, sticky sessions through pagination, and a deliberate pace instead of a large pool.
Setup in 4 steps
Choose cities, then districts
Country-level collection on a property portal produces an average nobody transacts at. City targeting is one of the few places where the suffix earns its cost.
Match the collection rhythm to the market
Daily where rentals move in days, weekly where sales move in months. The rhythm is the design decision; everything else follows from it.
Hold a session through pagination
Result pages are recomputed per request and reordered by freshness. A sticky session keeps one search coherent instead of stitching several.
Build a key before you build a table
Portal listing id, plus coordinates where they are published. Address strings are written differently by every agency and cannot carry deduplication on their own.
Six cities, daily rentals
The listings are light; the photos are not, and that is the whole budget question here:
Six cities daily for the price of a dinner, or the same job for the price of a small server, depending on one setting. Decide it before the first full run.
One city, one search, one session
Sticky through the pages, paced deliberately, with the geography recorded:
Paginating one city
# one session for one city search
S="login_c_ES_city_Barcelona_s_23_ttl_50m:password@proxy.sotaproxy.com:10000"
for page in $(seq 1 20); do
curl -s -x $S -H "Accept-Language: es-ES" \
"https://portal.example/rent/barcelona?page=$page" -o bcn-$page.html
sleep 4
done
# verify the city request actually landed there
curl -s -x $S https://ipinfo.io/json | grep -iE "city|region"- If the city request falls back to country level, log it. A silent fallback turns a Barcelona dataset into a Spanish one.
- Store first-seen and last-seen timestamps per listing; in this market the disappearance is the signal.
- Keep the portal id as the key and treat the address string as a label for humans.
Three ways property data misleads
A national average
Nobody rents at the national average. The number is easy to compute, easy to present and impossible to act on.
Counting reposts as supply
The same apartment listed by three agencies looks like three apartments. Every market looks deeper than it is until deduplication is built on a stable key.
Crawling weekly in a daily market
What you measure is the set of listings that failed to rent within a week. That is a survivorship sample, and it reads as a slow market when the market is fast.
Frequently asked questions
Why not filter by city on the portal itself?
You should, and it is still not enough. The filter narrows the set the portal already chose from your location. The address decides which set exists to be filtered.
How fast should collection run?
Slower than you expect. Portals limit per address, and a four second gap between requests keeps an address usable for a whole city rather than for a page.
Datacenter or residential?
Try datacenter at $1.15 per address per month. The large portals generally refuse it, the smaller regional ones often do not. Residential is the answer where the first request returns a 403.
Are listing photos worth collecting?
Rarely, and they dominate the bill when you do. Block media by default and pull images only for the listings your analysis actually opens.
Ready to start?
Create an account, top up, and get proxy credentials in minutes. No sales call. No monthly minimum.
Create account