{
  "openapi": "3.0.1",
  "info": {
    "title": "Magicbricks Property Listings & Price Drop Monitor",
    "description": "Magicbricks.com homes for sale or rent in any Indian city as clean JSON: price in INR, BHK, carpet area, price per sq ft, locality, project, RERA id, amenities and photos. Monitoring mode returns only listings that newly appear in your search, plus price drops; its first run is free. Unofficial.",
    "version": "0.1",
    "x-build-id": "APtYucce2JQILZgcv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~magicbricks-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-magicbricks-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/neverempty~magicbricks-listings/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-magicbricks-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/neverempty~magicbricks-listings/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-magicbricks-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": {
          "searchMode": {
            "title": "Buy or rent",
            "enum": [
              "buy",
              "rent"
            ],
            "type": "string",
            "description": "buy = homes for sale, rent = homes to rent. Rent rows carry the monthly rent in priceInr with priceType monthly-rent.",
            "default": "buy"
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "An Indian city, e.g. Mumbai, Bangalore (Bengaluru), Pune, Hyderabad, Chennai, New Delhi, Gurgaon (Gurugram), Noida, Kolkata, Ahmedabad. A Magicbricks city code (digits) also works. An unknown name returns a free row with Magicbricks' suggestions. Empty = Mumbai."
          },
          "localities": {
            "title": "Localities (optional)",
            "maxItems": 10,
            "type": "array",
            "description": "Up to 10 localities inside the city, e.g. Andheri West, Powai, Koramangala, Whitefield. Empty = the whole city. A locality Magicbricks does not know stops the run with a free row listing its suggestions, instead of returning the whole city.",
            "items": {
              "type": "string"
            }
          },
          "bhk": {
            "title": "BHK (bedrooms)",
            "type": "array",
            "description": "Bedroom counts to keep. 5 means 5 BHK and above. Empty = any. Sent to Magicbricks and checked again on every row.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 BHK",
                "2 BHK",
                "3 BHK",
                "4 BHK",
                "5+ BHK"
              ]
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Empty = apartments, builder floors, penthouses, studios, houses and villas (plots are left out unless you pick them).",
            "items": {
              "type": "string",
              "enum": [
                "apartment",
                "builder-floor",
                "penthouse",
                "studio",
                "house",
                "villa",
                "plot"
              ],
              "enumTitles": [
                "Apartment / flat",
                "Builder floor",
                "Penthouse",
                "Studio apartment",
                "Independent house",
                "Villa",
                "Residential plot / land"
              ]
            }
          },
          "minPrice": {
            "title": "Minimum price (INR)",
            "minimum": 0,
            "type": "integer",
            "description": "In rupees: the sale price for buy, the monthly rent for rent. 1 crore = 10000000, 1 lakh = 100000. 0 = no minimum. Listings without a price are kept."
          },
          "maxPrice": {
            "title": "Maximum price (INR)",
            "minimum": 0,
            "type": "integer",
            "description": "In rupees: the sale price for buy, the monthly rent for rent. 0 = no maximum. Listings without a price are kept."
          },
          "minAreaSqft": {
            "title": "Minimum area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Covered (super built-up) area, else carpet area, else plot area, all converted to square feet. 0 = no minimum."
          },
          "maxAreaSqft": {
            "title": "Maximum area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Same area as the minimum. 0 = no maximum."
          },
          "furnishing": {
            "title": "Furnishing",
            "type": "array",
            "description": "Empty = any. Listings that do not state furnishing are kept.",
            "items": {
              "type": "string",
              "enum": [
                "Furnished",
                "Semi-Furnished",
                "Unfurnished"
              ],
              "enumTitles": [
                "Furnished",
                "Semi-furnished",
                "Unfurnished"
              ]
            }
          },
          "availability": {
            "title": "Possession status",
            "enum": [
              "any",
              "ready",
              "under-construction"
            ],
            "type": "string",
            "description": "ready = ready to move (or available immediately), under-construction = new projects not yet finished.",
            "default": "any"
          },
          "postedBy": {
            "title": "Posted by",
            "type": "array",
            "description": "Empty = everyone. Owner = listed by the owner, Agent = by a broker, Builder = by the developer.",
            "items": {
              "type": "string",
              "enum": [
                "Owner",
                "Agent",
                "Builder"
              ],
              "enumTitles": [
                "Owner",
                "Agent / broker",
                "Builder"
              ]
            }
          },
          "transactionType": {
            "title": "New or resale (buy only)",
            "enum": [
              "any",
              "new",
              "resale"
            ],
            "type": "string",
            "description": "Only for buy. new = new property from a project, resale = a home sold by its current owner.",
            "default": "any"
          },
          "tenantType": {
            "title": "Tenants accepted (rent only)",
            "enum": [
              "any",
              "bachelors",
              "family"
            ],
            "type": "string",
            "description": "Only for rent. Keeps listings open to bachelors or to families. Listings that do not say are kept.",
            "default": "any"
          },
          "keywords": {
            "title": "Keywords (optional)",
            "type": "array",
            "description": "Keep listings whose title, description, locality, project, developer or amenities contain these words, e.g. sea view, gated, metro.",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "any = at least one keyword, all = every keyword.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords (optional)",
            "type": "array",
            "description": "Drop listings that contain any of these words, e.g. auction, PG.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep listings posted in the last N days. 0 = no limit. Listings without a posting date are kept."
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "newest",
              "relevance",
              "price-low",
              "price-high",
              "price-per-sqft-low"
            ],
            "type": "string",
            "description": "newest = most recently posted first. Monitoring mode always reads newest first.",
            "default": "newest"
          },
          "maxListings": {
            "title": "Maximum listings to return",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many listings to return. You are charged only for the listing rows you receive. Magicbricks shows 30 listings per page.",
            "default": 20
          },
          "maxPages": {
            "title": "Maximum pages to read",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Upper limit on result pages read (30 listings each). 0 = automatic: enough pages for the maximum listings, 40 for monitoring, 10 for price-drop monitoring."
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new listings)",
            "type": "boolean",
            "description": "Remembers this search between runs and returns only listings that newly appear in these search results since the last run (including listings an advertiser posted again); a listing already returned is not returned as new again. The first run is free: it only remembers what is listed now. Schedule it (for example every hour) to get new listings as they appear.",
            "default": false
          },
          "alertOn": {
            "title": "Monitoring: what to return",
            "enum": [
              "new",
              "new-and-price-drops"
            ],
            "type": "string",
            "description": "new = new listings only. new-and-price-drops = new listings plus remembered listings whose price is now lower, with previousPriceInr, priceDropInr and priceDropPercent. Price drops are checked on the first pages (maximum pages, 10 by default).",
            "default": "new"
          },
          "resetMonitoringState": {
            "title": "Reset monitoring memory",
            "type": "boolean",
            "description": "Forget what this search remembered. The next monitoring run is a free first run again.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}