{
  "openapi": "3.0.1",
  "info": {
    "title": "Flatfox Property Search Scraper",
    "description": "[💰 $0.9 / 1K] Extract Swiss real estate listings from Flatfox (flatfox.ch). Search by location, offer type, category, price, and rooms, or paste search URLs. Get rent, surface, rooms, address, geo coordinates, photos, and agency details for rental and sale listings.",
    "version": "1.0",
    "x-build-id": "ytDrUEdGhJLe1hcNI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~flatfox-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-flatfox-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/solidcode~flatfox-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-flatfox-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/solidcode~flatfox-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-flatfox-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": "Search URLs",
            "type": "array",
            "description": "Paste one or more Flatfox search result URLs (for example a results page for rentals in Zurich). The scraper reads the filters straight from each URL. Leave empty to build a search with the filter fields below.",
            "items": {
              "type": "string"
            }
          },
          "offerType": {
            "title": "Offer Type",
            "enum": [
              "RENT",
              "SALE"
            ],
            "type": "string",
            "description": "Search properties for rent or for sale. Only applies when you build a search with the filters below (ignored when Search URLs are provided).",
            "default": "RENT"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, region, or postal code to search (for example 'Zurich', 'Geneva', or '8005'). Leave empty to search all of Switzerland. Each search area returns up to 1,000 listings — for a larger region, run several narrower searches."
          },
          "objectCategories": {
            "title": "Property Categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Limit results to these property categories. Leave empty to include all categories.",
            "items": {
              "type": "string",
              "enum": [
                "APARTMENT",
                "HOUSE",
                "SECONDARY",
                "SHARED",
                "INDUSTRY",
                "PARK"
              ],
              "enumTitles": [
                "Apartment",
                "House",
                "Secondary rooms (storage, hobby)",
                "Shared / room in flat",
                "Commercial / industrial",
                "Parking / garage"
              ]
            },
            "default": []
          },
          "priceMin": {
            "title": "Minimum Price (CHF)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings at or above this price in Swiss francs. For rentals this is the monthly rent. Leave empty for no minimum."
          },
          "priceMax": {
            "title": "Maximum Price (CHF)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings at or below this price in Swiss francs. For rentals this is the monthly rent. Leave empty for no maximum."
          },
          "roomsMin": {
            "title": "Minimum Rooms",
            "minimum": 0,
            "type": "number",
            "description": "Only include properties with at least this many rooms (for example 2.5). Leave empty for no minimum."
          },
          "roomsMax": {
            "title": "Maximum Rooms",
            "minimum": 0,
            "type": "number",
            "description": "Only include properties with at most this many rooms. Leave empty for no maximum."
          },
          "spaceMin": {
            "title": "Minimum Living Space (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include properties with at least this living space in square meters. Leave empty for no minimum."
          },
          "spaceMax": {
            "title": "Maximum Living Space (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include properties with at most this living space in square meters. Leave empty for no maximum."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "newest",
              "priceAsc",
              "priceDesc",
              "roomsAsc",
              "roomsDesc",
              "spaceDesc"
            ],
            "type": "string",
            "description": "Choose how Flatfox orders the results when building a search.",
            "default": "newest"
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 0,
            "type": "integer",
            "description": "Total number of listings to collect across all searches and URLs. Set to 0 to collect as many as available. Note: a single search area returns at most 1,000 listings — to gather more, split a large region into several smaller searches or URLs.",
            "default": 100
          },
          "maxResultsPerUrl": {
            "title": "Maximum Results Per URL",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum listings to collect from each individual search or URL. Set to 0 for no per-URL limit (the overall Maximum Results still applies).",
            "default": 0
          },
          "ignoreUrlFailures": {
            "title": "Continue If a URL Fails",
            "type": "boolean",
            "description": "When enabled, the scraper skips any search or URL that fails and continues with the rest. When disabled, the run stops on the first failure.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}