JamesEdition Real Estate Scraper — Luxury Listings
Pricing
from $55.72 / 1,000 luxury listing scrapeds
JamesEdition Real Estate Scraper — Luxury Listings
Scrape JamesEdition luxury real estate listings: price, currency, beds, baths, living area, location, photos and agency. USD 69.65 per 1,000 listings.
Pricing
from $55.72 / 1,000 luxury listing scrapeds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
11 hours ago
Last modified
Categories
Share
JamesEdition Real Estate Scraper exports public luxury-property listings from JamesEdition search and listing pages: asking price and currency, property type, bedrooms, bathrooms, living and lot area, city, region and country, description, amenities, up to 20 photos, the listing agency and, when the page names one, the listing agent. It costs USD 69.65 per 1,000 listings on the FREE tier (USD 0.069647 per listing), and you pay only for complete listings saved to your dataset.
It is built for luxury brokerages, investors, market researchers and AI agents that need a structured view of high-end inventory worldwide.
What does the JamesEdition scraper return?
One record per listing, deduplicated by listing ID. Missing values are explicit null, and arrays are always present.
| Field | What you get |
|---|---|
listingId, listingUrl, title | JamesEdition ID, listing URL and headline |
price, currency | Asking price as a number and its ISO currency; null for price on request |
priceDisplay | Price text as the page showed it; may be converted to another currency than price |
propertyType | Villa, Apartment, House, Estate and other JamesEdition types |
bedrooms, bathrooms | Counts from the listing facts |
livingArea, livingAreaUnit | Living area with sqft or m2 |
lotArea, lotAreaUnit | Lot size; the unit can be null when the page does not state it |
city, region, country, address | Location as text |
latitude, longitude | Only from search cards when present; null on enriched records |
description | Public description up to 3,000 characters (detailed format only) |
amenities, imageUrls | Feature tags and up to 20 photo URLs (1 in concise format) |
agencyName, agencyUrl | Listing office (agency) name and its JamesEdition office URL |
agentName | Listing agent's name when the listing page names a person; null when an office handles the listing or enrichDetails is false |
publishedAt | Holds the "Year built" fact when the page shows it (field name is historical) |
agentPhone, agentEmail, listingStatus, updatedAt | Always null: JamesEdition reveals phone numbers only behind a CAPTCHA-protected button and shows no emails or status dates |
sourceUrl, sourceSearchUrl, scrapedAt, warnings | Provenance and per-record notes |
The run writes OUTPUT with records pushed, charged events, failed requests and warnings.
How do I scrape JamesEdition listings for one city or country?
Filter the search on jamesedition.com (location, price, property type, bedrooms, sort), copy the URL and paste it into startUrls. The Actor scrolls the results, follows the next-page link and stops at maxResults.
{"startUrls": [{ "url": "https://www.jamesedition.com/real_estate?order=recent" }],"maxResults": 50,"enrichDetails": true,"responseFormat": "detailed"}
| Input | Default | Meaning |
|---|---|---|
startUrls | Newest listings worldwide | Public JamesEdition real-estate search or listing URLs |
maxResults | 10 | Listing and billing cap for the whole run, 1–1,000 |
enrichDetails | true | Opens each listing page for full facts, description and photos; false keeps search-card data only (faster) |
responseFormat | detailed | concise drops the description and keeps one image |
debugHtml | false | Saves raw page HTML to the key-value store for troubleshooting |
You can also paste single listing URLs. Cars, yachts, watches and other non-real-estate JamesEdition sections are not supported.
Can I get agent phone numbers or emails from JamesEdition?
No. With enrichDetails on, the Actor returns the listing agent's name (agentName) when the page names a person, plus the agency (agencyName) and its JamesEdition office page (agencyUrl). agentPhone and agentEmail are always null: JamesEdition shows phone numbers only behind a CAPTCHA-protected button and publishes no emails, and the Actor does not open contact forms, solve CAPTCHAs or reveal hidden numbers.
When should I use this Actor, and when not?
Use it when you need:
- a sample of recent luxury listings in one market with prices, sizes and photos;
- weekly monitoring of a filtered JamesEdition search (new listings first);
- a luxury-listings tool for an AI agent, with
conciseoutput to keep responses small.
Do not use it when you need:
- a lower-cost luxury feed from another portal: use LuxuryEstate Scraper (USD 30 per 1,000);
- mainstream US listings with agents: use Compass Scraper or RE/MAX Real Estate Listings Scraper;
- Canadian listings with MLS numbers, room sizes and brokerage: use Royal LePage Listings Scraper;
- Spanish or German portals: use Idealista Scraper or Immowelt Scraper;
- agent phone numbers or emails: this Actor returns agent and agency names only.
Output example
Two records from a default cloud run on 2026-10-27 (descriptions, amenities and photos shortened). The first listing is handled by an office, the second names an agent:
[{"recordType": "listing","listingId": "19187510","title": "Transformative 126 Acres Of Luxury Catskills Retreat","listingUrl": "https://www.jamesedition.com/real_estate/lanesville-ny-usa/transformative-126-acres-of-luxury-catskills-retreat-19187510","price": 2290000,"currency": "USD","priceDisplay": "€2,047,571","propertyType": "House","bedrooms": 3,"bathrooms": 2,"livingArea": 166,"livingAreaUnit": "m2","city": "Lanesville","region": "NY","country": "United States","latitude": null,"description": "126 Acres of Untapped Catskills Potential | $500,000 Price Reduction...","amenities": ["Investment Property", "Panoramic / Scenic View", "Privacy"],"imageUrls": ["https://img.jamesedition.com/listing_images/2026/10/26/18/36/48/2608dc32-2fdf-47b6-8c57-192d7641af37/je/1100xxs.jpg"],"agencyName": "Houlihan Lawrence Real Estate","agencyUrl": "https://www.jamesedition.com/offices/real_estate/houlihan-lawrence-real-estate-115502","agentName": null,"agentPhone": null,"publishedAt": "2002","warnings": []},{"recordType": "listing","listingId": "19187506","title": "455 East 86th Street, 22 C","price": 1199000,"currency": "USD","priceDisplay": "€1,071,831","propertyType": "Condo","bedrooms": 1,"bathrooms": 2,"livingArea": 85,"livingAreaUnit": "m2","city": "New York City","region": "NY","country": "United States","agencyName": "Sotheby's International Realty - Downtown Manhattan Brokerage","agencyUrl": "https://www.jamesedition.com/offices/real_estate/sotheby-s-international-realty-downtown-manhattan-brokerage-10842","agentName": "Michael Meier","agentPhone": null,"publishedAt": null}]
Pricing: how much does it cost to scrape JamesEdition?
Pay-per-event pricing; Apify platform usage is included. A listing event is charged only after a complete record is stored; incomplete records saved with a warning are free.
| Event | FREE | BRONZE | SILVER | GOLD / PLATINUM / DIAMOND |
|---|---|---|---|---|
| Actor start (per started GB of allocated memory) | USD 0.006251 | USD 0.006094 | USD 0.005938 | USD 0.005 |
| Luxury listing scraped | USD 0.069647 | USD 0.067905 | USD 0.066164 | USD 0.055717 |
The default memory is 1,024 MB, so a normal run has one start event (two at 2,048 MB).
- Default run, 10 listings (FREE): 0.006251 + 10 × 0.069647 = about USD 0.70.
- 100 listings (FREE): 0.006251 + 100 × 0.069647 = about USD 6.97.
maxResults is also the billing cap: the run never charges more listing events than that number.
What happens when JamesEdition blocks the run?
JamesEdition uses bot protection on some requests. The Actor runs a real Chromium browser through a residential connection with two pages at a time, keeps cookies per session, retires a session when it sees a challenge page and retries up to four times. Listings already saved are kept when later pages fail. If every request is blocked before any listing is saved, the run fails with "JamesEdition blocked all requests" instead of reporting an empty success. In the last 30 days the Store recorded 28 succeeded, 1 failed and 1 timed-out public runs. The 10-listing default run took about 107 seconds on 2026-10-20; on 2026-10-27 the current build saved 7 listings before a USD 0.50 run charge limit stopped it, as designed, and said so in the status message.
Use it from an AI assistant
The Actor works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/jamesedition-real-estate-scraper to your client.
Example prompt: "Using JamesEdition, list 10 villas for sale on the Côte d'Azur with price, bedrooms, living area and listing link, in concise format."
Run it from the API
JavaScript (apify-client):
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 (apify-client 3.x):
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.default_dataset_id).list_items().items
FAQ
Why does JamesEdition data cost more than other listing Actors?
Each listing needs a full browser visit through a residential connection, often with a second visit to the listing page, which costs more to run than plain HTTP scraping. The per-listing price reflects that measured cost.
Can I scrape JamesEdition without opening every listing page?
Yes. Set enrichDetails to false to keep search-card data only; the run is faster, but you get the card excerpt instead of the full description, fewer facts and fewer photos. Each saved listing is charged the same.
How many listings can one run return?
Up to 1,000 (maxResults). The Actor scrolls each search page and follows next-page links until it reaches the cap or runs out of results.
Does it cover cars, yachts or watches on JamesEdition?
No. Only real-estate search and listing URLs are supported.
What is the publishedAt field?
In the current version it holds the "Year built" value from the listing facts, for example "2007". It is not the date the listing was published.
Why do some records have warnings?
If a page yields data that fails validation, or a listing page shows no title, price or location, the Actor saves a minimal record (ID, URL, title) with a warning that explains the problem, so you can see which listings need a second look. That record is not charged.
Related Actors
- LuxuryEstate Scraper: luxury listings in Italy and worldwide.
- Idealista Scraper: Spain, Italy and Portugal listings.
- Immowelt Scraper: German rental and sale listings.
- Compass Scraper: US listings with agents.
- Royal LePage Listings Scraper: Canadian listings with MLS numbers, rooms and brokerage.
Responsible use
Collect only public listing data and respect JamesEdition's terms and reasonable request rates. Listings can include agent names; process personal data lawfully, keep it only as long as needed and honor removal requests. The Actor does not log in, bypass access controls or solve CAPTCHAs, and it grants no rights from JamesEdition, agencies or property owners.
Last verified: 2026-10-27