JamesEdition Real Estate Scraper — Luxury Listings
Pricing
from $5.00 / 1,000 luxury listing scrapeds
JamesEdition Real Estate Scraper — Luxury Listings
Scrape public JamesEdition luxury real-estate searches and listing pages. Returns prices, locations, facts, photos, and public agency metadata. $0.005 per listing.
Pricing
from $5.00 / 1,000 luxury listing scrapeds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
JamesEdition Real Estate Scraper extracts public luxury-property listings from JamesEdition search-result and individual listing pages. Use it for international luxury-market research, brokerage inventory monitoring, investment screening, or structured AI-agent workflows. It returns one normalized record per public property with pricing, property facts, location, photos, descriptions, and public agency metadata. It is not for private dashboards, contact forms, login-only content, or non-real-estate JamesEdition categories.
When to use it
- Monitor recent luxury listings in a city, country, or market segment.
- Export public asking prices, property types, bedrooms, bathrooms, and photos for a market comparison.
- Turn a JamesEdition search URL into clean JSON, CSV, Excel, JSONL, XML, or RSS data.
- Give an AI agent a focused real-estate listing tool with a strict result and cost cap.
JamesEdition is a global luxury marketplace with public, filterable property-search pages and public listing pages. Copy the search URL after applying any filters on the website, then give it to this Actor.
Input
{"startUrls": [{ "url": "https://www.jamesedition.com/real_estate?order=recent" }],"maxResults": 50,"enrichDetails": true,"responseFormat": "detailed"}
| Field | Default | Meaning |
|---|---|---|
startUrls | Recent worldwide listings | Public JamesEdition real-estate search or listing URLs |
maxResults | 10 | Hard output and result-event billing cap, 1–1,000 |
enrichDetails | true | Visits listing pages after discovery for richer public details |
responseFormat | detailed | concise limits output to core fields and one image |
debugHtml | false | Saves raw page HTML to the key-value store for parser troubleshooting |
Output
Each record uses a stable, MCP-friendly shape. Unavailable fields are explicit null values; arrays are present even when empty.
| Field group | Example fields |
|---|---|
| Identity | listingId, title, listingUrl, sourceUrl |
| Price | price, currency, priceDisplay |
| Property | propertyType, bedrooms, bathrooms, livingArea, lotArea |
| Location | address, city, region, country, latitude, longitude |
| Content | description, amenities, imageUrls |
| Public professionals | agencyName, agentName, agentPhone, agentEmail |
| Provenance | scrapedAt, warnings |
{"recordType": "listing","listingId": "17894003","title": "Villa in Mijas, Spain","listingUrl": "https://www.jamesedition.com/real_estate/mijas-spain/villa-17894003","price": 2500000,"currency": "EUR","propertyType": "Villa","bedrooms": 4,"bathrooms": 4,"city": "Mijas","country": "Spain","imageUrls": ["https://images.example.com/villa.jpg"],"warnings": []}
The OUTPUT record in the default key-value store provides final item counts, result-event charges, failed request count, and warnings.
Pricing
The Actor has transparent pay-per-event pricing:
| Event | Price |
|---|---|
| Actor start | $0.00005 per run, scaled by allocated memory |
| Stored public luxury listing | $0.005 per listing |
For example, a 10-listing run costs about $0.05 and a 100-listing run about $0.50, plus the small start charge and any platform usage option selected in Apify. The Actor logs the maximum result-event cost before it begins and never charges more listing events than maxResults.
API examples
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/jamesedition-real-estate-scraper').call({startUrls: [{ url: 'https://www.jamesedition.com/real_estate?order=recent' }],maxResults: 25,enrichDetails: true,responseFormat: 'concise',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_APIFY_TOKEN')run = client.actor('muhammadafzal/jamesedition-real-estate-scraper').call(run_input={'startUrls': [{'url': 'https://www.jamesedition.com/real_estate?order=recent'}],'maxResults': 25,})items = client.dataset(run['defaultDatasetId']).list_items().items
For Apify MCP, add https://mcp.apify.com/?tools=muhammadafzal/jamesedition-real-estate-scraper. Use concise when an agent needs to compare many listings; use detailed for a smaller due-diligence sample.
Reliability and limitations
JamesEdition may use Cloudflare bot protection. The Actor uses low concurrency, consistent residential proxy sessions, a real Chromium browser fingerprint, retries, and session retirement on challenge pages. It parses the public ListingCard elements on search pages and the structured listing sections on detail pages, with JSON-LD as a fallback. Partial results are retained when individual pages fail.
If every attempt is blocked, the Actor fails with an explicit diagnostic instead of reporting a misleading empty success. Fields vary by agency and country; this Actor preserves missing values as null rather than inferring them. It does not bypass access controls, solve CAPTCHAs, or access authenticated pages.
Responsible use
Use only public data you are authorized to collect and process. JamesEdition listing content can include agency and professional contact details; handle any personal data lawfully, minimize retention, honor valid removal requests, and follow applicable privacy, database-rights, copyright, contract, and real-estate regulations. This Actor does not grant permission from JamesEdition, a listing agency, a property owner, or a listing agent.