{
  "openapi": "3.0.1",
  "info": {
    "title": "Fotocasa Spain Property Listings Scraper",
    "description": "Extract structured Fotocasa property listings across Spain. Filter by location, sale or rent, property type, price, size, rooms and bathrooms, then receive unique listings with prices, photos, agency details and source URLs in your Dataset.",
    "version": "0.1",
    "x-build-id": "OACMLM0z6oexuQY0u"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datascraperes~fotocasa-property-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datascraperes-fotocasa-property-search-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/datascraperes~fotocasa-property-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-datascraperes-fotocasa-property-search-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/datascraperes~fotocasa-property-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-datascraperes-fotocasa-property-search-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",
        "required": [
          "maxItems"
        ],
        "properties": {
          "searchUrls": {
            "title": "Fotocasa search URLs",
            "type": "array",
            "description": "One or more public Fotocasa search-result URLs. Use this for exact districts or multiple locations.",
            "items": {
              "type": "string"
            }
          },
          "locationSlug": {
            "title": "Location slug",
            "type": "string",
            "description": "Optional Fotocasa URL location segment, e.g. madrid-capital. Ignored when searchUrls is set."
          },
          "locationQuery": {
            "title": "Location",
            "type": "string",
            "description": "Optional location text resolved through Fotocasa public suggestions, e.g. Madrid or Valencia."
          },
          "locationLevel": {
            "title": "Location level",
            "enum": [
              "MUNICIPALITY",
              "PROVINCE",
              "REGION",
              "DISTRICT",
              "NEIGHBORHOOD"
            ],
            "type": "string",
            "description": "Preferred suggestion level when location text is ambiguous.",
            "default": "MUNICIPALITY"
          },
          "operation": {
            "title": "Operation",
            "enum": [
              "buy",
              "rent",
              "share"
            ],
            "type": "string",
            "description": "Property transaction to search.",
            "default": "buy"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "homes",
              "premises",
              "garages",
              "offices",
              "boxRooms",
              "lands",
              "buildings"
            ],
            "type": "string",
            "description": "Fotocasa property category.",
            "default": "homes"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Optional minimum advertised price."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Optional maximum advertised price."
          },
          "minSurface": {
            "title": "Minimum surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional minimum advertised surface in square metres."
          },
          "maxSurface": {
            "title": "Maximum surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional maximum advertised surface in square metres."
          },
          "minRooms": {
            "title": "Minimum rooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Optional minimum number of rooms."
          },
          "maxRooms": {
            "title": "Maximum rooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Optional maximum number of rooms."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Optional minimum number of bathrooms."
          },
          "maxBathrooms": {
            "title": "Maximum bathrooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Optional maximum number of bathrooms."
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "rating",
              "latest",
              "cheapest",
              "mostExpensive",
              "biggest",
              "smallest",
              "cheapestPerM2"
            ],
            "type": "string",
            "description": "Order supplied to Fotocasa search.",
            "default": "rating"
          },
          "additionalQueryParameters": {
            "title": "Advanced public URL parameters",
            "type": "string",
            "description": "Optional JSON object written as text, e.g. {\"featureIds\":\"1;2\"}. Use it for public Fotocasa search parameters not represented above. Values must be text, numbers, or true/false. Structured fields above take priority."
          },
          "maxItems": {
            "title": "Maximum listings",
            "minimum": 30,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum unique listings in the Dataset. Minimum 30 results keeps the per-result price sustainable. Only successfully pushed unique listings trigger the listing-result event.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}