Idealista Scraper - Spain, Italy, Portugal, France Listings avatar

Idealista Scraper - Spain, Italy, Portugal, France Listings

Pricing

from $0.40 / 1,000 saved results

Go to Apify Store
Idealista Scraper - Spain, Italy, Portugal, France Listings

Idealista Scraper - Spain, Italy, Portugal, France Listings

Scrape Idealista property listings in Spain, Italy, Portugal and France. Get prices, sizes, locations and agencies, then track new listings and price changes. No account needed.

Pricing

from $0.40 / 1,000 saved results

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Features

Limited permissions

Share

Search Idealista property listings in Spain, Italy, Portugal and France, and get a table of prices, sizes, locations, agencies and photos. You enter an area and a property type. You need no Idealista account, API key or proxy setup.

Use it for market research, price tracking or lead lists. A first test with 10 Madrid homes takes 1 to 3 minutes and costs about $0.04 on the Free plan.

Idealista Scraper turns a Madrid home search into a table of prices, sizes and addresses, with full details, monitoring and agency profiles.

Table of contents

What it does

The Actor collects public property listings from the Idealista sites for Spain, Italy, Portugal and France. Each listing becomes one dataset row with its title, price, size, rooms, floor, address, agency and main photo. Turn on full details to add coordinates, bathrooms, price per square meter, the full gallery and property characteristics.

You can search by area, postal code, circle, polygon or Idealista URL. You can also look up known listing IDs, watch a search for changes, or collect public agency profiles.

It does not log in, and it does not collect private seller contacts. Phone numbers and email addresses in listing text are replaced with [redacted].

Good fit

  • Compare asking prices and sizes across areas.
  • Get new listings from a saved search on a schedule.
  • Follow price changes and missing listings for one search.
  • Build a list of agencies with their public addresses and listing counts.
  • Pull full details for a known set of listing IDs.

👉 Try it now: open the input form

How it works

  1. You choose a country, an operation, a property type and an area. You can also start from an Idealista URL or from listing IDs.
  2. The Actor reads the search results page by page and applies your filters. Idealista shows at most 1,800 listings per search. Above that, the Actor splits the search by region or price range, so rows follow your sort order only within each part.
  3. It saves one row per listing to the dataset and a run report to RUN_SUMMARY. With monitoring on, it also keeps a private history for the next run.

👉 Try it now: open the input form

Quick start

Input form with the country, sale or rent and property type (box 1), the location (box 2) and the maximum results (box 3).

  1. Open the Input tab. Keep Country, Sale or rent and Property type at Spain, For sale and Homes (box 1).

  2. Keep Location as Madrid, or enter another area (box 2).

  3. Keep Maximum results at the prefilled 10 (box 3). A larger value costs more, as shown in Pricing.

  4. Click Start at the bottom of the page, below the screenshot.

  5. When the run finishes, check the price, size and address columns in the results table (box 5).

    Output table with the price, size and address columns of a real Madrid run (box 5).

Expected result: 10 rows with Madrid homes for sale, newest first, each with a price in EUR.

👉 Try it now: open the input form

Use cases

Buyer jobInput pathOutput entityKey fieldsNext integration
Compare prices in a citylocation, propertyType, maxItemsListingprice, size, rooms, addressCSV or Excel export
Get new listings from a searchstartUrls or location, onlyNewListingpropertyCode, url, price, firstSeenSchedule, then Slack or Notion
Track price changesmonitoringMode, detectPriceChanges, onlyNewprice_change rowoldPrice, newPrice, priceDelta, pctChangeWebhook or API
Find reduced listingsonlyPriceDrops, minPriceDropPercentageListingprice, priceDrop, urlCSV export
Review agenciesmode, agencySlugsAgency profilename, totalListings, businessAddress, activeSinceYearCRM import

👉 Try it now: open the input form

Input

Input fields

Only country, operation and propertyType are required. An unknown field or a wrong value stops the run with INVALID_INPUT and names the field.

  • Empty input: the form defaults apply: homes for sale in Madrid, Spain, up to 50 rows.
  • Lists: enter one value per row in the form, or a JSON array of strings through the API.
  • Largest tested run: 3,000 rows in 25 to 30 minutes. Larger runs depend on the limits in Limits.
  • Duplicates: a listing found twice in one run is saved and charged once.
FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
countryCountryenumyeses / eses, it, pt, frPicks the Idealista siteitURLs must match it
operationSale or rentenumyessale / salesale, rentSale or rental listingsrentRent prices are per month
propertyTypeProperty typeenumyeshomes / homesnewDevelopments, homes, bedrooms, vacationRentals, garages, storageRooms, offices, premises, transfers, lands, buildingsKind of propertyofficesbedrooms means rooms for rent
locationLocationstringnoMadrid / MadridCity, district or postal area name, the place part of an Idealista URL, or a search URLOne search areamadrid-madridA name needs one extra checked page, and the URL part saves it. Blank searches all provinces, so set a limit
maxItemsMaximum resultsintegerno50 / 100 or moreRow limit across all areas1000 means no row limit
locationsLocationsstring arraynoemptyNames, URL parts or search URLsSeveral areas, in this order["Madrid","Barcelona"]Use for several cities
postalCodesPostal codesstring arraynoemptyPostal codes of Spain, Italy or PortugalSearches each code["28001"]France has no postal code search. Replaces other area fields
latitude, longitudeCenter pointnumbernoempty-90 to 90, -180 to 180Circle search40.4168, -3.7038Set both
distanceKmRadius in kmintegerno201 or moreCircle size in km5Used only with a center point
polygonMap polygonarraynoempty3 or more [lat, lng] pairsSearches inside a shape[[40.45,-3.72],[40.45,-3.66],[40.40,-3.69]]Use for custom areas
propertyCodesProperty codes or URLsstring arraynoemptyListing IDs or URLsDirect lookup with full details["112993138"]Use when you know the listings
startUrlsListing or search URLsrequest listnoemptyListing or search URLs of the countryUses the URL area, sort and filtersSearch URL from your browserCopy a search you built on the site
sortBySort orderenumnomostRecent12 orders in the formOrder within each arealowestPriceHoliday homes and new developments sort only by price
fetchDetailsInclude full detailsbooleannofalsetrue, falseAdds coordinates, full photos, characteristics and _detailstrueMuch slower, about 11 to 14 seconds per listing in Spain. Adds a Listing detail charge per listing
minPrice, maxPricePrice rangenumberno00 or more, EURLimits the price2000000 means no limit
minSize, maxSizeSize rangenumberno00 or more, m²Limits the size600 means no limit
publicationDatePublished sinceenumnoAny timeblank, Y (48 hours, sale), T (24 hours, rent), W, MLimits listing ageWUse for recent listings
rentalTypesRental typesenum arraynoemptylongTerm, seasonalLimits rentals["longTerm"]Use with rent
bedrooms, bathroomsBedrooms, bathroomsenum arraynoemptystudio, 1–4 and 1–3; the top value means that or moreLimits room counts["2","3"]Select each count you want
homeTypeHome typesenum arraynoempty10 kinds in the formLimits kind of home["penthouse"]Use with homes
condition, propertyStatus, floorCondition, occupancy, floorenum arraynoemptyListed in the formLimits by each value["good"]Leave empty for all
16 feature switchesRequired featuresbooleannofalsebankOffer, airConditioning, fittedWardrobes, lift, balcony, terrace, exterior, garage, garden, swimmingPool, storageRoom, accessible, seaViews, luxury, plan, virtualTourOn keeps only matching listingslift: trueNot all property types support each one
agencyAgency slugstringnoemptyAgency slug or /pro/ URLReturns only this agency's listings, or picks a profileclikaliaThe agency page replaces the area, so location is not used
onlyPriceDropsOnly price dropsbooleannofalsetrue, falseSaves reduced listings onlytrueChecked pages are charged
minPriceDropPercentageMinimum price reduction (%)numberno00–100Saves larger reductions only10Above 0 also limits to reduced listings
onlyNewOnly new listingsbooleannofalsetrue, falseSaves listings missing from the historytrueThe first run saves all it finds
monitoringModeMonitor listingsbooleannofalsetrue, falseKeeps a history between runstrueNeeded for the two options below
detectPriceChangesReport price changesbooleannofalsetrue, falseAdds price_change rowstrueNeeds monitoringMode
detectRemovedListingsReport removed listingsbooleannofalsetrue, falseAdds removed rowstrueNeeds monitoringMode and maxItems 0
stateNameHistory store namestringnoemptyLetters, numbers, hyphens, up to 63 charactersNames your private historymadrid-flatsEmpty gives each search its own history. If the name is taken by a store this Actor cannot open, the run uses a private store instead and reports stateFallback in RUN_SUMMARY
modeResult typeenumnolistingslistings, agenciesListings or agency profilesagenciesAgency mode ignores area filters
agencySlugsAgency profilesstring arraynoemptySlugs or /pro/ URLsAgencies to read["clikalia"]Use with agencies
deliveryConnectorSend results toconnectornononeYour MCP connectorPosts a summary after the runSlack connectorOptional
deliveryTargetNotion page or channelstringnoemptyNotion page link or Slack channel IDWhere the summary goesSlack channel IDEmpty lets the connector decide

