{
  "openapi": "3.0.1",
  "info": {
    "title": "Bien'ici Property Scraper",
    "description": "Collect Bien'ici listings for rent or purchase and get fields such as price, surface area, rooms, city, postal code, description, energy and greenhouse-gas classes, photos and coordinates. Choose property types and filters, with an option to fetch additional details for each listing.",
    "version": "0.1",
    "x-build-id": "CG8hVejlEPePcTbse"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~bienici-property-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-bienici-property-listings-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/axiomworks~bienici-property-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-bienici-property-listings-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/axiomworks~bienici-property-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-bienici-property-listings-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": [
          "places"
        ],
        "properties": {
          "places": {
            "title": "French place names (e.g. Lyon)",
            "type": "array",
            "description": "French city, arrondissement or department names as strings, e.g. [\"Lyon\", \"Paris 11e\"]. Required in the schema; pass [] when using startUrls, listingIds or listingUrls only. Unresolved places are skipped; if no target matches, the run succeeds with 0 records and guidance. No API default.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Bien’ici search URLs (strings or URL objects)",
            "type": "array",
            "description": "Bien’ici search URLs as strings or {\"url\":\"https://www.bienici.com/recherche/location/lyon-69000/appartement\"} objects. Default no URLs. For URL-only searches send places: []. URL transaction, property and price/surface filters override corresponding input filters; places and URLs both run when supplied."
          },
          "transactionType": {
            "title": "Buy or rent (e.g. rent)",
            "enum": [
              "buy",
              "rent"
            ],
            "type": "string",
            "description": "Choose \"buy\" for sale listings or \"rent\" for rentals, e.g. \"rent\". Default \"buy\" searches sales. A transaction encoded in a startUrls search overrides this choice for that URL.",
            "default": "buy"
          },
          "propertyTypes": {
            "title": "Property type codes (e.g. flat)",
            "type": "array",
            "description": "List of property codes, e.g. [\"flat\", \"house\"]. Allowed: flat, house, parking, shop, loft, castle, building, office, terrain. Default [\"flat\", \"house\"] returns apartments and houses. URL property types override this list for that URL.",
            "items": {
              "type": "string",
              "enum": [
                "flat",
                "house",
                "parking",
                "shop",
                "loft",
                "castle",
                "building",
                "office",
                "terrain"
              ]
            },
            "default": [
              "flat",
              "house"
            ]
          },
          "maxItems": {
            "title": "Total listing limit (e.g. 30)",
            "minimum": 1,
            "type": "integer",
            "description": "Positive whole number of unique listings to save, e.g. 30; default 50. One shared limit across all places, URLs and pages, not a limit per target. Fewer records are returned when matches run out or the spending limit is reached.",
            "default": 50
          },
          "minPrice": {
            "title": "Minimum price (e.g. 1000)",
            "type": "integer",
            "description": "Positive integer lower bound in euros; monthly rent for rent searches, e.g. 1000. Applies with the other filters; minPrice should not exceed maxPrice."
          },
          "maxPrice": {
            "title": "Maximum price (e.g. 1000)",
            "type": "integer",
            "description": "Positive integer upper bound in euros; monthly rent for rent searches, e.g. 1000. Applies with the other filters; minPrice should not exceed maxPrice."
          },
          "minArea": {
            "title": "Minimum area (e.g. 40)",
            "type": "integer",
            "description": "Positive integer lower bound in square metres, e.g. 40. Applies with the other filters; minArea should not exceed maxArea."
          },
          "maxArea": {
            "title": "Maximum area (e.g. 40)",
            "type": "integer",
            "description": "Positive integer upper bound in square metres, e.g. 40. Applies with the other filters; minArea should not exceed maxArea."
          },
          "minRooms": {
            "title": "Minimum rooms (e.g. 2)",
            "type": "integer",
            "description": "Positive integer lower bound in rooms, e.g. 2. Applies with the other filters; minRooms should not exceed maxRooms."
          },
          "maxRooms": {
            "title": "Maximum rooms (e.g. 2)",
            "type": "integer",
            "description": "Positive integer upper bound in rooms, e.g. 2. Applies with the other filters; minRooms should not exceed maxRooms."
          },
          "includeDetails": {
            "title": "Fetch extra listing details (e.g. false)",
            "type": "boolean",
            "description": "Fetch one extra detail request per search listing for agencyName and title when available; default false. Direct listingIds/listingUrls already fetch details once regardless of this setting. Detail failures keep search data and leave unavailable fields null.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Apify Proxy settings (e.g. no proxy)",
            "type": "object",
            "description": "Apify proxy configuration; default {\"useApifyProxy\":false} sends direct requests with datacenter fallback when blocked. When configured, all retries retain your proxy settings with fresh sessions. Persistent blocks are skipped and the run succeeds with guidance.",
            "default": {
              "useApifyProxy": false
            }
          },
          "minBedrooms": {
            "title": "Minimum bedrooms (e.g. 1)",
            "minimum": 1,
            "type": "integer",
            "description": "Positive integer lower bound in bedrooms, e.g. 1. Applies with the other filters; minBedrooms should not exceed maxBedrooms."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms (e.g. 1)",
            "minimum": 1,
            "type": "integer",
            "description": "Positive integer upper bound in bedrooms, e.g. 1. Applies with the other filters; minBedrooms should not exceed maxBedrooms."
          },
          "furnishedOnly": {
            "title": "Require furnished listings (e.g. true)",
            "type": "boolean",
            "description": "Boolean, e.g. true. Default false applies no furnishing filter. Set true to request only properties marked furnished by Bien’ici; useful with transactionType: \"rent\". Missing furnishing data may exclude a listing.",
            "default": false
          },
          "listingIds": {
            "title": "Bien’ici listing IDs (e.g. immo-facile-61288997)",
            "type": "array",
            "description": "Bien’ici listing IDs to fetch directly, e.g. [\"immo-facile-61288997\"]. Default empty. Pass places: [] for IDs only. Direct targets run before searches, share maxItems, and unavailable or blocked targets are skipped without error records. Search filters do not restrict direct IDs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "Bien’ici listing URLs (strings or URL objects)",
            "type": "array",
            "description": "Public Bien’ici listing URLs as strings or {\"url\":\"https://www.bienici.com/annonce/immo-facile-61288997\"} objects. Supports /annonce/<id>, /annonce/<location>/<id> and realEstateAd.json?id=<id>. Default empty. Pass places: [] for URLs only. Direct targets run first, share maxItems and ignore search filters; unavailable or blocked listings are skipped.",
            "default": []
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}