{
  "openapi": "3.0.1",
  "info": {
    "title": "Zameen Scraper [From $0.9💰] | Listings | Agencies | PK Data",
    "description": "Extract Zameen.com property listings and real estate agency data for property price monitoring, rental yield analysis and Pakistan real estate market research. Prices in PKR, areas in marla and kanal, structured rows via API.",
    "version": "0.1",
    "x-build-id": "bUgTVaYZWmN3gMuKW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~zameen-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-zameen-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/ahmed_jasarevic~zameen-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-zameen-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/ahmed_jasarevic~zameen-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-zameen-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "detail",
              "agencies"
            ],
            "type": "string",
            "description": "`search` = property listings from Zameen's Elasticsearch search backend. `detail` = parse explicit `propertyUrls`. `agencies` = agent/agency directory with phone numbers.",
            "default": "search"
          },
          "purpose": {
            "title": "Purpose (sale / rent)",
            "enum": [
              "for-sale",
              "for-rent"
            ],
            "type": "string",
            "description": "Leave empty to include both. `for-sale` = sale listings, `for-rent` = rent listings."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Exact Zameen location name, e.g. `Lahore`, `Karachi`, `Islamabad`, `Rawalpindi`, `Multan`, `Faisalabad`, `Peshawar`, `Gujranwala`."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Property category name, e.g. `Homes`, `Plots`, `Offices`, `Commercial`, `Agricultural`, `Industrial`."
          },
          "bedroomsMin": {
            "title": "Min bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "bedroomsMax": {
            "title": "Max bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "bathsMin": {
            "title": "Min bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "bathsMax": {
            "title": "Max bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of bathrooms."
          },
          "priceMin": {
            "title": "Min price (PKR)",
            "minimum": 0,
            "type": "number",
            "description": "Absolute PKR amount, e.g. 20000000 for 2 crore."
          },
          "priceMax": {
            "title": "Max price (PKR)",
            "minimum": 0,
            "type": "number",
            "description": "Absolute PKR amount, e.g. 50000000 for 5 crore."
          },
          "areaMinSqft": {
            "title": "Min area (sq ft)",
            "minimum": 0,
            "type": "number",
            "description": "Converted to m² internally. 1 marla = 225 sq ft, 1 kanal = 4500 sq ft."
          },
          "areaMaxSqft": {
            "title": "Max area (sq ft)",
            "minimum": 0,
            "type": "number",
            "description": "Converted to m² internally. 1 marla = 225 sq ft, 1 kanal = 4500 sq ft."
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text match against title, short description, keywords and location path."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "newest",
              "oldest",
              "price-asc",
              "price-desc",
              "area-desc"
            ],
            "type": "string",
            "description": "`newest` gives freshest inventory - best for lead-gen and price tracking.",
            "default": "newest"
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Hard cap for `mode: search`. Enumeration uses search_after pagination, so it scales past the 10k window. Free plans are capped at 10 rows.",
            "default": 100
          },
          "maxAgencies": {
            "title": "Max agencies",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap for `mode: agencies` (Zameen publishes ~15,400 agencies).",
            "default": 25
          },
          "maxDetailPages": {
            "title": "Max detail pages",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many property pages to fetch with CheerioCrawler for the FULL description + every photo URL. Free plans are capped at 10.",
            "default": 20
          },
          "fetchFullDetails": {
            "title": "Fetch full details",
            "type": "boolean",
            "description": "When true, each returned listing is enriched with a CheerioCrawler request to its Zameen page to pull the complete description, all photo URLs, video/panorama counts and contact numbers (still no browser - the data lives in the page's `window.state` JSON blob).",
            "default": false
          },
          "propertyUrls": {
            "title": "Property URLs",
            "type": "array",
            "description": "Required only for `mode: detail`. Explicit zameen.com property URLs, e.g. `https://www.zameen.com/Property/...html`.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}