{
  "openapi": "3.0.1",
  "info": {
    "title": "QuintoAndar Scraper: Price per m² & Rental Yield",
    "description": "Scrape QuintoAndar listings for sale and rent in any Brazilian city or neighborhood, past the 1,000-result limit. Each listing comes with price per m², rent per m², gross rental yield and the \"Ótimo preço\" badge, plus median prices per neighborhood. Export to Excel, CSV or JSON, or use the API.",
    "version": "0.1",
    "x-build-id": "V7m19hXhQYItKKu58"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/roomy_tweet~quintoandar-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-roomy_tweet-quintoandar-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/roomy_tweet~quintoandar-scraper/runs": {
      "post": {
        "operationId": "runs-sync-roomy_tweet-quintoandar-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/roomy_tweet~quintoandar-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-roomy_tweet-quintoandar-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": [
          "locations"
        ],
        "properties": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Where to search. Each line is a neighborhood (\"Pinheiros, São Paulo, SP\"), a city (\"Curitiba, PR\") or the URL of a QuintoAndar search (https://www.quintoandar.com.br/comprar/imovel/...). Every listing of the place is reachable, past QuintoAndar's limit of 1,000 results per search.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "dealType": {
            "title": "Sale or rent",
            "enum": [
              "sale",
              "rent",
              "both"
            ],
            "type": "string",
            "description": "Listings for sale, for rent, or both. A QuintoAndar search URL keeps its own choice.",
            "default": "sale"
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many listings in total. 0 = all the listings of every location (São Paulo alone has over 170,000 for sale).",
            "default": 500
          },
          "onlyInsideLocation": {
            "title": "Only listings inside the location",
            "type": "boolean",
            "description": "QuintoAndar's search for a place also returns listings around it: a Pinheiros search has 8,300 listings for sale, of which 3,100 are in Pinheiros; a São Paulo search includes Santo André, Guarulhos, Osasco... Leave this on to keep only listings in the requested neighborhood or city. Left-out listings are not charged.",
            "default": true
          },
          "includePartnerListings": {
            "title": "Include partner listings",
            "type": "boolean",
            "description": "Besides its own listings, QuintoAndar shows listings from partner portals (in Pinheiros, São Paulo: 8,300 own and 13,300 partner listings for sale). Partner listings have price, area, rooms, address and coordinates, but no rent estimate (so no yield unless they are also for rent), and some are the same property listed twice. Each one is charged as a listing.",
            "default": false
          },
          "minSalePrice": {
            "title": "Min sale price (R$)",
            "minimum": 0,
            "type": "integer",
            "description": "For sale listings only. 0 = no minimum.",
            "default": 0
          },
          "maxSalePrice": {
            "title": "Max sale price (R$)",
            "minimum": 0,
            "type": "integer",
            "description": "For sale listings only. 0 = no maximum.",
            "default": 0
          },
          "minRent": {
            "title": "Min rent (R$/month)",
            "minimum": 0,
            "type": "integer",
            "description": "For rent listings only, rent alone (without condo and IPTU). 0 = no minimum.",
            "default": 0
          },
          "maxRent": {
            "title": "Max rent (R$/month)",
            "minimum": 0,
            "type": "integer",
            "description": "For rent listings only, rent alone (without condo and IPTU). 0 = no maximum.",
            "default": 0
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "0 = any.",
            "default": 0
          },
          "minArea": {
            "title": "Min area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "0 = no minimum.",
            "default": 0
          },
          "maxArea": {
            "title": "Max area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "0 = no maximum.",
            "default": 0
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "apartment",
                "house",
                "condoHouse",
                "studio"
              ],
              "enumTitles": [
                "Apartment",
                "House",
                "House in a gated community",
                "Studio / kitnet"
              ]
            },
            "default": []
          },
          "includeDetails": {
            "title": "Include listing details (paid add-on)",
            "type": "boolean",
            "description": "Opens each of QuintoAndar's own listings for days on market, publication dates, floor, CEP, condominium name, doorman and facilities, condo fee and IPTU separately, fire insurance and service fee (rentals), photos labelled by room, video links, near-subway flag and nearby places. Charged per listing as a separate event; about two extra requests per listing. Partner listings are delivered without it and not charged for it.",
            "default": false
          },
          "includePhotos": {
            "title": "Include all photo URLs",
            "type": "boolean",
            "description": "Every listing has its cover photo URL; turn this on for all its photos.",
            "default": false
          },
          "includeNeighborhoodSummary": {
            "title": "Neighborhood summary",
            "type": "boolean",
            "description": "At the end of the run, save medians per neighborhood (price per m², rent per m², gross yield, area) to the key-value store record NEIGHBORHOOD_SUMMARY. Free.",
            "default": true
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 600,
            "type": "integer",
            "description": "Upper limit of requests to QuintoAndar. The Actor also slows down by itself if QuintoAndar asks it to.",
            "default": 240
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}