Interacting settings

WhenInput AInput BEffective behaviorExampleCost/result effect
Several area fields are setpostalCodeslatitude, polygon, locations, locationThe first one set wins, in this order: postal codes, center point, polygon, locations, locationpostalCodes and locationOnly the postal codes run
A search URL is setstartUrlsArea fieldsThe URL replaces the area fieldsSearch URL and locationOnly the URL runs
Only direct listings are setpropertyCodesArea fields and filtersNo search runs, and full details are includedOne codeOne Listing detail and one row per listing
Direct listings and a search URL are setpropertyCodesstartUrlsBoth runOne code and one URLChecks for both
Agency mode is onmodeArea fields and filtersOnly agencySlugs or agency is readagencies with agencySlugsOne check and one row per profile
Removed listings are ondetectRemovedListingsmaxItemsmaxItems must be 0, or the run stops with an input errormaxItems: 0Scans the full search
Minimum drop is above 0minPriceDropPercentageonlyPriceDropsSaves reduced listings even with the switch off10Checked pages are charged
New and changed rows onlyonlyNewmonitoringMode, detectPriceChangesKnown listings are saved only when their price changedAll three onUnchanged pages are still charged

Input examples

First test in Madrid

{
"country": "es",
"operation": "sale",
"propertyType": "homes",
"location": "Madrid",
"maxItems": 10
}

Expected behavior: finds the area, reads one search page and stops at 10 rows. Expected output: listings with price, size, rooms, address and url. Limit or cost note: two checks and 10 rows, about $0.04 on the Free plan.

Daily check for new and changed listings

{
"country": "it",
"operation": "rent",
"propertyType": "homes",
"location": "Milano",
"maxItems": 500,
"onlyNew": true,
"monitoringMode": true,
"detectPriceChanges": true,
"stateName": "milan-rentals"
}

Expected behavior: the first run saves all listings it finds, up to 500. Later runs with the same search save new listings and price_change rows. Expected output: event, propertyCode, price, oldPrice, newPrice. Limit or cost note: checked pages are charged even when nothing changed.

Agency profiles

{
"country": "es",
"operation": "sale",
"propertyType": "homes",
"mode": "agencies",
"agencySlugs": ["clikalia"]
}

Expected behavior: reads one public profile per slug. Expected output: name, totalListings, businessAddress, activeSinceYear. Limit or cost note: one check and one row per profile.

👉 Try it now: open the input form

Output

Output fields

Search rows are read from the results page, and full-detail rows from each listing page. Search rows have the title, price, size, rooms, floor, address, agency, one photo, a short description and any price drop. Fields marked "Full details only" need Include full details or a direct lookup. The Overview table in the dataset shows most of them, and the Agencies table shows agency rows. Export includes all fields.

FieldMeaningTypeCan be empty?Example / enumSource / notes
titleListing titlestringyesPiso en Ronda de Segovia, Imperial, MadridSource text
propertyCodeListing IDstringno, except agency rows112993138Idealista listing ID
urlListing pagestringnohttps://www.idealista.com/inmueble/112993138/Public URL
eventRow typeenumnolisting, price_change, removed, agencySet by the Actor
pricePrice in EURnumberyes615000Read priceBasis
priceBasisPrice meaningenumnototal, per_month, per_nightHoliday rentals are per night
priceIsFromStarting pricebooleannofalseTrue for new developments
priceByAreaPrice per m²numberyes3107Full details only
size, rooms, bathroomsSize in m², bedrooms, bathroomsnumberyes140, 5, 2bathrooms needs full details. 0 rooms means a studio
floorFloorstringyes2ª planta exterior con ascensorSource text in the local language
addressAddress textstringyesRonda de Segovia, Imperial, MadridCan be approximate, and on search rows it can repeat the title
areasStreet, neighborhood and larger placesarrayyes["Quartiere Villa Bonelli","Roma"]Full details only
lat, lng, latitude, longitudeCoordinatesnumberyes41.846098, 12.4534943Full details only. Can be approximate, and some listings have none, more often in France
agencyAgency name, slug and logoobjectyes{"name":"FH Inmobiliaria","slug":"fh-inmobiliaria"}Null for private sellers and when the page names no agency
photos, numPhotosImage URLs and photo countarray, numberyes25One photo on search rows, the gallery with full details. Image URLs can expire
descriptionListing textstringyesShort textShort on search rows, full with full details. Phones and emails are replaced
featuresListed characteristics by groupobjectyes{"basic":["Balcone"],"building":["Con ascensor"]}Full details only, as source text. Empty on search rows
priceDropCurrent reductionobjectyesnullAmount, percentage and date
_details, energyCertification, hasPlan, subtype, externalReferenceFull detailsmixedyeslocation, characteristics, imagesWith fetchDetails or direct lookup. The energy rating is filled only when the page shows its letter
firstSeenFirst time in your historystringyesISO dateWith monitoring or onlyNew
oldPrice, newPrice, priceDelta, pctChangePrice changenumberyes600000On price_change rows
lastSeenInSnapshotLast saved observationstringyesISO dateOn removed rows
name, agencySlug, logo, image, totalListings, activeSinceYear, languages, businessAddressAgency profilemixedyesclikaliaOn agency rows
fetchedAtFetch time in UTCstringno2026-11-05T04:47:37.261ZSet by the Actor

