{
  "openapi": "3.0.1",
  "info": {
    "title": "NoBroker Scraper — India Owner-Direct Rent, Buy & PG",
    "description": "Scrape NoBroker.in owner-direct listings: exact rupee rent or price, deposit, BHK, area, floor, GPS, owner name, furnishing, PG food terms. Rent, buy and paying-guest.",
    "version": "1.0",
    "x-build-id": "eVyQCQG91HDRLph2i"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~nobroker-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-nobroker-property-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/sian.agency~nobroker-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-nobroker-property-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/sian.agency~nobroker-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-nobroker-property-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": {
          "operation": {
            "title": "🎯 What to collect",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "One per run. Property Search reads NoBroker's locality result pages and returns a full record per listing, owner name and coordinates included. Property Detail opens the listings you list under Property URLs and adds the owner's own description text and the full photo inventory.",
            "default": "search"
          },
          "city": {
            "title": "🏙️ City",
            "enum": [
              "bangalore",
              "mumbai",
              "pune",
              "chennai",
              "hyderabad",
              "delhi",
              "gurgaon",
              "noida",
              "greater_noida",
              "ghaziabad",
              "faridabad"
            ],
            "type": "string",
            "description": "Which metro to read. NoBroker serves these eleven; other Indian cities have no presence. The locality field below narrows within the city.",
            "default": "bangalore"
          },
          "locality": {
            "title": "📍 Locality",
            "type": "string",
            "description": "A neighbourhood inside the city, exactly as NoBroker names it - e.g. Koramangala, HSR Layout, Powai, Andheri West, Gachibowli, Sector 62. Left empty the run walks the whole city one locality page at a time. NoBroker's locality slugs are its own; if a name matches no page the run says so and lists nearby localities it does publish.",
            "default": "Koramangala"
          },
          "segment": {
            "title": "🤝 Rent, buy or PG",
            "enum": [
              "rent",
              "sale",
              "pg"
            ],
            "type": "string",
            "description": "Which side of the market to read. Rents carry deposit, maintenance and lease type; sales carry price, ownership type and loan availability; PG carries food, gender, room types and gate-closing time. NoBroker does not publish commercial or plot locality pages (they answer 410), so those segments are not offered rather than silently returning nothing.",
            "default": "rent"
          },
          "bedrooms": {
            "title": "🛏️ BHK",
            "enum": [
              "any",
              "1rk",
              "1",
              "2",
              "3",
              "4"
            ],
            "type": "string",
            "description": "Restrict to a bedroom count. Uses the site's own BHK pages, so the filter is verified by the site itself before any row is billed - a 2 BHK page cannot return a 3 BHK row. Ignored for PG searches, which have no BHK.",
            "default": "any"
          },
          "maxResults": {
            "title": "🔢 Max results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many listings across the whole run. 25 arrive per result page; a locality like Koramangala holds 783 rentals, so raise this to drain one. Charges follow delivered rows, not this cap.",
            "default": 50
          },
          "propertyUrls": {
            "title": "🔗 Property URLs",
            "type": "array",
            "description": "Used by the Property Detail operation: NoBroker listing URLs in the www.nobroker.in/property/...-rs-40000/{32-hex-id}/detail form you get from a search run or a browser. URLs that resolve to nothing are reported as errors and are never charged.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchUrls": {
            "title": "🔗 Search URLs",
            "type": "array",
            "description": "Used by the Property Search operation: paste nobroker.in result URLs exactly as they appear in your browser (e.g. www.nobroker.in/2bhk-flats-for-rent-in-hsr-layout_bangalore). Any locality page URL works, including filter combinations the structured fields cannot express. Ignored unless filled; when present they replace the city/locality/segment fields above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}