{
  "openapi": "3.0.1",
  "info": {
    "title": "Imovelweb Brazil Scraper",
    "description": "[💰 $1.3 / 1K] Extract real estate listings from Imovelweb Brazil — apartments, houses, land, and commercial for sale, rent, temporary stay, and new developments. Get price, beds, baths, area, address, GPS, photos, videos, amenities, seller/agency, and contact details.",
    "version": "1.0",
    "x-build-id": "moTjhbkSA5WUhn6dJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~imovelweb-br-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-imovelweb-br-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~imovelweb-br-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-imovelweb-br-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~imovelweb-br-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-imovelweb-br-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": "Imovelweb URLs",
            "type": "array",
            "description": "Paste one or more imovelweb.com.br URLs — either search-result pages (for example https://www.imovelweb.com.br/apartamentos-venda-sao-paulo-sp.html) or individual listing pages. The scraper reads every filter straight from each URL, so the Search Filters below are ignored for these. Use this when you already built a search on the site.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Locations",
            "type": "array",
            "description": "Where to search. Enter a Brazilian city, neighborhood, or state — for example 'São Paulo SP', 'Copacabana Rio de Janeiro', or 'Belo Horizonte MG'. Each location is searched separately. Leave empty to search all of Brazil, or when you are pasting URLs above.",
            "items": {
              "type": "string"
            }
          },
          "dealType": {
            "title": "Deal Type",
            "enum": [
              "venda",
              "aluguel",
              "temporada",
              "lancamento"
            ],
            "type": "string",
            "description": "Whether to find properties for sale, for rent, for a temporary stay, or new developments (lançamentos). Only applies when you build a search below (not when pasting URLs)."
          },
          "propertyTypes": {
            "title": "Property Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Which kinds of property to include. Leave empty to include all types.",
            "items": {
              "type": "string",
              "enum": [
                "apartamento",
                "casa",
                "casa-condominio",
                "cobertura",
                "flat",
                "kitnet",
                "terreno",
                "sitio-chacara",
                "fazenda",
                "sala-comercial",
                "loja-ponto-comercial",
                "galpao-deposito",
                "predio-inteiro",
                "garagem"
              ],
              "enumTitles": [
                "Apartment (Apartamento)",
                "House (Casa)",
                "Condo house (Casa em condomínio)",
                "Penthouse (Cobertura)",
                "Flat",
                "Studio (Kitnet)",
                "Land / lot (Terreno)",
                "Country house (Sítio / Chácara)",
                "Farm (Fazenda)",
                "Office (Sala comercial)",
                "Retail / shop (Loja / Ponto comercial)",
                "Warehouse (Galpão / Depósito)",
                "Whole building (Prédio inteiro)",
                "Garage (Garagem)"
              ]
            }
          },
          "publisherType": {
            "title": "Advertiser Type",
            "enum": [
              "all",
              "agency",
              "owner"
            ],
            "type": "string",
            "description": "Filter listings by who posted them: everyone, real estate agencies only, or direct owners only. 'Direct owners only' is applied by the site; 'Real estate agencies only' is applied after retrieval to the listings read, so a run using it may return fewer results."
          },
          "minPrice": {
            "title": "Minimum Price (R$)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings at or above this price, in Brazilian Reais. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Maximum Price (R$)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings at or below this price, in Brazilian Reais. Leave empty for no maximum."
          },
          "minBedrooms": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings with at least this many bedrooms. Leave empty for any."
          },
          "maxBedrooms": {
            "title": "Maximum Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings with no more than this many bedrooms. Applied after retrieval to the listings read; listings that don't report a bedroom count are excluded, and very restrictive values may return fewer results. Leave empty for any."
          },
          "minBathrooms": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings with at least this many bathrooms. Applied after retrieval to the listings read; listings that don't report a bathroom count are excluded, and very restrictive values may return fewer results. Leave empty for any."
          },
          "minParking": {
            "title": "Minimum Parking Spaces",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings with at least this many parking spaces. Applied after retrieval to the listings read; listings that don't report parking are excluded, and very restrictive values may return fewer results. Leave empty for any."
          },
          "minArea": {
            "title": "Minimum Area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings with at least this much total area, in square meters. Applied after retrieval to the listings read; listings that don't report an area are excluded, and very restrictive values may return fewer results. Leave empty for no minimum."
          },
          "maxArea": {
            "title": "Maximum Area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings with no more than this much total area, in square meters. Applied after retrieval to the listings read; listings that don't report an area are excluded. Leave empty for no maximum."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to collect across all URLs and locations. Set to 0 for unlimited (bounded by how deep each search can be read). Note: Imovelweb gates deep pagination, so each individual search or URL returns roughly its first 100–120 listings (about 4 pages). To collect more, split the search into several narrower ones — by neighborhood, price band, or property type — and each returns its own ~120; add them as separate locations or URLs in one run."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}