Output entities and surfaces

SituationDataset/API/KVS/live viewResult shapeUser action
Normal itemDataset, plus RUN_SUMMARY in the key-value storeOne row per listing, status completeOpen the table or export
Domain-empty resultEmpty dataset, run succeeds, savedCount 0No rows, searchPages shows the checkWiden the area or filters
Partial resultSaved rows stay, run succeeds with status partial, stopReason DEADLINE, CHARGE_LIMIT or INCOMPLETE_SCANRows up to the stopIncrease the limit, or read Troubleshooting
Technical failure or retryRun fails, saved rows stay, stopReason holds the error codeRows saved before the errorRead the code in Troubleshooting, then retry

A deadline with no saved rows counts as a failed run. Direct listings that no longer exist are listed in notFound in RUN_SUMMARY.

Output example

{
"propertyCode": "112996863",
"url": "https://www.idealista.com/inmueble/112996863/",
"source": "idealista",
"country": "es",
"operation": "sale",
"propertyType": "homes",
"title": "Piso en Ronda de Segovia, Imperial, Madrid",
"price": 695000,
"currency": "EUR",
"priceBasis": "total",
"priceIsFrom": false,
"size": 105,
"rooms": 2,
"floor": "2ª planta exterior con ascensor",
"address": "Ronda de Segovia, Imperial, Madrid",
"agency": {
"name": "FH Inmobiliaria",
"slug": "fh-inmobiliaria",
"logo": "https://st3.idealista.com/8e/0b/2c/fh-inmobiliaria.gif"
},
"numPhotos": 25,
"event": "listing"
}

This search row is trimmed and comes from a Madrid run. Null means Idealista did not show the value. It does not mean zero.

Send results to Slack or Notion

Pick your connector in the optional deliveryConnector field. After the run saves its data, the Actor posts a short summary (up to 25 rows and a link to the full dataset) there. Put a Notion page link or a Slack channel ID in deliveryTarget: in Notion every run is added on top of that one page, so your workspace does not fill up with new pages. A delivery error never fails the run and costs nothing extra. Connect a service once in Apify Console → MCP connectors.

Use case → fields

Buyer jobInput pathOutput entityKey fieldsNext integration
Price comparisonlocationListingprice, size, addressSpreadsheet
New listing alertsonlyNewListingurl, firstSeenSlack or Notion
Price trackingdetectPriceChangesprice_change rowoldPrice, newPriceWebhook
Removed listing reviewdetectRemovedListingsremoved rowpropertyCode, lastSeenInSnapshotAPI
Agency researchagencySlugsAgency profiletotalListings, businessAddressCRM

👉 Try it now: open the input form

Pricing

Pricing unit

You pay per event. Apify platform usage is included in these prices.

EventFreeBronzeSilverGold, Platinum, Diamond
Run start$0.0121$0.0109$0.0097$0.0085
Saved result$0.00057$0.00051$0.00046$0.0004
Checked page or object$0.0093$0.0084$0.0074$0.0065
Listing detail$0.0093$0.0084$0.0074$0.0065

