RE/MAX Spain Property Listings Scraper
Pricing
Pay per event
RE/MAX Spain Property Listings Scraper
🏠 Extract public RE/MAX Spain sale and rental listings with prices, locations, property facts, descriptions, galleries, offices, and agents.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract public property listings from RE/MAX España (remax.es) into clean, structured data.
Collect sale and rental inventory with listing IDs, reference codes, prices, locations, bedrooms, bathrooms, floor area, descriptions, images, RE/MAX office context, agent names, and canonical property URLs.
Use exact RE/MAX Spain search pages, individual property URLs, or a structured province/city search.
- 🏠 Track active Spanish property inventory
- 💶 Build comparable-property and price datasets
- 🔔 Monitor new or changed opportunities
- 🤝 Route listings to brokers, investors, and lead systems
- 📊 Export to JSON, CSV, Excel, XML, RSS, or your data warehouse
No login, browser automation, or private RE/MAX account is required for the supported public pages.
What does RE/MAX Spain Property Listings Scraper do?
The Actor visits public RE/MAX Spain search pages, follows pagination, and saves each unique property as one dataset record.
When detail enrichment is enabled, it also opens each public property page to collect:
- the full property description;
- the complete available image gallery;
- normalized numeric price and area values;
- locality and province from structured page data;
- RE/MAX office and agent context.
Search-card data is retained when one optional detail page cannot be enriched, so a temporary detail-page issue does not discard otherwise useful inventory.
Who is this property scraper for?
Real-estate investors
Refresh neighborhoods regularly, compare asking prices, identify new opportunities, and feed acquisition models.
Brokers and agencies
Monitor competing public inventory, discover listing patterns, and enrich internal market reports.
Proptech teams
Create normalized feeds for search, analytics, valuation, alerting, and Spanish housing-data products.
Market researchers
Study property type, price, bedroom, bathroom, and area distributions across locations and time.
Lead-generation operators
Route relevant public listing and office context into qualification and outreach workflows.
Data engineers
Schedule repeat runs and load stable records into a warehouse without maintaining a custom crawler.
Why use this RE/MAX España scraper?
- Spain-specific: built for public
remax.essearch and property pages. - Flexible targeting: accept exact URLs or generate a search from location fields.
- Localized normalization: preserve displayed Spanish values and provide numeric fields.
- Stable deduplication: use RE/MAX listing IDs instead of title text.
- Optional enrichment: choose fast search-card extraction or richer property details.
- Pagination support: follow all available pages until
maxItemsis reached. - Fail-closed URL validation: reject non-RE/MAX hosts and unsupported paths.
- Integration ready: use datasets, API calls, webhooks, schedules, and MCP.
What RE/MAX Spain property data can you extract?
| Field | Type | Description |
|---|---|---|
listingId | string | Stable numeric RE/MAX listing identifier |
reference | string | Public property reference such as RMA-AVENIDA |
operation | string | sale or rent |
propertyType | string | Public property type, for example Piso |
title | string | Listing title shown by RE/MAX Spain |
price | number/null | Normalized numeric asking price |
priceRaw | string/null | Original localized price such as 1.380.000 € |
currency | string | EUR |
location | string | Displayed neighborhood/city location |
city | string/null | City or locality |
province | string/null | Province or region |
bedrooms | number/null | Number of bedrooms |
bathrooms | number/null | Number of bathrooms |
areaM2 | number/null | Normalized area in square metres |
areaRaw | string/null | Original displayed area |
description | string/null | Excerpt or full enriched description |
imageUrl | string/null | Primary property image |
imageUrls | array | Available property gallery images |
officeName | string/null | RE/MAX office context |
agentName | string/null | Public agent name when available |
url | string | Canonical property page URL |
sourceSearchUrl | string | Search or detail URL that produced the record |
detailsEnriched | boolean | Whether the property page was parsed |
scrapedAt | string | ISO 8601 extraction timestamp |
How to scrape RE/MAX Spain listings
- Open the Actor input page.
- Keep the prefilled Madrid search URL, paste your own
remax.esURL, or remove URLs and use structured location fields. - Choose sale or rent and a property type when using structured search.
- Set a low
maxItemsfor your first run. - Enable detail enrichment when you need full descriptions, galleries, offices, or agents.
- Click Start.
- Preview results in the dataset table.
- Export or integrate the dataset in your preferred format.
A small run usually completes quickly because it uses direct HTTP rather than a browser.
Input parameters
| Parameter | Required | Default | Purpose |
|---|---|---|---|
startUrls | No | Madrid/Chamartín sample | RE/MAX Spain search or property URLs |
operation | No | sale | Sale or rent for generated searches |
propertyType | No | all | All, apartment, house, commercial, or land |
province | No | Madrid | Province for a generated search |
city | No | Madrid | City or municipality for a generated search |
district | No | empty | Optional district or neighborhood |
maxItems | No | 20 | Maximum unique listings to save |
includeDetails | No | true | Open property pages for richer fields |
When startUrls contains values, those exact URLs take priority over structured location fields.
Example input: exact RE/MAX search URL
{"startUrls": [{"url": "https://www.remax.es/buscador-de-inmuebles/venta/todos/madrid/madrid/chamartin/"}],"maxItems": 10,"includeDetails": true}
Use exact URLs when you already configured filters on the RE/MAX Spain website or need reproducible monitoring.
Example input: structured location search
{"operation": "sale","propertyType": "apartment","province": "Madrid","city": "Madrid","district": "Chamartín","maxItems": 50,"includeDetails": false}
Remove startUrls when you want the Actor to generate the search URL from these fields.
Example output
{"listingId": "887680","reference": "RMA-AVENIDA","operation": "sale","propertyType": "Piso","title": "Piso en venta, Chamartín - Prosperidad, Madrid","price": 1380000,"priceRaw": "1.380.000 €","currency": "EUR","location": "Chamartín - Prosperidad, Madrid","city": "Madrid","province": "Madrid","bedrooms": 3,"bathrooms": 3,"areaM2": 161,"areaRaw": "161 m2","description": "ESPECTACULAR PISO EN PLANTA 14...","imageUrl": "https://anaconda-guru.s3.eu-west-1.amazonaws.com/.../4-1.jpg","imageUrls": ["https://anaconda-guru.s3.eu-west-1.amazonaws.com/.../4-1.jpg"],"officeName": "RE/MAX Action","agentName": "Luis Diéguez Villarejo","url": "https://www.remax.es/buscador-de-inmuebles/venta/piso/madrid/madrid/chamartin-prosperidad/RMA-AVENIDA/","detailsEnriched": true,"scrapedAt": "2026-07-19T00:00:00.000Z"}
Actual listings change continuously; the example illustrates the output shape rather than guaranteed availability.
How much does it cost to scrape RE/MAX Spain property listings?
This Actor uses pay-per-event pricing:
- Start: $0.005 per run
- Property listing: tiered by Apify plan
| Apify tier | Price per saved listing |
|---|---|
| FREE | $0.00018534 |
| BRONZE | $0.00016116 |
| SILVER | $0.00012571 |
| GOLD | $0.000096697 |
| PLATINUM | $0.000064465 |
| DIAMOND | $0.000045125 |
A 100-listing BRONZE run is approximately $0.0211: one start event plus 100 property events.
Tier discounts apply automatically for eligible Apify plans. Check the Actor pricing tab for the live rates before a large run.
Use includeDetails: false when search-card fields are sufficient. Charges are based on saved listings, not on raw HTTP requests.
Tips for reliable property extraction
- 🧪 Start with 5–20 listings before scheduling a large job.
- 🔗 Prefer a copied RE/MAX search URL for uncommon site filters.
- 📍 Use Spanish province, city, and district names for structured searches.
- 🖼️ Enable details only when full descriptions or galleries are required.
- 🆔 Join snapshots by
listingIdorreference, not by title. - 🕒 Compare
scrapedAttimestamps across scheduled datasets. - 📦 Export raw JSON when you need the full
imageUrlsarray.
Monitoring new and changed RE/MAX listings
Create an Apify schedule that runs the same search daily or hourly.
For each new snapshot:
- join records on
listingId; - detect IDs absent from the previous snapshot as new listings;
- compare
price,description, anddetailsEnrichedfor changes; - route matches to email, Slack, a CRM, or a webhook;
- retain historical rows in your warehouse for trend analysis.
For many neighborhoods, submit multiple search URLs and use sourceSearchUrl to preserve provenance.
Integrations and automation workflows
Google Sheets inventory feed
Connect the dataset to Google Sheets and refresh a table of price, area, location, and property URL for an investment team.
Webhook alerts
Use a run-finished webhook, compare the output with yesterday's dataset, and notify a broker when a new matching reference appears.
CRM lead routing
Send enriched office and agent context with the property URL into HubSpot, Salesforce, or your internal qualification queue.
Data warehouse analysis
Load JSON records into BigQuery, Snowflake, PostgreSQL, or object storage. Partition by scrapedAt and join on listingId.
Valuation models
Use price, areaM2, bedrooms, bathrooms, location, and property type as comparable-property features. Treat asking price as a public listing value, not a completed transaction price.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/remax-spain-property-listings-scraper').call({startUrls: [{url: 'https://www.remax.es/buscador-de-inmuebles/venta/todos/madrid/madrid/chamartin/'}],maxItems: 20,includeDetails: true});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/remax-spain-property-listings-scraper').call(run_input={'operation': 'sale','propertyType': 'apartment','province': 'Madrid','city': 'Madrid','maxItems': 20,'includeDetails': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL API example
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~remax-spain-property-listings-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"operation": "rent","propertyType": "all","province": "Madrid","city": "Madrid","maxItems": 10,"includeDetails": false}'
Poll the returned run or use a synchronous Actor API endpoint when your client needs to wait for completion.
Use RE/MAX Spain Scraper with MCP and AI agents
Apify MCP lets Claude Code, Claude Desktop, Cursor, and VS Code run the Actor as a tool.
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/remax-spain-property-listings-scraper"
Claude Desktop, Cursor, or VS Code
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/remax-spain-property-listings-scraper"}}}
Example prompts:
- “Scrape the first 20 RE/MAX Spain sale listings in Madrid and rank them by price per square metre.”
- “Extract this RE/MAX property URL and summarize the description, office, agent, and image count.”
- “Run my Chamartín listing monitor and identify references not present in yesterday’s dataset.”
Performance and limits
The Actor uses direct HTTP with conservative sequential detail enrichment.
- Search-only mode is faster and makes one request per result page.
- Detail mode adds approximately one public page request per saved property.
maxItemssupports 1 to 5,000 records.- Memory is set to 256 MB for an HTTP workload.
- The default timeout is five minutes; keep first runs small.
Site inventory and pagination determine how many records are available. Duplicate listing IDs are emitted only once per run.
Data quality notes
Public real-estate pages may omit bedrooms, bathrooms, prices, agents, or exact addresses for some listings. Missing source values are represented as null rather than invented.
price and areaM2 are parsed numbers. priceRaw and areaRaw preserve the visible localized text for auditing.
Search cards can contain abbreviated descriptions. Set includeDetails to true for the full public description where available.
Image URLs point to RE/MAX Spain’s public content delivery host and may change after the source removes a listing.
Is it legal to scrape RE/MAX Spain?
This Actor extracts publicly accessible information. Whether a particular use is lawful depends on your jurisdiction, purpose, volume, contracts, and handling of personal information.
You are responsible for:
- complying with applicable laws and RE/MAX terms;
- respecting intellectual-property and database rights;
- avoiding excessive request volume;
- establishing a lawful basis for any personal-data processing;
- honoring deletion, retention, and access requirements;
- not using the data for discrimination, harassment, or unlawful outreach.
Consult qualified legal counsel for production use cases. This documentation is not legal advice.
Frequently asked questions
Does this scraper require a RE/MAX login?
No. The supported search and property pages are public and were designed for anonymous extraction.
Can I scrape rentals as well as properties for sale?
Yes. Paste a rental search URL or set operation to rent when using structured search.
Can I scrape one property URL?
Yes. Add an individual remax.es/buscador-de-inmuebles/.../<reference>/ URL to startUrls. The Actor emits one enriched record.
Why is a field null?
The public source may not expose that value for the listing, or detail enrichment may have been disabled. The Actor does not fabricate missing facts.
Why did my structured search return no records?
Check the spelling and hierarchy of province, city, and district. Copying the exact working RE/MAX Spain search URL is the best troubleshooting step for uncommon locations or filters.
Why did the Actor reject my URL?
Only HTTPS remax.es search and property paths are accepted. External URLs and unrelated RE/MAX country domains fail closed to prevent accidental out-of-scope crawling.
How do I make runs faster?
Disable includeDetails when card-level price, location, bedrooms, bathrooms, area, image, and URL are sufficient.
Will the Actor return historical sold prices?
No. It extracts current public listing data, not official transaction or registry records.
Related real-estate scrapers
- RE/MAX Portugal Scraper — RE/MAX inventory in Portugal
- Zillow Scraper — US residential property data
- Rightmove Scraper — UK property listings
- Realtor.com Scraper — US Realtor.com listings
- PropertyFinder Scraper — Middle East property inventory
Choose this Actor when your source is specifically public RE/MAX Spain inventory on remax.es.
Support
If a source page works in your browser but produces an extraction error, share:
- the public RE/MAX Spain URL;
- a redacted input example;
- the run ID;
- the approximate time of the run;
- the fields or records you expected.
Do not share private account credentials or personal API tokens. The run log includes page and extraction context needed for troubleshooting.