Real Estate Price Index (Roll-up)
Pricing
from $8.50 / 1,000 city price index rows
Real Estate Price Index (Roll-up)
Build one live asking-price index per city from eight in-process real-estate source adapters. Returns median/mean price and price per m² with honest sample, partial, and error metadata.
Pricing
from $8.50 / 1,000 city price index rows
Rating
0.0
(0)
Developer
Tim Zinin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Real Estate Price Index
Build one asking-price snapshot per city from live real-estate listings. The Actor fetches each source directly through a bounded in-process adapter, then returns sample size, median price, mean price, and median price per square meter in the city's native currency.
Supported cities
| City key | Source | Currency | Default market slice |
|---|---|---|---|
almaty | Krisha.kz | KZT | apartments for sale |
tbilisi | SS.ge | GEL | all property/deal types |
vienna | Willhaben | EUR | apartments for sale |
london | Rightmove | GBP | properties for sale |
istanbul | Emlakjet | TRY | apartments for sale |
lisbon | Imovirtual | EUR | apartments for sale |
dubai | Property Finder | AED | properties for sale |
podgorica | Realitica | EUR | apartments for sale |
baku is not currently supported. Tap.az requires an Azerbaijan residential proxy plus strict redirect-target enforcement. The earlier baku key depended on a separate run and has been retired until an in-process proxy-aware adapter passes that security and reliability acceptance. Requests that still contain baku receive a free found:false, reason:"unknown_city" row; migrate by removing that key for now.
What you get
- One paid price-index row per city only when at least five native-currency prices come from a complete source scan.
- Median and mean only when at least five priced listings are available. Smaller samples remain visible, but statistics stay
nullinstead of presenting noise as a market signal. - A separate price-per-m² sample, because some priced listings do not publish area.
- Free error/empty rows with explicit reasons; source failures are never sold as valid data.
- A free summary row listing delivered, missing, and partial cities.
- Bounded parallelism: at most five city sources are fetched at once.
Pricing
Pay per event starts at $0.005 per run + $0.01 per delivered city index. The six account tiers use exact start/result pairs: FREE .005/.010, BRONZE .00475/.0095, SILVER .0045/.009, GOLD .00425/.0085, PLATINUM .0041/.0082, DIAMOND .004/.008. Runtime accepts only one complete pair and no extra event. Unknown cities, source errors, partial source scans, samples below five native-currency prices, and the summary row are not charged. Partial scans are returned as explicit free evidence and never sold as an index. A paid row is pushed and charged atomically; if the remaining-budget read fails, paid delivery stops and the run fails honestly.
Input
| Field | Required | Description |
|---|---|---|
cities | no | City keys from the supported table. Default: almaty, tbilisi. Duplicate/case variants are normalized and deduplicated. |
max_items_per_city | no | Maximum listing rows per source sample. Default 30, range 1–200. |
max_pages_per_city | no | Maximum pages per source. Default 2, range 1–10. |
max_concurrency | no | City sources fetched simultaneously. Default 2, range 1–5. |
{"cities": ["almaty", "tbilisi", "vienna"],"max_items_per_city": 30,"max_pages_per_city": 2,"max_concurrency": 2}
Output
A successful city row keeps the established price-index fields:
{"city": "almaty","found": true,"source_portal": "krisha-kz","currency": "KZT","deal_type": "sale","property_type": "apartment","sample_size": 10,"median_price": 41500000,"mean_price": 43750000,"sample_size_price_per_sqm": 8,"median_price_per_sqm": 630000,"partial": false,"partial_reason": null,"currency_filtered_rows": 0,"currency_missing_rows": 0,"note": null,"scan_duration_ms": 842,"child_run_duration_ms": 842,"scraped_at": "2026-08-08T00:00:00.000Z"}
child_run_duration_ms remains only as a backward-compatible field name for existing consumers; its value now equals scan_duration_ms, the in-process source scan duration.
A listing is aggregated only when it declares the city's exact native currency. Explicit mismatches and missing currency are excluded rather than guessed; currency_filtered_rows and currency_missing_rows report those removals. At least five remaining native-currency prices and a complete source scan are required for a paid index; a smaller sample returns a free insufficient_sample row, while a sufficiently large but partial scan returns a free source_partial evidence row.
An unavailable source is explicit and free:
{"city": "almaty","found": false,"reason": "source_failed","error": "source-specific failure","source_portal": "krisha-kz","scraped_at": "2026-08-08T00:00:00.000Z"}
Every run ends with a summary row containing requested_cities, succeeded_cities, missing_cities, partial_cities, partial, and supported_cities.
Limitations
- These are asking prices from current listings, not completed-sale valuations or appraisals.
- Currencies are not converted. Compare cities only after applying an exchange-rate policy appropriate to your use case.
- A source can rate-limit, change markup, or return only a partial page set. Such cases are marked
partialorsource_failedrather than silently accepted.
Built by zinin.