A checked page is one search page of up to 30 listings, or one agency profile. A listing detail is one full listing page, read when Include full details is on or for a direct lookup. Each page goes through a paid unblocking service, which is included in these prices and makes pages cost more than rows.

  • No matches: a valid search with no results costs the start fee and its checks, usually one or two.
  • Filters: pages checked by onlyPriceDrops or a minimum drop are charged even if no row is saved.
  • Monitoring: an unchanged run costs the start fee and its checked pages, and saves no rows with onlyNew.
  • Missing listing: a direct listing that no longer exists costs one checked page and saves no row.
  • Partial or failed run: you pay for pages that were read and rows that were saved. A failed request is free.
  • Start fee: it scales with run memory, per GB. Up to 1 GB is one fee, and this Actor uses at most 256 MB.

Cost examples

ScenarioInput scopeExpected item/event countBase chargeOptional chargeStop/cap behavior
First test (calculated from measured counts)Madrid, 10 rows10 rows, 2 checks$0.04 Free, $0.026 GoldnoneStops at maxItems, 1 to 3 minutes
Full details (calculated from measured counts)Valencia, 100 rows100 rows, 5 checks, 100 details$0.12 Free, $0.081 Gold$0.93 Free, $0.65 GoldStops at maxItems or your charge limit, 17 to 24 minutes
Typical large search (calculated)1,000 rows1,000 rows, about 35 checks$0.91 Free, $0.64 GoldnoneStops at maxItems or your charge limit
Big search (calculated from measured counts)Madrid, 3,000 rows3,000 rows, about 107 checks$2.72 Free, $1.90 GoldnoneStops at maxItems, 25 to 30 minutes

Set Maximum cost per run when you start a run. At that limit the run stops, keeps its rows and ends with stopReason CHARGE_LIMIT.

👉 Try it now: open the input form

Limits

  • Idealista can change its pages or block access. Saved rows stay in the dataset when a run stops.
  • maxItems 0 reads as far as time, cost and the source allow. A run stops at 30,000 page requests or 1 GB of responses, and a single page above 8 MB is refused.
  • A search above the 1,800-listing window that cannot be split further keeps its first 1,800 listings and ends with scanComplete false and stopReason INCOMPLETE_SCAN. Splitting by price can miss listings with no price.
  • Addresses and coordinates can be approximate, and coordinates can be missing, more often in France.
  • Idealista shows view and contact counters only to signed-in users, so this Actor does not return them.
  • Holiday rental pages show no size or agency, and those fields are null.
  • Photo and media URLs are signed and can expire. Download what you need soon after the run.
  • If Apify moves a run to another server, the run continues where it stopped, without saving or charging the same rows and pages twice. restarts in RUN_SUMMARY counts these moves, and removed rows wait for the next complete scan.
  • A removed row means the listing is missing from a complete scan of the same search. It does not prove a sale.
  • A history keeps up to 100,000 listings, and the oldest closed ones go first. Run one search with the same history at a time.
  • Agency mode reads the profiles you name. It does not list all agencies, and it does not add contact details from other sources.
  • The currency field is always EUR.
  • Run memory is 128 to 256 MB, and the default is 256 MB. A run needs at least 60 seconds.
  • Full details are slow: 100 listings in Spain took 17 to 24 minutes, so the default 1-hour timeout fits about 200 of them. For more, raise the timeout, or the run stops with partial results and stopReason DEADLINE.
  • The Actor is not affiliated with Idealista. Idealista's terms limit commercial data extraction, so check that your use follows them and applicable privacy law.

👉 Try it now: open the input form

API, export and integrations

  • API: start a run with the input JSON at POST https://api.apify.com/v2/acts/cliqtomedia~idealista-scraper/runs, then read rows from the default dataset.
  • Export: download the dataset as JSON, CSV, Excel, XML or HTML.
  • Scheduling: create an Apify schedule with onlyNew and a stateName. Each run saves only what is new.
  • Webhooks / no-code: an Apify webhook on run success can pass the dataset ID to Make, Zapier or n8n. Your next step reads url, price and event.
  • Slack or Notion: use deliveryConnector, as described in Output.

Use with AI agents (MCP)

MCP server URL with only this Actor: https://mcp.apify.com?tools=cliqtomedia/idealista-scraper.

Smallest useful input:

{
"country": "es",
"operation": "sale",
"propertyType": "homes",
"location": "Madrid",
"maxItems": 10
}

Key output fields:

  • price: price in EUR. priceBasis says if it is total, monthly or nightly.
  • size: built area in square meters.
  • rooms: bedrooms, with 0 for a studio.
  • address: address text from the listing.
  • url: public listing page.

