{
  "openapi": "3.0.1",
  "info": {
    "title": "QuintoAndar Scraper - Brazil Rentals & Sales",
    "description": "QuintoAndar scraper for Brazilian rentals and sales. Name a city or neighbourhood, or paste a URL, and get one row per listing: rent, sale price, condo fee and IPTU, total monthly cost, area, bedrooms, parking, amenities and photos. $1.40 per 1,000 properties.",
    "version": "0.1",
    "x-build-id": "Hzxf4Q1GVS6SJ50Ns"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~quintoandar-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-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/dami_studio~quintoandar-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-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/dami_studio~quintoandar-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-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",
        "properties": {
          "location": {
            "title": "Where to look",
            "type": "string",
            "description": "A city QuintoAndar covers, \"São Paulo\", \"Rio de Janeiro\", \"Belo Horizonte\", \"Curitiba\". You can also write a neighbourhood and its city, like \"Pinheiros, São Paulo\", or paste a neighbourhood slug straight from a QuintoAndar URL, like \"pinheiros-sao-paulo-sp-brasil\". Either gives you a much tighter result set."
          },
          "businessContext": {
            "title": "Rent or buy",
            "enum": [
              "rent",
              "sale"
            ],
            "type": "string",
            "description": "Which side of QuintoAndar to read. Several cities are rent-only, if you ask for sale listings there the run tells you so instead of returning nothing."
          },
          "maxItems": {
            "title": "How many listings",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Hard cap on rows across everything you asked for (1-2000). You are charged per listing returned. QuintoAndar hands out about 26 listings per search URL, so anything above that is collected by searching neighbourhood by neighbourhood, which takes roughly one request per 24 extra listings."
          },
          "includeDetails": {
            "title": "Open each listing page for the extra fields",
            "type": "boolean",
            "description": "Off by default. Turn it on and the actor opens every listing to fill in latitude and longitude, the condo fee and IPTU split apart, postcode, suites, pets, construction year, availability and the owner's own description. It costs one extra request per listing and makes the run roughly forty times heavier, so leave it off unless you need those fields."
          },
          "locations": {
            "title": "More places (optional)",
            "type": "array",
            "description": "Extra cities or neighbourhood slugs, one per line. Runs alongside the field above.",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Lowest price, in reais",
            "minimum": 1,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only listings at or above this price. On a rent search it is the monthly rent before the condo fee and IPTU; on a sale search it is the asking price. Leave it empty for no minimum."
          },
          "bedroomsMin": {
            "title": "At least this many bedrooms",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "1 to 4. QuintoAndar's own choices stop at 4, so 4 means four or more."
          },
          "bathroomsMin": {
            "title": "At least this many bathrooms",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "1 to 4. As with bedrooms, 4 means four or more."
          },
          "areaMin": {
            "title": "Smallest floor area, in m²",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Only listings with at least this much floor area, as QuintoAndar records it."
          },
          "startUrls": {
            "title": "QuintoAndar URLs (optional)",
            "type": "array",
            "description": "Paste search pages (https://www.quintoandar.com.br/alugar/imovel/sao-paulo-sp-brasil/apartamento/2-quartos) or single listings (https://www.quintoandar.com.br/imovel/892801690). Filters already in the URL are kept. A single listing URL always comes back with the full field set.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave this alone. Set it only if you need traffic to leave from a particular network of your own."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}