{
  "data": {
    "id": "NmaO0OGZLbpxwqbDg",
    "actId": "NyUqiKhjLo7WaoLJ3",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-23T05:49:38.561Z",
    "finishedAt": "2026-10-23T05:50:29.731Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 51084,
      "runTimeSecs": 51.084,
      "computeUnits": 0.05676,
      "imageSizeBytes": 5965131776
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Idealista Search Listings Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to scrape: a location search, your own search URLs, or individual property URLs/IDs. Inferred from the supplied URLs when omitted.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"startUrls\",\n        \"propertyUrls\"\n      ],\n      \"enumTitles\": [\n        \"Search by location\",\n        \"Search URLs\",\n        \"Property URLs / IDs\"\n      ],\n      \"prefill\": \"search\",\n      \"sectionCaption\": \"Mode\"\n    },\n    \"location\": {\n      \"title\": \"Location\",\n      \"type\": \"string\",\n      \"description\": \"City or area slug from an Idealista URL (e.g. madrid-madrid, barcelona-barcelona, lisboa, roma-roma). You can also paste a full Idealista search URL. Used in Search by location mode.\",\n      \"default\": \"madrid-madrid\",\n      \"prefill\": \"roma-roma\",\n      \"editor\": \"textfield\"\n    },\n    \"operation\": {\n      \"title\": \"Operation\",\n      \"type\": \"string\",\n      \"description\": \"Properties for sale or for rent.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"sale\",\n        \"rent\"\n      ],\n      \"enumTitles\": [\n        \"For sale\",\n        \"For rent\"\n      ],\n      \"default\": \"sale\",\n      \"prefill\": \"sale\"\n    },\n    \"propertyType\": {\n      \"title\": \"Property Type\",\n      \"type\": \"string\",\n      \"description\": \"Type of property to search for.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"homes\",\n        \"newDevelopments\",\n        \"offices\",\n        \"premises\",\n        \"garages\",\n        \"lands\",\n        \"storageRooms\",\n        \"buildings\",\n        \"bedrooms\"\n      ],\n      \"enumTitles\": [\n        \"Homes\",\n        \"New developments\",\n        \"Offices\",\n        \"Commercial premises\",\n        \"Garages\",\n        \"Land\",\n        \"Storage rooms\",\n        \"Buildings\",\n        \"Rooms\"\n      ],\n      \"default\": \"homes\",\n      \"prefill\": \"homes\"\n    },\n    \"country\": {\n      \"title\": \"Country\",\n      \"type\": \"string\",\n      \"description\": \"Idealista market: Spain, Portugal, or Italy. Auto-detected when you use URLs.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"es\",\n        \"pt\",\n        \"it\"\n      ],\n      \"enumTitles\": [\n        \"Spain (idealista.com)\",\n        \"Portugal (idealista.pt)\",\n        \"Italy (idealista.it)\"\n      ],\n      \"default\": \"es\",\n      \"prefill\": \"it\"\n    },\n    \"startUrls\": {\n      \"title\": \"Search URLs\",\n      \"type\": \"array\",\n      \"description\": \"Idealista search-result URLs to scrape (filters and map-area URLs are kept as-is). Used in Search URLs mode.\",\n      \"editor\": \"requestListSources\",\n      \"sectionCaption\": \"URLs\"\n    },\n    \"propertyUrls\": {\n      \"title\": \"Property URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"Individual Idealista property URLs or numeric property IDs. Used in Property URLs / IDs mode.\",\n      \"editor\": \"stringList\"\n    },\n    \"propertySubtype\": {\n      \"title\": \"Property Subtype\",\n      \"type\": \"string\",\n      \"description\": \"Narrow homes to a subtype (flat, penthouse, duplex, villa, etc.).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"flat\",\n        \"penthouse\",\n        \"duplex\",\n        \"studio\",\n        \"loft\",\n        \"chalet\",\n        \"independentHouse\",\n        \"semiDetached\",\n        \"terraced\",\n        \"villa\",\n        \"countryHouse\",\n        \"office\",\n        \"premises\",\n        \"garage\",\n        \"land\",\n        \"storageRoom\",\n        \"building\",\n        \"room\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Flat / apartment\",\n        \"Penthouse\",\n        \"Duplex\",\n        \"Studio\",\n        \"Loft\",\n        \"Chalet\",\n        \"Independent house\",\n        \"Semi-detached house\",\n        \"Terraced house\",\n        \"Villa\",\n        \"Country house\",\n        \"Office\",\n        \"Commercial premises\",\n        \"Garage\",\n        \"Land\",\n        \"Storage room\",\n        \"Building\",\n        \"Room\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\",\n      \"sectionCaption\": \"Filters\"\n    },\n    \"priceMin\": {\n      \"title\": \"Minimum Price (EUR)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop listings cheaper than this price. Rounded to Idealista's nearest price bucket.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000\n    },\n    \"priceMax\": {\n      \"title\": \"Maximum Price (EUR)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop listings more expensive than this price. Rounded to Idealista's nearest price bucket.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000\n    },\n    \"sizeMin\": {\n      \"title\": \"Minimum Size (m²)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop listings smaller than this size. Rounded to Idealista's nearest size bucket.\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"sizeMax\": {\n      \"title\": \"Maximum Size (m²)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop listings larger than this size. Rounded to Idealista's nearest size bucket.\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"rooms\": {\n      \"title\": \"Rooms\",\n      \"type\": \"string\",\n      \"description\": \"Number of rooms.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"1\",\n        \"2\",\n        \"3\",\n        \"4\",\n        \"5+\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"1\",\n        \"2\",\n        \"3\",\n        \"4\",\n        \"5 or more\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"bathrooms\": {\n      \"title\": \"Bathrooms\",\n      \"type\": \"string\",\n      \"description\": \"Number of bathrooms.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"1\",\n        \"2\",\n        \"3+\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"1\",\n        \"2\",\n        \"3 or more\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"condition\": {\n      \"title\": \"Condition\",\n      \"type\": \"string\",\n      \"description\": \"Property condition.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"new\",\n        \"good\",\n        \"toRenovate\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"New build\",\n        \"Good condition\",\n        \"To renovate\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"hasLift\": {\n      \"title\": \"Has Lift\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a lift.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasTerrace\": {\n      \"title\": \"Has Terrace\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a terrace.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasPool\": {\n      \"title\": \"Has Pool\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a swimming pool.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasGarden\": {\n      \"title\": \"Has Garden\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a garden.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasGarage\": {\n      \"title\": \"Has Garage\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a garage or parking space.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasStorageRoom\": {\n      \"title\": \"Has Storage Room\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a storage room.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasAirConditioning\": {\n      \"title\": \"Has Air Conditioning\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with air conditioning.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasBalcony\": {\n      \"title\": \"Has Balcony\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings with a balcony.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"isNewDevelopment\": {\n      \"title\": \"New Development\",\n      \"type\": \"boolean\",\n      \"description\": \"Only new-development listings.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"isBankOwned\": {\n      \"title\": \"Bank-Owned\",\n      \"type\": \"boolean\",\n      \"description\": \"Only bank-owned listings where the source marks them.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"isAuction\": {\n      \"title\": \"Auction\",\n      \"type\": \"boolean\",\n      \"description\": \"Only auction listings where the source marks them.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"isLuxury\": {\n      \"title\": \"Luxury\",\n      \"type\": \"boolean\",\n      \"description\": \"Only luxury listings.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"hasSeaViews\": {\n      \"title\": \"Sea Views\",\n      \"type\": \"boolean\",\n      \"description\": \"Only listings advertised with sea views.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"isAccessible\": {\n      \"title\": \"Accessible\",\n      \"type\": \"boolean\",\n      \"description\": \"Only accessible homes.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"sortBy\": {\n      \"title\": \"Sort By\",\n      \"type\": \"string\",\n      \"description\": \"Result order.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"relevance\",\n        \"priceAsc\",\n        \"priceDesc\",\n        \"areaAsc\",\n        \"areaDesc\",\n        \"pricePerSqmAsc\",\n        \"pricePerSqmDesc\"\n      ],\n      \"enumTitles\": [\n        \"Relevance\",\n        \"Price: low to high\",\n        \"Price: high to low\",\n        \"Size: small to large\",\n        \"Size: large to small\",\n        \"Price per m²: low to high\",\n        \"Price per m²: high to low\"\n      ],\n      \"default\": \"relevance\",\n      \"prefill\": \"relevance\",\n      \"sectionCaption\": \"Output\"\n    },\n    \"onlyPriceDrops\": {\n      \"title\": \"Only Price Drops\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only listings whose price was reduced.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"minPriceDropPercent\": {\n      \"title\": \"Minimum Price Drop (%)\",\n      \"type\": \"integer\",\n      \"description\": \"Keep only listings reduced by at least this percentage. Implies price-drop filtering.\",\n      \"minimum\": 0,\n      \"maximum\": 100\n    },\n    \"onlyPrivateOwners\": {\n      \"title\": \"Only Private Owners\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only private-seller listings.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"fetchDetails\": {\n      \"title\": \"Fetch Details\",\n      \"type\": \"boolean\",\n      \"description\": \"Visit each listing's page to add bathrooms, energy rating, year built, condition, full description, gallery and agency phone. Slower and uses more requests.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"maxDetails\": {\n      \"title\": \"Maximum Detail Pages\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of listing pages to enrich when Fetch Details is on.\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 100,\n      \"prefill\": 3\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum Listings\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of listings to save.\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 100,\n      \"prefill\": 3,\n      \"sectionCaption\": \"Limits\"\n    },\n    \"partitionLargeSearches\": {\n      \"title\": \"Partition Large Searches\",\n      \"type\": \"boolean\",\n      \"description\": \"When a search has more than 1,800 results and you ask for more, split it by price buckets so the 1,800-per-search cap is bypassed.\",\n      \"default\": true,\n      \"prefill\": false\n    }\n  },\n  \"required\": []\n}",
    "readme": "# Idealista Search Listings Price & Feature Scraper\n\nScrape **Idealista** property listings across Spain, Italy and Portugal. Search a city or area, paste your own Idealista search URLs, or look up individual properties, and get structured records with price, price-drop signals, size, rooms, bathrooms, coordinates, features, energy certificate, images, description and agency contact.\n\n## What this actor does\n\n- **Three modes:** search by location, paste search-result URLs, or fetch individual property URLs/IDs\n- **Three markets:** idealista.com (Spain), idealista.pt (Portugal), idealista.it (Italy)\n- **Rich listing data:** price and €/m², previous price and drop %, size, rooms, bathrooms, floor, condition, year built, energy rating, coordinates, gallery and full description\n- **Real filters:** operation, property type and subtype, price, size, rooms, bathrooms, condition, lift, terrace, pool, garden, garage, storage, air conditioning, balcony, new development, luxury, sea views, accessible, bank-owned, auction, private owners and price drops. Idealista applies filters as URL path segments; for two or more filters, use `startUrls` mode with a filtered Idealista URL that loads in your browser.\n- **Large searches:** walks every result page and, for unfiltered searches where you ask for more than Idealista's 1,800-result cap, splits the search by price buckets and removes duplicates\n- **No login, no cookies, no proxy setup** — the actor chooses a working connection automatically\n\n## Output per listing\n\n- `propertyCode` — Idealista property ID\n- `url`, `sourceUrl` — canonical listing URL and the search URL that produced it\n- `recordType` — `listing`\n- `price`, `priceByArea`, `currency` — current price, €/m² and currency\n- `previousPrice`, `priceDropAmount`, `priceDropPercent`, `hasPriceDrop`, `priceDrop` — price-cut fields when the listing shows a reduction\n- `size`, `constructedArea`, `usableArea`, `plotArea` — areas in m²\n- `rooms`, `bathrooms`\n- `floor`, `exterior`, `condition`, `yearBuilt`\n- `energyRating`, `energyConsumption`, `energyEmissions`, `energyCertification`\n- `communityFees` — monthly building fees when shown\n- `description` — full listing description when details are fetched\n- `address`, `street`, `neighborhood`, `district`, `municipality`, `province`, `country`\n- `latitude`, `longitude`, `addressVisibility`, `showAddress`\n- `images`, `numPhotos`, `multimedia`\n- `hasVideo`, `has3DTour`, `has360`, `hasStaging`, `hasPlan`\n- `hasLift`, `hasSwimmingPool`, `hasTerrace`, `hasAirConditioning`, `hasBoxRoom`, `hasGarden`, `hasParkingSpace`\n- `features` — advertised feature flags from the card or property page; `featureSource` says which\n- `contactInfo` — agency/owner name, logo, phone, reference, profile URL, user type and response time\n- `agency`, `phone`, `reference`\n- `propertyType`, `propertySubtype`, `operation`, `status`\n- `newDevelopment`, `externalReference`, `topPlus`, `isPriceDrop`, `isOffmarket`, `isFeatured`, `isExclusive`, `isBankOwned`, `isAuction`, `isTenanted`, `isOccupied`, `isNudaPropiedad`\n- `updatedAtText`, `updatedAt`, `scrapedAt`\n\nEmpty fields are omitted. A feature flag is present only when the source confirms it; it is never emitted as a guessed `false`.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | – | `search` by location, `startUrls` for your own search URLs, `propertyUrls` for property URLs/IDs; inferred when omitted |\n| `location` | string | `madrid-madrid` | City/area slug or a full Idealista search URL (mode=search) |\n| `operation` | string | `sale` | `sale` or `rent` |\n| `propertyType` | string | `homes` | homes, newDevelopments, offices, premises, garages, lands, storageRooms, buildings, bedrooms |\n| `country` | string | `es` | `es`, `pt`, `it`; auto-detected from URLs |\n| `startUrls` | array | – | Idealista search URLs, filters and map-area URLs kept as-is (mode=startUrls) |\n| `propertyUrls` | array | – | Property URLs or numeric IDs (mode=propertyUrls) |\n| `propertySubtype` | string | `any` | any, flat, penthouse, duplex, studio, loft, chalet, independentHouse, semiDetached, terraced, villa, countryHouse, office, premises, garage, land, storageRoom, building, room |\n| `priceMin` | integer | – | Minimum price in EUR |\n| `priceMax` | integer | – | Maximum price in EUR |\n| `sizeMin` | integer | – | Minimum size in m² |\n| `sizeMax` | integer | – | Maximum size in m² |\n| `rooms` | string | `any` | any, 1, 2, 3, 4, 5+ |\n| `bathrooms` | string | `any` | any, 1, 2, 3+ |\n| `condition` | string | `any` | any, new, good, toRenovate |\n| `hasLift` | boolean | `false` | Only listings with a lift |\n| `hasTerrace` | boolean | `false` | Only listings with a terrace |\n| `hasPool` | boolean | `false` | Only listings with a pool |\n| `hasGarden` | boolean | `false` | Only listings with a garden |\n| `hasGarage` | boolean | `false` | Only listings with a garage/parking |\n| `hasStorageRoom` | boolean | `false` | Only listings with a storage room |\n| `hasAirConditioning` | boolean | `false` | Only listings with air conditioning |\n| `hasBalcony` | boolean | `false` | Only listings with a balcony |\n| `isNewDevelopment` | boolean | `false` | Only new developments |\n| `isBankOwned` | boolean | `false` | Only bank-owned listings |\n| `isAuction` | boolean | `false` | Only auction listings |\n| `isLuxury` | boolean | `false` | Only luxury listings |\n| `hasSeaViews` | boolean | `false` | Only listings advertised with sea views |\n| `isAccessible` | boolean | `false` | Only accessible homes |\n| `sortBy` | string | `relevance` | relevance, priceAsc, priceDesc, areaAsc, areaDesc, pricePerSqmAsc, pricePerSqmDesc |\n| `onlyPriceDrops` | boolean | `false` | Keep only reduced listings |\n| `minPriceDropPercent` | integer | – | Minimum price-drop percentage |\n| `onlyPrivateOwners` | boolean | `false` | Keep only private sellers |\n| `fetchDetails` | boolean | `false` | Visit each listing page for bathrooms, energy, year, condition, full description, gallery and phone |\n| `maxDetails` | integer | `100` | Maximum number of detail pages to fetch |\n| `maxItems` | integer | `100` | Maximum listings to save (1–10,000) |\n| `partitionLargeSearches` | boolean | `true` | Split searches above 1,800 results into price buckets |\n\n### Example: Madrid homes for sale with a pool\n\n```json\n{\n  \"mode\": \"search\",\n  \"location\": \"madrid-madrid\",\n  \"operation\": \"sale\",\n  \"propertyType\": \"homes\",\n  \"country\": \"es\",\n  \"hasPool\": true,\n  \"priceMax\": 600000,\n  \"fetchDetails\": true,\n  \"maxItems\": 50\n}\n```\n\n### Example: Lisbon rentals by search URL\n\n```json\n{\n  \"mode\": \"startUrls\",\n  \"startUrls\": [\n    { \"url\": \"https://www.idealista.pt/arrendar-casas/lisboa/\" }\n  ],\n  \"maxItems\": 100\n}\n```\n\n### Example: Rome offices with details\n\n```json\n{\n  \"mode\": \"search\",\n  \"location\": \"roma-roma\",\n  \"operation\": \"sale\",\n  \"propertyType\": \"offices\",\n  \"country\": \"it\",\n  \"fetchDetails\": true,\n  \"maxItems\": 30\n}\n```\n\n### Example: look up specific properties\n\n```json\n{\n  \"mode\": \"propertyUrls\",\n  \"propertyUrls\": [\n    \"https://www.idealista.com/inmueble/111379612/\",\n    \"https://www.idealista.it/immobile/37181412/\"\n  ]\n}\n```\n\n## Use cases\n\n- **Market research** — compare asking prices and €/m² across cities, districts and property types\n- **Investment screening** — find reduced listings and compare them with the local market\n- **Lead generation** — collect agency names, phone numbers and references for real-estate outreach\n- **Portfolio monitoring** — schedule runs to track new listings, price cuts and removed properties\n- **Comparable sales** — pull a neighbourhood's listings with size, condition, year and energy rating\n- **Data enrichment** — add coordinates, features and images to an existing property database\n\n## Limitations\n\n- **1,800 results per search.** Idealista serves at most 60 pages of 30 listings. The actor partitions larger searches by price when you ask for more, but a single search URL cannot exceed the cap.\n- **Market protection can slow a run.** Italy, Spain and Portugal may challenge some requests; the actor retries and switches to a slower working connection when needed. A run can take longer on those days.\n- **Valid location slugs matter.** Portugal uses Portuguese names (`lisboa`, `porto`); Italy uses Italian names (`roma-roma`, `milano-milano`). A wrong slug returns no listings.\n- **Private sellers often hide their phone.** The phone field is included only when Idealista publishes it.\n- **No publication date.** Idealista does not expose a reliable published timestamp on public pages; the actor includes the “last updated” text/date when shown.\n- **Detail fields require `fetchDetails`.** Bathrooms, energy rating, year built, condition, full description, gallery and phone come from the property page.\n- **Agency email is not included.** Idealista publishes the agency phone/reference, not its email.\n\n## FAQ\n\n**Do I need an Idealista account or cookies?**\nNo. The actor reads public listing pages and needs no login.\n\n**Do I need to configure a proxy?**\nNo. The actor chooses a working connection automatically. Just fill in the input and run.\n\n**Which countries are supported?**\nSpain (`idealista.com`), Portugal (`idealista.pt`) and Italy (`idealista.it`). Country is auto-detected when you paste a URL.\n\n**How many listings can I get from one search?**\nIdealista serves at most 60 result pages of 30 listings (1,800) per search. For unfiltered searches, when you ask for more, the actor splits the search into price buckets, removes duplicates and keeps going. Filtered searches are capped at 1,800; use `startUrls` mode with a filtered URL that loads in your browser for full control.\n\n**Why are some fields missing?**\nSearch cards do not show everything. Bathrooms, energy rating, year built, condition, full description and phone come from the property page; turn on `fetchDetails` to collect them. Private sellers often hide their phone, so that field is omitted for those listings.\n\n**Why does the first page sometimes take a minute?**\nIdealista can challenge requests in any of the three markets. When the fast path is unavailable, the actor prepares a slower working connection before loading the first page. Later pages reuse that connection and are much faster.\n\n**Are the images hotlink-safe?**\nYes. Image URLs are public CDN links and open without cookies or a referrer.\n\n**Why is there no published date?**\nIdealista does not expose a reliable publication timestamp on its public pages. The actor includes the “last updated” text and date when the page shows it, but does not invent a publication date.\n\n**Can I scrape multiple cities in one run?**\nYes. Use `startUrls` with one search URL per city or district; they are processed in order up to `maxItems`.\n\n**Is this affiliated with Idealista?**\nNo. This is an independent, third-party actor that reads publicly available Idealista pages. It is not affiliated with or endorsed by Idealista.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "idealista-search-listings-price-and-feature",
      "title": "Idealista Search Listings Price & Feature Scraper",
      "description": "Scrape Idealista listings in Spain, Italy and Portugal: prices, price drops, size, rooms, bathrooms, coordinates, features, energy rating, images, agency phone and full descriptions. Search by location, paste search URLs, or look up properties.",
      "version": "1.0",
      "buildTag": "latest",
      "defaultMemoryMbytes": 4096,
      "minMemoryMbytes": 1024,
      "defaultRunOptions": {
        "timeoutSecs": 3600,
        "memoryMbytes": 4096
      },
      "input": {
        "title": "Idealista Search Listings Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to scrape: a location search, your own search URLs, or individual property URLs/IDs. Inferred from the supplied URLs when omitted.",
            "editor": "select",
            "enum": [
              "search",
              "startUrls",
              "propertyUrls"
            ],
            "enumTitles": [
              "Search by location",
              "Search URLs",
              "Property URLs / IDs"
            ],
            "prefill": "search",
            "sectionCaption": "Mode"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or area slug from an Idealista URL (e.g. madrid-madrid, barcelona-barcelona, lisboa, roma-roma). You can also paste a full Idealista search URL. Used in Search by location mode.",
            "default": "madrid-madrid",
            "prefill": "roma-roma",
            "editor": "textfield"
          },
          "operation": {
            "title": "Operation",
            "type": "string",
            "description": "Properties for sale or for rent.",
            "editor": "select",
            "enum": [
              "sale",
              "rent"
            ],
            "enumTitles": [
              "For sale",
              "For rent"
            ],
            "default": "sale",
            "prefill": "sale"
          },
          "propertyType": {
            "title": "Property Type",
            "type": "string",
            "description": "Type of property to search for.",
            "editor": "select",
            "enum": [
              "homes",
              "newDevelopments",
              "offices",
              "premises",
              "garages",
              "lands",
              "storageRooms",
              "buildings",
              "bedrooms"
            ],
            "enumTitles": [
              "Homes",
              "New developments",
              "Offices",
              "Commercial premises",
              "Garages",
              "Land",
              "Storage rooms",
              "Buildings",
              "Rooms"
            ],
            "default": "homes",
            "prefill": "homes"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Idealista market: Spain, Portugal, or Italy. Auto-detected when you use URLs.",
            "editor": "select",
            "enum": [
              "es",
              "pt",
              "it"
            ],
            "enumTitles": [
              "Spain (idealista.com)",
              "Portugal (idealista.pt)",
              "Italy (idealista.it)"
            ],
            "default": "es",
            "prefill": "it"
          },
          "startUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Idealista search-result URLs to scrape (filters and map-area URLs are kept as-is). Used in Search URLs mode.",
            "editor": "requestListSources",
            "sectionCaption": "URLs"
          },
          "propertyUrls": {
            "title": "Property URLs or IDs",
            "type": "array",
            "description": "Individual Idealista property URLs or numeric property IDs. Used in Property URLs / IDs mode.",
            "editor": "stringList"
          },
          "propertySubtype": {
            "title": "Property Subtype",
            "type": "string",
            "description": "Narrow homes to a subtype (flat, penthouse, duplex, villa, etc.).",
            "editor": "select",
            "enum": [
              "any",
              "flat",
              "penthouse",
              "duplex",
              "studio",
              "loft",
              "chalet",
              "independentHouse",
              "semiDetached",
              "terraced",
              "villa",
              "countryHouse",
              "office",
              "premises",
              "garage",
              "land",
              "storageRoom",
              "building",
              "room"
            ],
            "enumTitles": [
              "Any",
              "Flat / apartment",
              "Penthouse",
              "Duplex",
              "Studio",
              "Loft",
              "Chalet",
              "Independent house",
              "Semi-detached house",
              "Terraced house",
              "Villa",
              "Country house",
              "Office",
              "Commercial premises",
              "Garage",
              "Land",
              "Storage room",
              "Building",
              "Room"
            ],
            "default": "any",
            "prefill": "any",
            "sectionCaption": "Filters"
          },
          "priceMin": {
            "title": "Minimum Price (EUR)",
            "type": "integer",
            "description": "Drop listings cheaper than this price. Rounded to Idealista's nearest price bucket.",
            "minimum": 0,
            "maximum": 100000000
          },
          "priceMax": {
            "title": "Maximum Price (EUR)",
            "type": "integer",
            "description": "Drop listings more expensive than this price. Rounded to Idealista's nearest price bucket.",
            "minimum": 0,
            "maximum": 100000000
          },
          "sizeMin": {
            "title": "Minimum Size (m²)",
            "type": "integer",
            "description": "Drop listings smaller than this size. Rounded to Idealista's nearest size bucket.",
            "minimum": 0,
            "maximum": 100000
          },
          "sizeMax": {
            "title": "Maximum Size (m²)",
            "type": "integer",
            "description": "Drop listings larger than this size. Rounded to Idealista's nearest size bucket.",
            "minimum": 0,
            "maximum": 100000
          },
          "rooms": {
            "title": "Rooms",
            "type": "string",
            "description": "Number of rooms.",
            "editor": "select",
            "enum": [
              "any",
              "1",
              "2",
              "3",
              "4",
              "5+"
            ],
            "enumTitles": [
              "Any",
              "1",
              "2",
              "3",
              "4",
              "5 or more"
            ],
            "default": "any",
            "prefill": "any"
          },
          "bathrooms": {
            "title": "Bathrooms",
            "type": "string",
            "description": "Number of bathrooms.",
            "editor": "select",
            "enum": [
              "any",
              "1",
              "2",
              "3+"
            ],
            "enumTitles": [
              "Any",
              "1",
              "2",
              "3 or more"
            ],
            "default": "any",
            "prefill": "any"
          },
          "condition": {
            "title": "Condition",
            "type": "string",
            "description": "Property condition.",
            "editor": "select",
            "enum": [
              "any",
              "new",
              "good",
              "toRenovate"
            ],
            "enumTitles": [
              "Any",
              "New build",
              "Good condition",
              "To renovate"
            ],
            "default": "any",
            "prefill": "any"
          },
          "hasLift": {
            "title": "Has Lift",
            "type": "boolean",
            "description": "Only listings with a lift.",
            "default": false,
            "prefill": false
          },
          "hasTerrace": {
            "title": "Has Terrace",
            "type": "boolean",
            "description": "Only listings with a terrace.",
            "default": false,
            "prefill": false
          },
          "hasPool": {
            "title": "Has Pool",
            "type": "boolean",
            "description": "Only listings with a swimming pool.",
            "default": false,
            "prefill": false
          },
          "hasGarden": {
            "title": "Has Garden",
            "type": "boolean",
            "description": "Only listings with a garden.",
            "default": false,
            "prefill": false
          },
          "hasGarage": {
            "title": "Has Garage",
            "type": "boolean",
            "description": "Only listings with a garage or parking space.",
            "default": false,
            "prefill": false
          },
          "hasStorageRoom": {
            "title": "Has Storage Room",
            "type": "boolean",
            "description": "Only listings with a storage room.",
            "default": false,
            "prefill": false
          },
          "hasAirConditioning": {
            "title": "Has Air Conditioning",
            "type": "boolean",
            "description": "Only listings with air conditioning.",
            "default": false,
            "prefill": false
          },
          "hasBalcony": {
            "title": "Has Balcony",
            "type": "boolean",
            "description": "Only listings with a balcony.",
            "default": false,
            "prefill": false
          },
          "isNewDevelopment": {
            "title": "New Development",
            "type": "boolean",
            "description": "Only new-development listings.",
            "default": false,
            "prefill": false
          },
          "isBankOwned": {
            "title": "Bank-Owned",
            "type": "boolean",
            "description": "Only bank-owned listings where the source marks them.",
            "default": false,
            "prefill": false
          },
          "isAuction": {
            "title": "Auction",
            "type": "boolean",
            "description": "Only auction listings where the source marks them.",
            "default": false,
            "prefill": false
          },
          "isLuxury": {
            "title": "Luxury",
            "type": "boolean",
            "description": "Only luxury listings.",
            "default": false,
            "prefill": false
          },
          "hasSeaViews": {
            "title": "Sea Views",
            "type": "boolean",
            "description": "Only listings advertised with sea views.",
            "default": false,
            "prefill": false
          },
          "isAccessible": {
            "title": "Accessible",
            "type": "boolean",
            "description": "Only accessible homes.",
            "default": false,
            "prefill": false
          },
          "sortBy": {
            "title": "Sort By",
            "type": "string",
            "description": "Result order.",
            "editor": "select",
            "enum": [
              "relevance",
              "priceAsc",
              "priceDesc",
              "areaAsc",
              "areaDesc",
              "pricePerSqmAsc",
              "pricePerSqmDesc"
            ],
            "enumTitles": [
              "Relevance",
              "Price: low to high",
              "Price: high to low",
              "Size: small to large",
              "Size: large to small",
              "Price per m²: low to high",
              "Price per m²: high to low"
            ],
            "default": "relevance",
            "prefill": "relevance",
            "sectionCaption": "Output"
          },
          "onlyPriceDrops": {
            "title": "Only Price Drops",
            "type": "boolean",
            "description": "Keep only listings whose price was reduced.",
            "default": false,
            "prefill": false
          },
          "minPriceDropPercent": {
            "title": "Minimum Price Drop (%)",
            "type": "integer",
            "description": "Keep only listings reduced by at least this percentage. Implies price-drop filtering.",
            "minimum": 0,
            "maximum": 100
          },
          "onlyPrivateOwners": {
            "title": "Only Private Owners",
            "type": "boolean",
            "description": "Keep only private-seller listings.",
            "default": false,
            "prefill": false
          },
          "fetchDetails": {
            "title": "Fetch Details",
            "type": "boolean",
            "description": "Visit each listing's page to add bathrooms, energy rating, year built, condition, full description, gallery and agency phone. Slower and uses more requests.",
            "default": false,
            "prefill": false
          },
          "maxDetails": {
            "title": "Maximum Detail Pages",
            "type": "integer",
            "description": "Maximum number of listing pages to enrich when Fetch Details is on.",
            "minimum": 1,
            "maximum": 10000,
            "default": 100,
            "prefill": 3
          },
          "maxItems": {
            "title": "Maximum Listings",
            "type": "integer",
            "description": "Maximum number of listings to save.",
            "minimum": 1,
            "maximum": 10000,
            "default": 100,
            "prefill": 3,
            "sectionCaption": "Limits"
          },
          "partitionLargeSearches": {
            "title": "Partition Large Searches",
            "type": "boolean",
            "description": "When a search has more than 1,800 results and you ask for more, split it by price buckets so the 1,800-per-search cap is bypassed.",
            "default": true,
            "prefill": false
          }
        },
        "required": []
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Idealista Search Listings Output",
        "type": "object",
        "description": "Dataset of Idealista property listings for Spain, Italy and Portugal: price, price history signals, size, rooms, bathrooms, location and coordinates, features, energy certificate, agency contact, images and description.",
        "properties": {
          "listings": {
            "type": "string",
            "title": "Property Listings",
            "description": "Dataset containing all scraped Idealista property listings.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "Idealista Listings",
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "propertyCode",
                  "price",
                  "priceDropPercent",
                  "size",
                  "rooms",
                  "bathrooms",
                  "address",
                  "municipality",
                  "propertyType",
                  "propertySubtype",
                  "energyRating",
                  "phone",
                  "updatedAt",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "propertyCode": {
                    "label": "ID",
                    "format": "text"
                  },
                  "price": {
                    "label": "Price",
                    "format": "number"
                  },
                  "priceDropPercent": {
                    "label": "Drop %",
                    "format": "number"
                  },
                  "size": {
                    "label": "Size (m²)",
                    "format": "number"
                  },
                  "rooms": {
                    "label": "Rooms",
                    "format": "number"
                  },
                  "bathrooms": {
                    "label": "Baths",
                    "format": "number"
                  },
                  "address": {
                    "label": "Address",
                    "format": "text"
                  },
                  "municipality": {
                    "label": "City",
                    "format": "text"
                  },
                  "propertyType": {
                    "label": "Type",
                    "format": "text"
                  },
                  "propertySubtype": {
                    "label": "Subtype",
                    "format": "text"
                  },
                  "energyRating": {
                    "label": "Energy",
                    "format": "text"
                  },
                  "phone": {
                    "label": "Phone",
                    "format": "text"
                  },
                  "updatedAt": {
                    "label": "Updated",
                    "format": "text"
                  },
                  "url": {
                    "label": "URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      },
      "readme": "# Idealista Search Listings Price & Feature Scraper\n\nScrape **Idealista** property listings across Spain, Italy and Portugal. Search a city or area, paste your own Idealista search URLs, or look up individual properties, and get structured records with price, price-drop signals, size, rooms, bathrooms, coordinates, features, energy certificate, images, description and agency contact.\n\n## What this actor does\n\n- **Three modes:** search by location, paste search-result URLs, or fetch individual property URLs/IDs\n- **Three markets:** idealista.com (Spain), idealista.pt (Portugal), idealista.it (Italy)\n- **Rich listing data:** price and €/m², previous price and drop %, size, rooms, bathrooms, floor, condition, year built, energy rating, coordinates, gallery and full description\n- **Real filters:** operation, property type and subtype, price, size, rooms, bathrooms, condition, lift, terrace, pool, garden, garage, storage, air conditioning, balcony, new development, luxury, sea views, accessible, bank-owned, auction, private owners and price drops. Idealista applies filters as URL path segments; for two or more filters, use `startUrls` mode with a filtered Idealista URL that loads in your browser.\n- **Large searches:** walks every result page and, for unfiltered searches where you ask for more than Idealista's 1,800-result cap, splits the search by price buckets and removes duplicates\n- **No login, no cookies, no proxy setup** — the actor chooses a working connection automatically\n\n## Output per listing\n\n- `propertyCode` — Idealista property ID\n- `url`, `sourceUrl` — canonical listing URL and the search URL that produced it\n- `recordType` — `listing`\n- `price`, `priceByArea`, `currency` — current price, €/m² and currency\n- `previousPrice`, `priceDropAmount`, `priceDropPercent`, `hasPriceDrop`, `priceDrop` — price-cut fields when the listing shows a reduction\n- `size`, `constructedArea`, `usableArea`, `plotArea` — areas in m²\n- `rooms`, `bathrooms`\n- `floor`, `exterior`, `condition`, `yearBuilt`\n- `energyRating`, `energyConsumption`, `energyEmissions`, `energyCertification`\n- `communityFees` — monthly building fees when shown\n- `description` — full listing description when details are fetched\n- `address`, `street`, `neighborhood`, `district`, `municipality`, `province`, `country`\n- `latitude`, `longitude`, `addressVisibility`, `showAddress`\n- `images`, `numPhotos`, `multimedia`\n- `hasVideo`, `has3DTour`, `has360`, `hasStaging`, `hasPlan`\n- `hasLift`, `hasSwimmingPool`, `hasTerrace`, `hasAirConditioning`, `hasBoxRoom`, `hasGarden`, `hasParkingSpace`\n- `features` — advertised feature flags from the card or property page; `featureSource` says which\n- `contactInfo` — agency/owner name, logo, phone, reference, profile URL, user type and response time\n- `agency`, `phone`, `reference`\n- `propertyType`, `propertySubtype`, `operation`, `status`\n- `newDevelopment`, `externalReference`, `topPlus`, `isPriceDrop`, `isOffmarket`, `isFeatured`, `isExclusive`, `isBankOwned`, `isAuction`, `isTenanted`, `isOccupied`, `isNudaPropiedad`\n- `updatedAtText`, `updatedAt`, `scrapedAt`\n\nEmpty fields are omitted. A feature flag is present only when the source confirms it; it is never emitted as a guessed `false`.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | – | `search` by location, `startUrls` for your own search URLs, `propertyUrls` for property URLs/IDs; inferred when omitted |\n| `location` | string | `madrid-madrid` | City/area slug or a full Idealista search URL (mode=search) |\n| `operation` | string | `sale` | `sale` or `rent` |\n| `propertyType` | string | `homes` | homes, newDevelopments, offices, premises, garages, lands, storageRooms, buildings, bedrooms |\n| `country` | string | `es` | `es`, `pt`, `it`; auto-detected from URLs |\n| `startUrls` | array | – | Idealista search URLs, filters and map-area URLs kept as-is (mode=startUrls) |\n| `propertyUrls` | array | – | Property URLs or numeric IDs (mode=propertyUrls) |\n| `propertySubtype` | string | `any` | any, flat, penthouse, duplex, studio, loft, chalet, independentHouse, semiDetached, terraced, villa, countryHouse, office, premises, garage, land, storageRoom, building, room |\n| `priceMin` | integer | – | Minimum price in EUR |\n| `priceMax` | integer | – | Maximum price in EUR |\n| `sizeMin` | integer | – | Minimum size in m² |\n| `sizeMax` | integer | – | Maximum size in m² |\n| `rooms` | string | `any` | any, 1, 2, 3, 4, 5+ |\n| `bathrooms` | string | `any` | any, 1, 2, 3+ |\n| `condition` | string | `any` | any, new, good, toRenovate |\n| `hasLift` | boolean | `false` | Only listings with a lift |\n| `hasTerrace` | boolean | `false` | Only listings with a terrace |\n| `hasPool` | boolean | `false` | Only listings with a pool |\n| `hasGarden` | boolean | `false` | Only listings with a garden |\n| `hasGarage` | boolean | `false` | Only listings with a garage/parking |\n| `hasStorageRoom` | boolean | `false` | Only listings with a storage room |\n| `hasAirConditioning` | boolean | `false` | Only listings with air conditioning |\n| `hasBalcony` | boolean | `false` | Only listings with a balcony |\n| `isNewDevelopment` | boolean | `false` | Only new developments |\n| `isBankOwned` | boolean | `false` | Only bank-owned listings |\n| `isAuction` | boolean | `false` | Only auction listings |\n| `isLuxury` | boolean | `false` | Only luxury listings |\n| `hasSeaViews` | boolean | `false` | Only listings advertised with sea views |\n| `isAccessible` | boolean | `false` | Only accessible homes |\n| `sortBy` | string | `relevance` | relevance, priceAsc, priceDesc, areaAsc, areaDesc, pricePerSqmAsc, pricePerSqmDesc |\n| `onlyPriceDrops` | boolean | `false` | Keep only reduced listings |\n| `minPriceDropPercent` | integer | – | Minimum price-drop percentage |\n| `onlyPrivateOwners` | boolean | `false` | Keep only private sellers |\n| `fetchDetails` | boolean | `false` | Visit each listing page for bathrooms, energy, year, condition, full description, gallery and phone |\n| `maxDetails` | integer | `100` | Maximum number of detail pages to fetch |\n| `maxItems` | integer | `100` | Maximum listings to save (1–10,000) |\n| `partitionLargeSearches` | boolean | `true` | Split searches above 1,800 results into price buckets |\n\n### Example: Madrid homes for sale with a pool\n\n```json\n{\n  \"mode\": \"search\",\n  \"location\": \"madrid-madrid\",\n  \"operation\": \"sale\",\n  \"propertyType\": \"homes\",\n  \"country\": \"es\",\n  \"hasPool\": true,\n  \"priceMax\": 600000,\n  \"fetchDetails\": true,\n  \"maxItems\": 50\n}\n```\n\n### Example: Lisbon rentals by search URL\n\n```json\n{\n  \"mode\": \"startUrls\",\n  \"startUrls\": [\n    { \"url\": \"https://www.idealista.pt/arrendar-casas/lisboa/\" }\n  ],\n  \"maxItems\": 100\n}\n```\n\n### Example: Rome offices with details\n\n```json\n{\n  \"mode\": \"search\",\n  \"location\": \"roma-roma\",\n  \"operation\": \"sale\",\n  \"propertyType\": \"offices\",\n  \"country\": \"it\",\n  \"fetchDetails\": true,\n  \"maxItems\": 30\n}\n```\n\n### Example: look up specific properties\n\n```json\n{\n  \"mode\": \"propertyUrls\",\n  \"propertyUrls\": [\n    \"https://www.idealista.com/inmueble/111379612/\",\n    \"https://www.idealista.it/immobile/37181412/\"\n  ]\n}\n```\n\n## Use cases\n\n- **Market research** — compare asking prices and €/m² across cities, districts and property types\n- **Investment screening** — find reduced listings and compare them with the local market\n- **Lead generation** — collect agency names, phone numbers and references for real-estate outreach\n- **Portfolio monitoring** — schedule runs to track new listings, price cuts and removed properties\n- **Comparable sales** — pull a neighbourhood's listings with size, condition, year and energy rating\n- **Data enrichment** — add coordinates, features and images to an existing property database\n\n## Limitations\n\n- **1,800 results per search.** Idealista serves at most 60 pages of 30 listings. The actor partitions larger searches by price when you ask for more, but a single search URL cannot exceed the cap.\n- **Market protection can slow a run.** Italy, Spain and Portugal may challenge some requests; the actor retries and switches to a slower working connection when needed. A run can take longer on those days.\n- **Valid location slugs matter.** Portugal uses Portuguese names (`lisboa`, `porto`); Italy uses Italian names (`roma-roma`, `milano-milano`). A wrong slug returns no listings.\n- **Private sellers often hide their phone.** The phone field is included only when Idealista publishes it.\n- **No publication date.** Idealista does not expose a reliable published timestamp on public pages; the actor includes the “last updated” text/date when shown.\n- **Detail fields require `fetchDetails`.** Bathrooms, energy rating, year built, condition, full description, gallery and phone come from the property page.\n- **Agency email is not included.** Idealista publishes the agency phone/reference, not its email.\n\n## FAQ\n\n**Do I need an Idealista account or cookies?**\nNo. The actor reads public listing pages and needs no login.\n\n**Do I need to configure a proxy?**\nNo. The actor chooses a working connection automatically. Just fill in the input and run.\n\n**Which countries are supported?**\nSpain (`idealista.com`), Portugal (`idealista.pt`) and Italy (`idealista.it`). Country is auto-detected when you paste a URL.\n\n**How many listings can I get from one search?**\nIdealista serves at most 60 result pages of 30 listings (1,800) per search. For unfiltered searches, when you ask for more, the actor splits the search into price buckets, removes duplicates and keeps going. Filtered searches are capped at 1,800; use `startUrls` mode with a filtered URL that loads in your browser for full control.\n\n**Why are some fields missing?**\nSearch cards do not show everything. Bathrooms, energy rating, year built, condition, full description and phone come from the property page; turn on `fetchDetails` to collect them. Private sellers often hide their phone, so that field is omitted for those listings.\n\n**Why does the first page sometimes take a minute?**\nIdealista can challenge requests in any of the three markets. When the fast path is unavailable, the actor prepares a slower working connection before loading the first page. Later pages reuse that connection and are much faster.\n\n**Are the images hotlink-safe?**\nYes. Image URLs are public CDN links and open without cookies or a referrer.\n\n**Why is there no published date?**\nIdealista does not expose a reliable publication timestamp on its public pages. The actor includes the “last updated” text and date when the page shows it, but does not invent a publication date.\n\n**Can I scrape multiple cities in one run?**\nYes. Use `startUrls` with one search URL per city or district; they are processed in order up to `maxItems`.\n\n**Is this affiliated with Idealista?**\nNo. This is an independent, third-party actor that reads publicly available Idealista pages. It is not affiliated with or endorsed by Idealista.\n"
    },
    "buildNumber": "1.0.2",
    "imageDigest": "454f7eccffb5dc9daac3ca54355d52886cde5d5e4c9b29d0e522b714da9f55b0",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.05676
    }
  }
}