A 10-row run takes 1 to 3 minutes and costs about $0.04 on the Free plan. Keep maxItems above 0 unless a full scan is needed. Coordinates can be approximate, and null values mean the source gave no value.

👉 Try it now: open the input form

Troubleshooting

The run ended with no rows

Symptom: the dataset is empty and the run succeeded. Likely reason: the filters match nothing, or onlyNew found nothing new. Check: savedCount and searchPages in RUN_SUMMARY. Action: remove a filter or widen the area.

INVALID_INPUT

Symptom: the run fails at once and the message names fields. Likely reason: a wrong value or a missing partner field, such as latitude without longitude, or minPrice above maxPrice. Check: the field named in the message. Action: fix the value in the Input tab.

LOCATION_NOT_FOUND or LOCATION_NOT_RESOLVED

Symptom: the run stops before any rows. Likely reason: Idealista does not know the name, or it did not answer when the name was looked up. Check: country and the spelling, including the local name. Action: retry once, use a larger area name, or start from a search URL.

UNSUPPORTED_FILTER

Symptom: the run stops at once and the message names a field. Likely reason: Idealista has no such page for this country and property type. Check: the field named in the message, then the same filter on the site. Action: remove the filter, or paste a search URL that has it into startUrls.

UNRECOGNIZED_SEARCH_URL or INVALID_SEARCH_URL

Symptom: a URL in startUrls stops the run. Likely reason: the URL has a filter that cannot be read, or it belongs to another site. The run stops so that no filter is lost. Check: the error names the part it could not read. The host must be www.idealista.com, .it, .pt or .fr. Action: remove that filter from the URL, or use the input fields.

SOURCE_UNAVAILABLE, SOURCE_PAGE_UNRECOGNIZED or SOURCE_RETRY_LIMIT

Symptom: the run stops with one of these codes. Rows saved earlier stay. Likely reason: Idealista did not answer after several tries, returned a page the Actor could not read, or too many paid tries gave no usable page. A page gets up to 6 tries, or 4 once the run has read a page. During a failure streak requests try one at a time, and the streak stops the run after about 6 paid tries, or fewer if they are slow, so that retries do not run up a bill. A run that has read many pages gets more tries. One bad page alone does not stop the run. Check: stopReason, savedCount in RUN_SUMMARY. Action: retry later. If it repeats, open an issue with the run ID.

DEADLINE or CHARGE_LIMIT

Symptom: the run succeeded with status partial. Likely reason: the timeout or your maximum cost was reached. Check: stopReason in RUN_SUMMARY. Action: increase the limit, or split the search.

INCOMPLETE_SCAN

Symptom: the run succeeded with rows, status partial and scanComplete false. Likely reason: too many listings share one price, so the search could not be split further, or some pages or areas could not be read. Check: windowLimited, skippedPages and skippedAreas in RUN_SUMMARY. Action: narrow the area, add filters, or retry.

RESOURCE_ERROR

Symptom: the run stops at once with this code. Likely reason: the run has less than 60 seconds, or its memory is outside 128 to 256 MB. Check: Timeout and Memory in the run options. Action: set a longer timeout, or go back to the default 256 MB.

STATE_SCOPE_MISMATCH

Symptom: a monitoring run stops at once. Likely reason: stateName is already used by a different search. Check: the search fields against the earlier run. Action: use a new stateName.

👉 Try it now: open the input form

FAQ

Does it return view or contact counters?

No. Idealista shows them only to signed-in users, and this Actor does not log in.

Do I need an Idealista account or API key?

No. The Actor reads public listings, and you need only an Apify account.

Does it return seller phone numbers?

No. It saves public business data for agencies, and it replaces phones and email addresses in listing text with [redacted].

Will I get every listing in an area?

Set maxItems to 0 for a full scan. scanComplete in RUN_SUMMARY tells you if the scan finished. The result can still miss listings that change during the run.

What does a run with no results cost?

The start fee and the checked pages, so about $0.02 for one page on the Free plan.

How fresh is the data?

Each row shows what Idealista returned at fetchedAt. Use a schedule to keep it current.

How do I keep two monitors apart?

Give each search its own stateName, or leave it empty so that each search gets its own history.

👉 Try it now: open the input form

👉 Try it now: open the input form

Support

For a bug, question or feature request, open the Issues tab of this Actor on Apify. Include the run ID, the input mode and the error code. Do not send tokens, cookies or private data.

👉 Try it now: open the input form