{
  "openapi": "3.0.1",
  "info": {
    "title": "🏠 Idealista Scraper",
    "description": "Extract property listings from Idealista, including prices, addresses, photos, property features, agent details, bedrooms, bathrooms, and listing metadata. Perfect for real estate research, investment analysis, market monitoring, and lead generation.",
    "version": "0.1",
    "x-build-id": "AcdhyNkR7fa5nhfE3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~idealista-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-idealista-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapier~idealista-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-idealista-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapier~idealista-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-idealista-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "title": "🌍 Location",
            "type": "string",
            "description": "City name (e.g. Madrid) or an Idealista Location ID (e.g. 0-EU-ES-28-07-001-079). Tip: use the Idealista Location Search tool (https://igolaizola.github.io/idealista-scraper) to find an exact Location ID.",
            "default": "0-EU-ES-28-07-001-079"
          },
          "country": {
            "title": "🗺️ Country",
            "enum": [
              "es",
              "pt",
              "it"
            ],
            "type": "string",
            "description": "Which Idealista marketplace to search.",
            "default": "es"
          },
          "operation": {
            "title": "🏷️ Operation",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Buy or rent.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏘️ Property type",
            "enum": [
              "homes",
              "newDevelopments",
              "offices",
              "premises",
              "garages",
              "lands",
              "storageRooms",
              "buildings",
              "bedrooms"
            ],
            "type": "string",
            "description": "Type of property to search.",
            "default": "homes"
          },
          "maxItems": {
            "title": "🔝 Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to scrape (0 = unlimited). Above 2500 the location is auto-split into sub-locations, which groups results by sub-location.",
            "default": 10
          },
          "sortBy": {
            "title": "↕️ Sort by",
            "enum": [
              "relevance",
              "closest",
              "lowestPrice",
              "highestPrice",
              "mostRecent",
              "leastRecent",
              "highestPriceReduction",
              "lowestPriceM2",
              "highestPriceM2",
              "biggest",
              "smallest",
              "highestFloors",
              "lowestFloors"
            ],
            "type": "string",
            "description": "Ordering of the search results.",
            "default": "mostRecent"
          },
          "fetchDetails": {
            "title": "📋 Fetch details (slower — 1 extra request each)",
            "type": "boolean",
            "description": "Add a rich '_details' object to every property (full description, all photos, characteristics, agent info…). Roughly 50× slower because each property needs its own request.",
            "default": false
          },
          "fetchStats": {
            "title": "📊 Fetch statistics (slower — 1 extra request each)",
            "type": "boolean",
            "description": "Add a '_stats' object to every property (views, favourites, e-mail contacts, sent-to-friend). Roughly 50× slower.",
            "default": false
          },
          "minPrice": {
            "title": "💶 Min price",
            "enum": [
              "0",
              "500",
              "550",
              "600",
              "650",
              "700",
              "750",
              "800",
              "850",
              "900",
              "950",
              "1000",
              "1100",
              "1200",
              "1300",
              "1400",
              "1500",
              "1600",
              "1700",
              "1800",
              "1900",
              "2000",
              "2100",
              "2400",
              "2700",
              "3000",
              "50000",
              "75000",
              "100000",
              "125000",
              "150000",
              "175000",
              "200000",
              "225000",
              "250000",
              "275000",
              "300000",
              "325000",
              "350000",
              "375000",
              "400000",
              "425000",
              "450000",
              "475000",
              "500000",
              "550000",
              "600000",
              "650000",
              "700000",
              "750000",
              "800000",
              "850000",
              "900000",
              "950000",
              "1000000",
              "1100000",
              "1200000",
              "1300000",
              "1400000",
              "1500000",
              "1600000",
              "1700000",
              "1800000",
              "1900000",
              "2000000",
              "2250000",
              "2500000",
              "2750000",
              "3000000",
              "3500000",
              "4000000"
            ],
            "type": "string",
            "description": "Minimum price (0 = any).",
            "default": "0"
          },
          "maxPrice": {
            "title": "💶 Max price",
            "enum": [
              "0",
              "500",
              "550",
              "600",
              "650",
              "700",
              "750",
              "800",
              "850",
              "900",
              "950",
              "1000",
              "1100",
              "1200",
              "1300",
              "1400",
              "1500",
              "1600",
              "1700",
              "1800",
              "1900",
              "2000",
              "2100",
              "2400",
              "2700",
              "3000",
              "50000",
              "75000",
              "100000",
              "125000",
              "150000",
              "175000",
              "200000",
              "225000",
              "250000",
              "275000",
              "300000",
              "325000",
              "350000",
              "375000",
              "400000",
              "425000",
              "450000",
              "475000",
              "500000",
              "550000",
              "600000",
              "650000",
              "700000",
              "750000",
              "800000",
              "850000",
              "900000",
              "950000",
              "1000000",
              "1100000",
              "1200000",
              "1300000",
              "1400000",
              "1500000",
              "1600000",
              "1700000",
              "1800000",
              "1900000",
              "2000000",
              "2250000",
              "2500000",
              "2750000",
              "3000000",
              "3500000",
              "4000000"
            ],
            "type": "string",
            "description": "Maximum price (0 = any).",
            "default": "0"
          },
          "minSize": {
            "title": "📐 Min size",
            "enum": [
              "0",
              "60",
              "80",
              "100",
              "120",
              "140",
              "160",
              "180",
              "200",
              "220",
              "240",
              "260",
              "280",
              "300"
            ],
            "type": "string",
            "description": "Minimum size in m² (0 = any).",
            "default": "0"
          },
          "maxSize": {
            "title": "📐 Max size",
            "enum": [
              "0",
              "60",
              "80",
              "100",
              "120",
              "140",
              "160",
              "180",
              "200",
              "220",
              "240",
              "260",
              "280",
              "300"
            ],
            "type": "string",
            "description": "Maximum size in m² (0 = any).",
            "default": "0"
          },
          "publicationDate": {
            "title": "📅 Publication date",
            "enum": [
              "",
              "Y",
              "T",
              "W",
              "M"
            ],
            "type": "string",
            "description": "Only listings published within this window.",
            "default": ""
          },
          "rentalTypes": {
            "title": "🔑 Rental types (rent only)",
            "type": "array",
            "description": "Rental usage type. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "longTerm",
                "seasonal"
              ],
              "enumTitles": [
                "Long-term residential",
                "Short-term / seasonal"
              ]
            }
          },
          "bedrooms": {
            "title": "🛏️ Bedrooms",
            "type": "array",
            "description": "Number of bedrooms. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "studio",
                "1",
                "2",
                "3",
                "4"
              ],
              "enumTitles": [
                "Studio",
                "1 bedroom",
                "2 bedrooms",
                "3 bedrooms",
                "4+ bedrooms"
              ]
            }
          },
          "bathrooms": {
            "title": "🛁 Bathrooms",
            "type": "array",
            "description": "Number of bathrooms. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "1 bathroom",
                "2 bathrooms",
                "3+ bathrooms"
              ]
            }
          },
          "homeType": {
            "title": "🏡 Home types",
            "type": "array",
            "description": "Home typologies. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "flat",
                "penthouse",
                "duplex",
                "detachedHouse",
                "semiDetachedHouse",
                "terracedHouse",
                "countryHouse",
                "apartment",
                "villa",
                "loft"
              ],
              "enumTitles": [
                "Flat",
                "Penthouse",
                "Duplex",
                "Detached house",
                "Semi-detached house",
                "Terraced house",
                "Country house",
                "Apartment",
                "Villa",
                "Loft"
              ]
            }
          },
          "condition": {
            "title": "🛠️ Condition",
            "type": "array",
            "description": "Property condition. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "newDevelopment",
                "good",
                "renew"
              ],
              "enumTitles": [
                "New homes",
                "Good condition",
                "Needs renovation"
              ]
            }
          },
          "propertyStatus": {
            "title": "📑 Property status",
            "type": "array",
            "description": "Ownership / occupancy status. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "bareOwnership",
                "tenanted",
                "illegallyOccupied",
                "free"
              ],
              "enumTitles": [
                "Bare ownership",
                "Rented, with tenants",
                "Illegally occupied",
                "Available (none of the above)"
              ]
            }
          },
          "floor": {
            "title": "🏢 Floor",
            "type": "array",
            "description": "Floor level. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "topFloor",
                "intermediateFloor",
                "groundFloor"
              ],
              "enumTitles": [
                "Top floor",
                "Middle floors",
                "Ground floor"
              ]
            }
          },
          "airConditioning": {
            "title": "❄️ Air conditioning",
            "type": "boolean",
            "description": "Only properties with air conditioning.",
            "default": false
          },
          "fittedWardrobes": {
            "title": "🚪 Fitted wardrobes",
            "type": "boolean",
            "description": "Only properties with fitted wardrobes.",
            "default": false
          },
          "lift": {
            "title": "🛗 Lift",
            "type": "boolean",
            "description": "Only properties with a lift.",
            "default": false
          },
          "balcony": {
            "title": "🪟 Balcony",
            "type": "boolean",
            "description": "Only properties with a balcony.",
            "default": false
          },
          "terrace": {
            "title": "☀️ Terrace",
            "type": "boolean",
            "description": "Only properties with a terrace.",
            "default": false
          },
          "exterior": {
            "title": "🌇 Exterior",
            "type": "boolean",
            "description": "Only exterior properties.",
            "default": false
          },
          "garage": {
            "title": "🚗 Garage / parking",
            "type": "boolean",
            "description": "Only properties with garage or parking.",
            "default": false
          },
          "garden": {
            "title": "🌳 Garden",
            "type": "boolean",
            "description": "Only properties with a garden.",
            "default": false
          },
          "swimmingPool": {
            "title": "🏊 Swimming pool",
            "type": "boolean",
            "description": "Only properties with a swimming pool.",
            "default": false
          },
          "storageRoom": {
            "title": "📦 Storage room",
            "type": "boolean",
            "description": "Only properties with a storage room.",
            "default": false
          },
          "accessible": {
            "title": "♿ Accessible",
            "type": "boolean",
            "description": "Only accessible properties.",
            "default": false
          },
          "seaViews": {
            "title": "🌊 Sea views",
            "type": "boolean",
            "description": "Only properties with sea views.",
            "default": false
          },
          "luxury": {
            "title": "💎 Luxury",
            "type": "boolean",
            "description": "Only luxury homes.",
            "default": false
          },
          "plan": {
            "title": "🗺️ Floor plan",
            "type": "boolean",
            "description": "Only properties with a floor plan.",
            "default": false
          },
          "virtualTour": {
            "title": "🎥 Virtual tour",
            "type": "boolean",
            "description": "Only properties with a virtual tour.",
            "default": false
          },
          "agency": {
            "title": "🏢 Agency slug",
            "type": "string",
            "description": "Filter by agency using the slug from its page URL, e.g. 'engel-volkers' from https://www.idealista.com/pro/engel-volkers/.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy configuration",
            "type": "object",
            "description": "Proxy settings. By default the actor starts with NO proxy and automatically escalates to a datacenter proxy and then a residential proxy if Idealista blocks the request (and sticks with residential afterwards). You can still force a specific Apify proxy group here.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}