{
  "openapi": "3.0.1",
  "info": {
    "title": "Idealista Scraper — Property Listings & Agents",
    "description": "Scrape Idealista property listings with prices, features, locations, images, descriptions, and agency names for real estate research.",
    "version": "1.2",
    "x-build-id": "M9YfQDQBLeCRODUIG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/muhammadafzal~idealista-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-muhammadafzal-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/muhammadafzal~idealista-scraper/runs": {
      "post": {
        "operationId": "runs-sync-muhammadafzal-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/muhammadafzal~idealista-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-muhammadafzal-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": {
          "startUrls": {
            "title": "Start URLs (full Idealista search URLs)",
            "type": "array",
            "description": "Paste one or more Idealista search result URLs (idealista.com, idealista.it or idealista.pt), with any filters you set on the site. When set, location, operation, property type and the filter fields below are ignored. Single listing pages are not accepted. Up to 20 URLs.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "type": "string",
                  "description": "Full Idealista search URL, for example https://www.idealista.com/venta-viviendas/madrid-madrid/."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "operation": {
            "title": "Operation",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "For sale or for rent. Used with location; ignored when startUrls is set.",
            "default": "sale"
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "homes",
              "newDevelopments",
              "offices",
              "premises",
              "garages",
              "lands",
              "storageRooms",
              "buildings",
              "bedrooms"
            ],
            "type": "string",
            "description": "What to search. Italy has no new-developments search and Portugal has no premises (shops) search; \"bedrooms\" means rooms for rent and needs operation \"rent\". Ignored when startUrls is set.",
            "default": "homes"
          },
          "country": {
            "title": "Country",
            "enum": [
              "es",
              "it",
              "pt"
            ],
            "type": "string",
            "description": "Idealista site to search: es = idealista.com (Spain), it = idealista.it (Italy), pt = idealista.pt (Portugal). One country per run.",
            "default": "es"
          },
          "location": {
            "title": "Location slug",
            "type": "string",
            "description": "Idealista location slug, the part of a search URL after the property type: \"madrid-madrid\", \"barcelona-barcelona\", \"madrid/chamberi\" (a district), \"milano-milano\", \"lisboa\". Open the area on Idealista and copy it from the address bar. A plain name only works when it equals the slug. If both location and startUrls are empty, the run searches madrid-madrid."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1800,
            "type": "integer",
            "description": "Maximum listings to save, 1 to 1,800 (Idealista shows at most about 1,800 per search; split big markets by district, type or price). Free users: maximum 20 results per run. Default 100; the Console prefill is 3.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "relevance",
              "lowestPrice",
              "highestPrice",
              "mostRecent",
              "biggest",
              "smallest",
              "lowestPriceM2",
              "highestPriceM2"
            ],
            "type": "string",
            "description": "Order of the Idealista results. Relevance is Idealista's default.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in euros (monthly rent for rentals). 0 = any.",
            "default": 0
          },
          "maxPrice": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in euros (monthly rent for rentals). 0 = any.",
            "default": 0
          },
          "minSize": {
            "title": "Min size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum built area in m². 0 = any. Idealista offers fixed size steps (60, 80, … 200, 300 … 600 m² for sale; 40 … 400 m² for rent); other values search the nearest wider step and rows outside your range are dropped.",
            "default": 0
          },
          "maxSize": {
            "title": "Max size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum built area in m². 0 = any. Same size steps as minSize.",
            "default": 0
          },
          "publicationDate": {
            "title": "Publication date",
            "enum": [
              "",
              "Y",
              "T",
              "W",
              "M"
            ],
            "type": "string",
            "description": "Only listings published recently. Empty = any date.",
            "default": ""
          },
          "bedrooms": {
            "title": "Bedrooms",
            "uniqueItems": true,
            "type": "array",
            "description": "Bedroom counts: \"0\" (studio), \"1\", \"2\", \"3\", \"4\" (4 or more; \"5\" is treated as 4+). Empty = any. Italy filters by total rooms, so N bedrooms searches (N+1)-room homes. Homes and new developments only.",
            "items": {
              "type": "string",
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "Studio (0)",
                "1",
                "2",
                "3",
                "4 or more",
                "5 (same as 4 or more)"
              ]
            },
            "default": []
          },
          "bathrooms": {
            "title": "Bathrooms",
            "uniqueItems": true,
            "type": "array",
            "description": "Bathroom counts: \"1\", \"2\", \"3\" (3 or more). Empty = any. Homes and new developments only.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "1",
                "2",
                "3 or more"
              ]
            },
            "default": []
          },
          "homeType": {
            "title": "Home type",
            "uniqueItems": true,
            "type": "array",
            "description": "Home subtypes; any selected type matches. Empty = any. Homes and new developments only.",
            "items": {
              "type": "string",
              "enum": [
                "flat",
                "penthouse",
                "duplex",
                "house",
                "detachedHouse",
                "semiDetachedHouse",
                "terracedHouse",
                "countryHouse",
                "loft"
              ],
              "enumTitles": [
                "Flat / apartment",
                "Penthouse",
                "Duplex",
                "House or villa",
                "Detached house",
                "Semi-detached house",
                "Terraced house",
                "Country house",
                "Loft"
              ]
            },
            "default": []
          },
          "condition": {
            "title": "Condition",
            "uniqueItems": true,
            "type": "array",
            "description": "Property condition. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "newConstruction",
                "goodCondition",
                "toRenovate"
              ],
              "enumTitles": [
                "New construction",
                "Good condition",
                "To renovate"
              ]
            },
            "default": []
          },
          "floor": {
            "title": "Floor",
            "uniqueItems": true,
            "type": "array",
            "description": "Floor position. Empty = any. Homes and new developments only.",
            "items": {
              "type": "string",
              "enum": [
                "topFloor",
                "middleFloors",
                "groundFloor"
              ],
              "enumTitles": [
                "Top floor",
                "Middle floors",
                "Ground floor"
              ]
            },
            "default": []
          },
          "airConditioning": {
            "title": "Air conditioning",
            "type": "boolean",
            "description": "Only show listings with air conditioning.",
            "default": false
          },
          "fittedWardrobes": {
            "title": "Fitted wardrobes",
            "type": "boolean",
            "description": "Only show listings with fitted wardrobes.",
            "default": false
          },
          "lift": {
            "title": "Lift",
            "type": "boolean",
            "description": "Only show listings with a lift.",
            "default": false
          },
          "balcony": {
            "title": "Balcony",
            "type": "boolean",
            "description": "Only show listings with a balcony.",
            "default": false
          },
          "terrace": {
            "title": "Terrace",
            "type": "boolean",
            "description": "Only show listings with a terrace.",
            "default": false
          },
          "exterior": {
            "title": "Exterior",
            "type": "boolean",
            "description": "Only exterior-facing homes. Spain (idealista.com) only; Idealista Italy and Portugal have no such filter.",
            "default": false
          },
          "garage": {
            "title": "Garage",
            "type": "boolean",
            "description": "Only show listings with garage / parking.",
            "default": false
          },
          "garden": {
            "title": "Garden",
            "type": "boolean",
            "description": "Only show listings with a garden.",
            "default": false
          },
          "swimmingPool": {
            "title": "Swimming pool",
            "type": "boolean",
            "description": "Only show listings with swimming pool.",
            "default": false
          },
          "storageRoom": {
            "title": "Storage room",
            "type": "boolean",
            "description": "Only show listings with storage room.",
            "default": false
          },
          "accessible": {
            "title": "Accessible",
            "type": "boolean",
            "description": "Only show wheelchair-accessible listings.",
            "default": false
          },
          "seaViews": {
            "title": "Sea views",
            "type": "boolean",
            "description": "Only listings with sea views.",
            "default": false
          },
          "luxury": {
            "title": "Luxury",
            "type": "boolean",
            "description": "Only show luxury listings.",
            "default": false
          },
          "plan": {
            "title": "Floor plan available",
            "type": "boolean",
            "description": "Only listings with a floor plan.",
            "default": false
          },
          "virtualTour": {
            "title": "Virtual tour available",
            "type": "boolean",
            "description": "Only listings with a virtual tour.",
            "default": false
          },
          "fetchDetails": {
            "title": "Fetch listing details",
            "type": "boolean",
            "description": "Open each listing page to add coordinates, full address, energy rating, bathrooms, the full description, the full feature list and all photos. Each enriched listing is charged as one enriched-listing event instead of a result-item event. Slower: about 7 seconds per listing, several in parallel. If a listing page cannot be loaded, its search-card data is saved without a charge.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Listing pages opened in parallel when Fetch listing details is on, 1 to 5.",
            "default": 3
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}