JamesEdition Real Estate Scraper — Luxury Listings avatar

JamesEdition Real Estate Scraper — Luxury Listings

Pricing

from $5.00 / 1,000 luxury listing scrapeds

Go to Apify Store
JamesEdition Real Estate Scraper — Luxury Listings

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

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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"
}
FieldDefaultMeaning
startUrlsRecent worldwide listingsPublic JamesEdition real-estate search or listing URLs
maxResults10Hard output and result-event billing cap, 1–1,000
enrichDetailstrueVisits listing pages after discovery for richer public details
responseFormatdetailedconcise limits output to core fields and one image
debugHtmlfalseSaves 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 groupExample fields
IdentitylistingId, title, listingUrl, sourceUrl
Priceprice, currency, priceDisplay
PropertypropertyType, bedrooms, bathrooms, livingArea, lotArea
Locationaddress, city, region, country, latitude, longitude
Contentdescription, amenities, imageUrls
Public professionalsagencyName, agentName, agentPhone, agentEmail
ProvenancescrapedAt, 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:

EventPrice
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 ApifyClient
client = 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.