{
  "openapi": "3.0.1",
  "info": {
    "title": "VivaReal Brazil Real Estate Scraper | Property Listings API",
    "description": "Scrape VivaReal Brazil property listings for sale and rent (imoveis a venda e aluguel). Get price, condo fee, IPTU, area, bedrooms, address, GPS, photos, amenities and advertiser contacts (phone, WhatsApp, CRECI). Filter by city, price, type, bedrooms. Export JSON, CSV, Excel. Run via API.",
    "version": "0.1",
    "x-build-id": "hwv4LKzULstXDlYjM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~vivareal-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-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/scrapers_lat~vivareal-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-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/scrapers_lat~vivareal-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-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": {
          "maxListings": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of listings to collect. Optional."
          },
          "withDetails": {
            "title": "With Details",
            "type": "boolean",
            "description": "When enabled, each listing also includes description, amenities, all images, advertiser and coordinates.",
            "default": true
          },
          "searchTerm": {
            "title": "Location",
            "type": "string",
            "description": "City or neighborhood to search on VivaReal, e.g. \"Sao Paulo\", \"Rio de Janeiro\", \"Copacabana\". Resolved automatically to the matching VivaReal location."
          },
          "startUrl": {
            "title": "Search URL (optional)",
            "type": "string",
            "description": "Optional. A VivaReal search results URL (e.g. https://www.vivareal.com.br/venda/sp/sao-paulo/apartamento_residencial/). The location, operation and property type are read from the URL and override the fields below."
          },
          "business": {
            "title": "Operation",
            "enum": [
              "SALE",
              "RENTAL"
            ],
            "type": "string",
            "description": "Buy (venda) or rent (aluguel).",
            "default": "SALE"
          },
          "listingType": {
            "title": "Listing Type",
            "enum": [
              "USED",
              "DEVELOPMENT"
            ],
            "type": "string",
            "description": "Used (resale) properties or new developments.",
            "default": "USED"
          },
          "unitType": {
            "title": "Property Type",
            "enum": [
              "APARTMENT",
              "HOME",
              "PENTHOUSE",
              "ALLOTMENT_LAND",
              "FARM",
              "RESIDENTIAL_BUILDING",
              "ANY"
            ],
            "type": "string",
            "description": "Type of property to search for.",
            "default": "APARTMENT"
          },
          "minPrice": {
            "title": "Min price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings priced at or above this amount (Brazilian Reais)."
          },
          "maxPrice": {
            "title": "Max price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings priced at or below this amount (Brazilian Reais)."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings with at least this many bedrooms."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings with at most this many bedrooms."
          },
          "minBathrooms": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings with at least this many bathrooms."
          },
          "minParking": {
            "title": "Min parking spaces",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings with at least this many parking spaces."
          },
          "minArea": {
            "title": "Min usable area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings with at least this usable area in square metres."
          },
          "maxArea": {
            "title": "Max usable area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only return listings with at most this usable area in square metres."
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Optional. Only return listings that have ALL of these amenity codes, e.g. POOL, GYM, ELEVATOR, BARBECUE_GRILL, GATED_COMMUNITY, PLAYGROUND, PARTY_HALL.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}