{
  "openapi": "3.0.1",
  "info": {
    "title": "VivaReal & ZAP Imóveis Scraper (rent, sale, filters, alerts)",
    "description": "VivaReal and ZAP Imóveis scraper for Brazil real estate (imóveis para alugar e comprar): search by state, city, bairro, type, bedrooms and price, or paste any result URL. Rows with price, condo fee, IPTU, area, quartos, vagas, address with coordinates. Monitor mode alerts on new listings.",
    "version": "0.1",
    "x-build-id": "bCncfOHhCt0YgXNDT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datahamster~brazil-real-estate-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datahamster-brazil-real-estate-listings",
        "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/datahamster~brazil-real-estate-listings/runs": {
      "post": {
        "operationId": "runs-sync-datahamster-brazil-real-estate-listings",
        "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/datahamster~brazil-real-estate-listings/run-sync": {
      "post": {
        "operationId": "run-sync-datahamster-brazil-real-estate-listings",
        "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": {
          "portal": {
            "title": "Portal",
            "enum": [
              "vivareal",
              "zap"
            ],
            "type": "string",
            "description": "Which portal to search. Accepted values: vivareal (vivareal.com.br), zap (zapimoveis.com.br). One run covers one portal. Example: \"vivareal\".",
            "default": "vivareal"
          },
          "business": {
            "title": "Business",
            "enum": [
              "rent",
              "sale"
            ],
            "type": "string",
            "description": "Whether to search listings to rent or to buy. Accepted values: rent (aluguel), sale (venda). Example: \"rent\".",
            "default": "rent"
          },
          "state": {
            "title": "State",
            "type": "string",
            "description": "Brazilian state acronym, two letters, lowercase. Examples: \"sp\", \"rj\", \"mg\". Example: \"sp\".",
            "default": "sp"
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name as written on the portal, accents included. Example: \"São Paulo\".",
            "default": "São Paulo"
          },
          "neighborhood": {
            "title": "Neighbourhood",
            "type": "string",
            "description": "Optional bairro to narrow the search, as written on the portal. Example: \"Pinheiros\"."
          },
          "propertyType": {
            "title": "Property type",
            "type": "string",
            "description": "Property type as the portals name it: apartamento, casa, kitnet, cobertura, terreno, comercial, and similar. Example: \"apartamento\". Optional."
          },
          "bedrooms": {
            "title": "Bedrooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of bedrooms (quartos). Example: 2. Optional."
          },
          "priceFrom": {
            "title": "Min price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in Brazilian reais (BRL) - monthly rent when business is rent, sale price when it is sale. Example: 1500. Optional."
          },
          "priceTo": {
            "title": "Max price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in Brazilian reais (BRL). Example: 4000. Optional."
          },
          "searchUrls": {
            "title": "Search URLs (advanced)",
            "type": "array",
            "description": "Any VivaReal or ZAP result URLs with the filters you set on the site; overrides portal, business, state, city and the filters below. Example: [\"https://www.vivareal.com.br/aluguel/sp/sao-paulo/\"]. Optional.",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many result pages to fetch per search, 30 listings per page. Example: 3.",
            "default": 3
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the run after this many listings; you are charged only for listings actually pushed. Example: 20.",
            "default": 20
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "scrape",
              "monitor"
            ],
            "type": "string",
            "description": "scrape = return all matching listings; monitor = return only listings that are new or changed price since the previous run of this saved Task. Example: \"scrape\".",
            "default": "scrape"
          },
          "monitorStateId": {
            "title": "Monitor state id",
            "type": "string",
            "description": "Optional state id when not running as a saved task (monitor mode)"
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional HTTPS URL that receives a POST with the monitor-mode change summary (JSON). Example: \"https://hooks.example.com/vivareal\"."
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Optional Telegram bot token used to send monitor-mode change summaries. Format: \"123456789:AA...\"."
          },
          "telegramChatId": {
            "title": "Telegram chat id",
            "type": "string",
            "description": "Optional Telegram chat id that receives monitor-mode summaries. Example: \"-1001234567890\"."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}