{
  "openapi": "3.0.1",
  "info": {
    "title": "VivaReal Scraper - Brazil Real Estate Imoveis",
    "description": "VivaReal imoveis scraper and unofficial API alternative. Export Brazil real estate listings to CSV/JSON: price, condo fee, IPTU, area, beds and geo. No login.",
    "version": "1.0",
    "x-build-id": "cDUbQMa4JKUzYiwZQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~vivareal-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-vivareal-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/logiover~vivareal-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-vivareal-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/logiover~vivareal-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-vivareal-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": {
          "searchUrls": {
            "title": "VivaReal search URLs",
            "type": "array",
            "description": "Paste one or more vivareal.com.br search/result page URLs (e.g. https://www.vivareal.com.br/venda/sp/sao-paulo/apartamento_residencial/). The actor derives the location, operation (sale/rent), property type and price filters from each URL. Leave empty to use the builder fields below.",
            "items": {
              "type": "string"
            }
          },
          "operationType": {
            "title": "Operation",
            "enum": [
              "SALE",
              "RENTAL"
            ],
            "type": "string",
            "description": "Buy (SALE) or rent (RENTAL). Used in builder mode when no search URLs are given.",
            "default": "SALE"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "USED",
              "DEVELOPMENT"
            ],
            "type": "string",
            "description": "USED = resale/used properties. DEVELOPMENT = new launches.",
            "default": "USED"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "",
              "APARTMENT",
              "HOME",
              "ALLOTMENT_LAND",
              "BUSINESS",
              "FARM",
              "PENTHOUSE"
            ],
            "type": "string",
            "description": "Filter by property type (builder mode). Leave blank for all types.",
            "default": ""
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name in Portuguese, e.g. 'São Paulo', 'Rio de Janeiro', 'Curitiba' (builder mode)."
          },
          "state": {
            "title": "State",
            "enum": [
              "",
              "Acre",
              "Alagoas",
              "Amapá",
              "Amazonas",
              "Bahia",
              "Ceará",
              "Distrito Federal",
              "Espírito Santo",
              "Goiás",
              "Maranhão",
              "Mato Grosso",
              "Mato Grosso do Sul",
              "Minas Gerais",
              "Pará",
              "Paraíba",
              "Paraná",
              "Pernambuco",
              "Piauí",
              "Rio de Janeiro",
              "Rio Grande do Norte",
              "Rio Grande do Sul",
              "Rondônia",
              "Roraima",
              "Santa Catarina",
              "São Paulo",
              "Sergipe",
              "Tocantins"
            ],
            "type": "string",
            "description": "Brazilian state (optional, improves city accuracy in builder mode). Leave 'Any' to let the city resolve on its own.",
            "default": ""
          },
          "locationId": {
            "title": "Location ID (advanced)",
            "type": "string",
            "description": "Optional VivaReal locationId to target a neighborhood precisely, e.g. 'BR>Sao Paulo>NULL>Sao Paulo>Zona Oeste>Pinheiros'. Overrides city/state when set."
          },
          "minPrice": {
            "title": "Min price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price filter in Brazilian Reais."
          },
          "maxPrice": {
            "title": "Max price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price filter in Brazilian Reais."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum listings to collect across all searches. A single query returns up to ~1,476 listings; add more cities/filters or URLs to reach more.",
            "default": 1000
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "VivaReal data is served from Brazil. Keep the default Apify Proxy · RESIDENTIAL group · country BR for reliable access.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "BR"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}