Housing aggregators like Nestpick pull inventory from platforms such as Spotahome, Blueground, and HousingAnywhere. Working with mid- to long-term rental data across multiple international markets presents two distinct data engineering challenges: handling cross-currency comparisons and resolving the real external booking URLs hidden behind aggregator redirects.
If you attempt to fetch an entire city's housing inventory and filter the prices client-side, you process and pay for records that get discarded immediately. Furthermore, cross-currency comparisons break if you rely on local listing prices, as a listing in Seoul returns values in South Korean Won while a listing in Berlin returns Euros.
The Nestpick Scraper solves this by providing server-side filtering on normalized Euro values, alongside a dedicated enrichment mode that extracts final partner URLs.
Server-Side EUR Normalization Reduces Fetch Costs
When querying housing inventory in cities with non-EUR local currencies, Nestpick normalizes prices to Euros internally. The actor exposes this normalization directly in its query interface using minPriceEur and maxPriceEur.
Applying these parameters in your actor input strips non-matching properties at the source, ensuring you only receive data items that meet your target criteria. Applying post-processing filters on raw extraction outputs results in higher item charges for data you drop.
Consider this request configured to extract verified studios in Seoul priced under €2,000 per month:
{
"mode": "search",
"city": "Seoul",
"category": "apartments",
"propertyType": "studio",
"maxPriceEur": 2000,
"verifiedOnly": true,
"sortBy": "priceAsc",
"maxItems": 50
}
The output yields normalized records where priceEur is calculated alongside the raw local price:
{
"listingId": "21514575",
"title": "Furnished Studio Apartment in Gangnam",
"address": "Gangnam-gu, Seoul",
"propertyType": "studio",
"providerName": "Spotahome",
"providerCode": "spotahome",
"price": 2200000,
"priceCurrency": "KRW",
"priceEur": 1520,
"sizeSqm": 32,
"rooms": 1,
"availableFrom": "2026-04-01",
"minStayMonths": 3,
"amenities": ["wifi", "air_conditioning", "washing_machine"],
"verified": true,
"sourceUrl": "https://www.nestpick.com/pick/21514575/",
"city": "Seoul",
"searchCategory": "apartments",
"recordType": "listing",
"scrapedAt": "2026-03-30T10:00:00.000Z"
}
By leveraging maxPriceEur: 2000, any listing exceeding that threshold is omitted before the dataset item is generated.
Resolving Direct Booking Links with listingDetails Mode
A search payload returns Nestpick's aggregated view of a listing, but market research or lead generation workflows often require the original source URL (e.g., the exact direct page on Blueground or HousingAnywhere).
To obtain these target links without scraping every partner platform individually, you can execute a secondary pass using mode: "listingDetails". You supply either an array of target listing IDs via listingIds or full Nestpick listing URLs via listingUrls.
{
"mode": "listingDetails",
"listingIds": ["21514575", "20393877"]
}
Executing this request updates the dataset schema for those records, appending provider-specific identifiers and the resolved booking target:
{
"listingId": "21514575",
"providerPropertyCode": "sp-kr-8841",
"cityCode": "seoul",
"externalListingUrl": "https://www.spotahome.com/seoul/for-rent:studios/21514575",
"recordType": "listingDetail"
}
This two-step workflow keeps initial discovery runs fast and targeted, allowing you to run detail enrichment only on properties that pass your preliminary pipeline criteria.
Processing Search vs. Detail Pipeline Runs
To collect and enrich listings using Nestpick Scraper, follow these steps:
-
Define Your Initial Search Parameters: Construct a JSON payload setting
modeto"search". Pass your targetcity, select acategory(roomsorapartments), and narrow results using schema filters such aspropertyType,minRooms,minSqm,verifiedOnly, or specific options from the 24 supported values inamenity(e.g.,balcony,pets,elevator). -
Execute Search Run: Run the actor to populate your default dataset with normalized records capped by your
maxItemsvalue. -
Extract Listing IDs for Enrichment: Parse the dataset output for
listingIdvalues matching properties you need to process further. -
Execute Listing Details Run: Re-run the actor with
modeset to"listingDetails"and pass the collected IDs intolistingIds. Extract theexternalListingUrlfield from the output dataset to route users or downstream parsers directly to the underlying booking platform.
Event-Based Execution Pricing
Nestpick Scraper uses pay-per-event pricing on the Apify platform.
Each result costs $0.005 on the FREE tier, plus a one-time start charge of $0.005 per GB of memory allocated to the run. Platform usage for the run is billed separately at your Apify plan's rates.
Under Apify's discount tiers, the per-result event price drops based on your account tier:
- FREE: $0.005 per result
- BRONZE: $0.00433 per result
- SILVER: $0.00367 per result
- GOLD: $0.003 per result
- PLATINUM: $0.003 per result
- DIAMOND: $0.003 per result
Filtering out unwanted items before extraction using parameter inputs directly limits the number of result events generated during a execution.
System Limitations and Constraints
This scraper relies entirely on server-side parameters mapped directly to Nestpick's public search API. As a result, client-side UI filters that lack corresponding backend GET parameters cannot be targeted.
Specifically, filtering by "Corporate Housing" is not supported because Nestpick applies that filter client-side in JavaScript rather than exposing it through a dedicated URL parameter or server query flag. Pipeline architectures requiring corporate housing tags must collect property records under general categories and evaluate property attributes downstream.
Nestpick Scraper is what these steps drive. The README covers the inputs this article skipped, including the ones that change how much a run costs.
Prices quoted above are this Actor's published pay-per-event rates on the Apify Store, read from the Apify platform API on 2026-10-07. Check the Actor page for the current rates.
Top comments (0)