{
  "openapi": "3.0.1",
  "info": {
    "title": "MagicBricks Scraper — India Real Estate Listings API",
    "description": "Scrape Indian property listings from MagicBricks — residential apartments, villas, plots, commercial across Mumbai, Bangalore, Delhi NCR, Pune, Hyderabad, Chennai. Filter by BHK, budget (INR), sale or rent. 99acres / Housing.com alternative for builders, brokers, NRI buyers, investors.",
    "version": "0.0",
    "x-build-id": "oAidae93CmfR0eObT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexgendata~india-magicbricks-real-estate/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexgendata-india-magicbricks-real-estate",
        "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/nexgendata~india-magicbricks-real-estate/runs": {
      "post": {
        "operationId": "runs-sync-nexgendata-india-magicbricks-real-estate",
        "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/nexgendata~india-magicbricks-real-estate/run-sync": {
      "post": {
        "operationId": "run-sync-nexgendata-india-magicbricks-real-estate",
        "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": {
          "city": {
            "title": "City",
            "type": "string",
            "description": "Indian city to scrape property listings for. MagicBricks indexes 100+ Indian cities; the highest-volume markets are: Mumbai (Bandra, Andheri, Powai, Worli, Lower Parel, Thane, Navi Mumbai), Bangalore (Whitefield, Sarjapur, Electronic City, HSR Layout, Hebbal, Yelahanka, Marathahalli, Koramangala), Delhi NCR (Gurgaon Sectors 1-115, Noida Sectors 1-168, Dwarka, South Delhi), Pune (Hinjewadi, Wakad, Baner, Kharadi, Wagholi, Kothrud), Hyderabad (Gachibowli, HITEC City, Kondapur, Madhapur, Manikonda, Kukatpally), Chennai (OMR, Velachery, Adyar, Anna Nagar, T. Nagar, Tambaram), Kolkata, Ahmedabad, Jaipur, Lucknow, Indore, Chandigarh, Coimbatore.",
            "default": "Bangalore"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "apartment",
              "villa",
              "plot",
              "commercial",
              "any"
            ],
            "type": "string",
            "description": "Property category. 'apartment' covers multistorey apartments / flats / builder floors — the dominant supply in Indian Tier-1 metros (Mumbai, Bangalore, Hyderabad). 'villa' covers independent houses / row houses / villas — common in Bangalore (Whitefield / Sarjapur gated communities), Gurgaon (DLF / Emaar / Sobha), and Hyderabad (Gachibowli / Tellapur). 'plot' covers residential land plots — important in Tier-2 / Tier-3 cities and outer Tier-1 (North Bangalore, Chennai OMR, outer Pune). 'commercial' covers office space, retail, shops, and showrooms — important for IT-park / SEZ / mall investment research. 'any' returns all categories.",
            "default": "apartment"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Whether to scrape sale listings or rent listings. Indian property buyers and brokers typically work one side: builders / developers / NRI investors focus on 'sale', while corporate housing teams and city-relocation services focus on 'rent'. Pricing schema differs — sale price is in INR (crores / lakhs), rent price is in INR / month.",
            "default": "sale"
          },
          "bhk": {
            "title": "BHK filter (bedroom count)",
            "uniqueItems": true,
            "type": "array",
            "description": "BHK = Bedroom, Hall, Kitchen — the standard Indian property bedroom-count notation. 1BHK = studio / 1-bedroom (Mumbai compact apartments, PG-friendly). 2BHK = the volume tier for young families in Bangalore / Pune / Hyderabad (60-80% of new launches). 3BHK = mid-size family unit, the upgrade tier for IT professionals. 4BHK / 5BHK+ = premium / luxury tier (sea-facing Mumbai, golf-course Gurgaon, prime South Delhi). Leave empty to span all sizes.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5+"
              ]
            },
            "default": []
          },
          "budgetMinInr": {
            "title": "Minimum budget (INR)",
            "minimum": 0,
            "maximum": 10000000000,
            "type": "integer",
            "description": "Lower bound on listing price in Indian Rupees (INR). 1 lakh = 100,000 INR; 1 crore = 10,000,000 INR. Common buyer tiers for residential SALE: 40 lakh = entry-level Tier-2 city apartment; 80 lakh = mid Bangalore / Pune 2BHK; 1.5 crore = premium Bangalore 3BHK / mid-Mumbai 2BHK; 3 crore = luxury Mumbai / Gurgaon / South Delhi tier; 10 crore+ = ultra-prime (Worli, DLF Camellias, Lutyens Delhi). For RENT listings, scales are monthly INR: 25,000 = mid Bangalore 2BHK; 80,000 = premium Mumbai; 2 lakh+ = ultra-prime serviced apartment. Set 0 for no lower bound.",
            "default": 0
          },
          "budgetMaxInr": {
            "title": "Maximum budget (INR)",
            "minimum": 0,
            "maximum": 10000000000,
            "type": "integer",
            "description": "Upper bound on listing price in INR. Example: pass 10000000 (= 1 crore) to filter out luxury listings and focus on the mid-market / first-time buyer tier; pass 5000000 (= 50 lakh) for the entry-level affordable segment; pass 100000000 (= 10 crore) to slice the ultra-luxury market. For RENT, the same INR field is interpreted as INR / month. Set 0 for no upper bound.",
            "default": 10000000
          },
          "maxResults": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Hard cap on total listings returned per run (1-2000). Each listing is one MagicBricks property record. Most recent / featured listings are returned first. Premium per-listing pricing applies — Indian property data is a high-volume residential tier matching the SG Rental Market Tracker pricing standard.",
            "default": 50
          },
          "notionConnector": {
            "title": "Deliver to Notion (optional)",
            "type": "string",
            "description": "Optional. Connect your Notion workspace and the listings are also written as a Notion page in the same run — the Actor never sees your Notion credentials. Authorize a Notion MCP connector in Apify Console → Settings → API & Integrations, then select it here."
          },
          "notionParentId": {
            "title": "Notion parent page ID (optional)",
            "type": "string",
            "description": "Optional Notion page ID to create the page under. Blank = a private page in your workspace."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}