{
  "openapi": "3.0.1",
  "info": {
    "title": "Idealista Scraper",
    "description": "Scrape Idealista listings in Spain, Italy and Portugal: homes, rooms, offices, shops, garages and land for sale or rent by place, filters or any Idealista link, with price, photos, map location, features, agency, full details and view counts.",
    "version": "0.1",
    "x-build-id": "ymC1zBPlXyHhm5RB9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automly~idealista-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automly-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/automly~idealista-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automly-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/automly~idealista-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automly-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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Places to search, one per line, e.g. Madrid, Chamberí, Madrid, Barcelona, Málaga, Lisboa or Roma. City, district, neighbourhood, area or province names work, written the way Idealista names them (add the city or province after a comma when a name is ambiguous). An Idealista location ID such as 0-EU-ES-28-07-001-079 also works. Each place is its own search with the filters below.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Idealista links",
            "type": "array",
            "description": "Links copied from idealista.com, idealista.it or idealista.pt, e.g. https://www.idealista.com/alquiler-viviendas/madrid-madrid/con-precio-hasta_1500/. A search link keeps its own filters and order (the filters below are not added to it); an agency page (/pro/<name>/) lists that agency's listings; a listing link (/inmueble/<id>/) returns that listing with full details.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "es",
              "it",
              "pt"
            ],
            "type": "string",
            "description": "Which Idealista site the place names are searched on, e.g. Spain. Links and location IDs already name their country.",
            "default": "es"
          },
          "operation": {
            "title": "Buy or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Listings for sale or for rent, e.g. For rent.",
            "default": "sale"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "homes",
              "bedrooms",
              "newDevelopments",
              "offices",
              "premises",
              "transfers",
              "garages",
              "storageRooms",
              "lands",
              "buildings",
              "vacationRentals"
            ],
            "type": "string",
            "description": "What kind of property to list, e.g. Homes. Rooms and holiday lets are for rent only; new developments and business transfers are for sale only.",
            "default": "homes"
          },
          "maxItems": {
            "title": "Max listings per search",
            "minimum": 0,
            "type": "integer",
            "description": "The most listings to save from each place or search link, e.g. 500. 0 means every listing. Searches with more than 2,500 results are read to the end in order of price.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "oldest",
              "lowestPrice",
              "highestPrice",
              "recentlyUpdated",
              "biggestPriceDrop",
              "largest",
              "smallest",
              "lowestPricePerM2",
              "highestPricePerM2"
            ],
            "type": "string",
            "description": "The order listings are saved in, e.g. Newest first. Searches with more than 2,500 results asked for in full are read in order of price.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in euros, e.g. 150000 (for rent: per month, e.g. 800). Listings without a price are left out when a price is set."
          },
          "maxPrice": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in euros, e.g. 400000 (for rent: per month, e.g. 1500)."
          },
          "minSize": {
            "title": "Min size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest built area in square metres, e.g. 60."
          },
          "maxSize": {
            "title": "Max size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest built area in square metres, e.g. 120."
          },
          "bedrooms": {
            "title": "Bedrooms",
            "type": "array",
            "description": "Bedroom counts to include, e.g. 2 and 3. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4"
              ],
              "enumTitles": [
                "Studio (0)",
                "1",
                "2",
                "3",
                "4 or more"
              ]
            }
          },
          "bathrooms": {
            "title": "Bathrooms",
            "type": "array",
            "description": "Bathroom counts to include, e.g. 2. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "1",
                "2",
                "3 or more"
              ]
            }
          },
          "publishedWithin": {
            "title": "Published within",
            "enum": [
              "any",
              "day",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Only listings published recently, e.g. Last week. For sales the shortest window is 48 hours.",
            "default": "any"
          },
          "condition": {
            "title": "Condition",
            "type": "array",
            "description": "Property condition, several allowed, e.g. Good condition. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "newDevelopment",
                "good",
                "renew"
              ],
              "enumTitles": [
                "New build",
                "Good condition",
                "Needs renovation"
              ]
            }
          },
          "floor": {
            "title": "Floor",
            "type": "array",
            "description": "Which floors to include, e.g. Top floor. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "topFloor",
                "intermediateFloor",
                "groundFloor"
              ],
              "enumTitles": [
                "Top floor",
                "Middle floors",
                "Ground floor"
              ]
            }
          },
          "features": {
            "title": "Must have",
            "type": "array",
            "description": "Only listings with all of these, e.g. Lift and Terrace.",
            "items": {
              "type": "string",
              "enum": [
                "elevator",
                "garage",
                "terrace",
                "balcony",
                "garden",
                "swimmingPool",
                "airConditioning",
                "exterior",
                "storageRoom",
                "builtInWardrobes",
                "seaViews",
                "luxury",
                "accessible",
                "floorPlan",
                "virtualTour",
                "bankOwned"
              ],
              "enumTitles": [
                "Lift",
                "Parking space",
                "Terrace",
                "Balcony",
                "Garden",
                "Swimming pool",
                "Air conditioning",
                "Exterior facing",
                "Storage room",
                "Fitted wardrobes",
                "Sea views",
                "Luxury",
                "Wheelchair accessible",
                "Floor plan",
                "Virtual tour",
                "Bank-owned"
              ]
            }
          },
          "includeDetails": {
            "title": "Full listing details",
            "type": "boolean",
            "description": "Adds each listing's full page data under _details: every photo, the complete description and its translations, energy certificate, community fees, construction details, all features and the last update time. Slower.",
            "default": false
          },
          "includeStats": {
            "title": "Listing statistics",
            "type": "boolean",
            "description": "Adds _stats to each listing: how many times it was viewed, emailed, shared and saved as a favourite.",
            "default": false
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "es",
              "ca",
              "it",
              "pt",
              "fr",
              "de"
            ],
            "type": "string",
            "description": "Language of the listing texts, e.g. English: titles, feature labels, and the description when Idealista has it in that language.",
            "default": "en"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave the default.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}