# Zameen.com Scraper - Pakistan Property Listings & Prices (`sian.agency/zameen-property-scraper`) Actor

Scrape Zameen.com property listings across Pakistan: PKR prices, beds, baths, marla or kanal area, photos, agent tier and GPS coordinates. Sale and rental.

- **URL**: https://apify.com/sian.agency/zameen-property-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 property searches

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Zameen.com Scraper - Pakistan Property Listings & Prices 🚀

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Store-99acres%20Scraper-1AE392](https://img.shields.io/badge/Store-99acres%20Property-00308F)](https://apify.com/sian.agency/99acres-property-scraper?fpr=sian) [![Store-MagicBricks%20Scraper-E64C25](https://img.shields.io/badge/Store-MagicBricks%20Property-E64C25)](https://apify.com/sian.agency/magicbricks-property-scraper?fpr=sian) [![Store-Housing.com%20Scraper-1AE392](https://img.shields.io/badge/Store-Housing.com%20Property-8A2BE2)](https://apify.com/sian.agency/housing-com-property-scraper?fpr=sian)

#### 🎉 Pakistan's biggest property portal as structured rows: 25 listings per page, sale and rent

##### For agents, investors, researchers and diaspora buyers who need Zameen.com data without the scrolling

### 🔎 What is the Zameen.com Pakistan Property Scraper — and when should you use it?

The **Zameen.com Pakistan Property Scraper** turns public Zameen.com property listings from anywhere in Pakistan into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** Pakistani sale and rental listings as rows. Each row carries the asking price or monthly rent in numeric PKR beside the site's own lakh/crore wording, plus beds, baths, area in marla, kanal or square feet, photo count, the 'super hot' badge, the agency's subscription tier and the 'Added' stamp. Switch on full details and the row gains the untruncated advert text, the complete photo set and the feature list. Detailed rows also carry GPS coordinates, the floor area in square metres, the land area in square feet, the raw numeric price and the agency marketing the listing.

**Use something else when:** the property is not in Pakistan or not on Zameen. Use [99acres Scraper](https://apify.com/sian.agency/99acres-property-scraper?fpr=sian) for India's 99acres, with the same buy-rent-commercial row shape. Use [MagicBricks Scraper](https://apify.com/sian.agency/magicbricks-property-scraper?fpr=sian) for India's MagicBricks, sale and rent listings with prices and areas. Use [Housing.com Scraper](https://apify.com/sian.agency/housing-com-property-scraper?fpr=sian) for India's Housing.com, including PG and commercial listings. This actor covers the public listing sections of zameen.com — the five sale sections (Homes, Houses, Flats & Apartments, Plots, Commercial) and their five rental mirrors — at city level for all 64 cities Zameen indexes, and at society level through pasted search URLs. Sold-price history is out of scope because Zameen publishes only what is currently on the market, and the Urdu UI is read in its English default.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/zameen-property-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want property listings and asking prices from Zameen.com using the Apify Actor `sian.agency/zameen-property-scraper`.

Use it when I need: Pakistani sale and rental listings as rows. Each row carries the asking price or monthly rent in numeric PKR beside the site's own lakh/crore wording, plus beds, baths, area in marla, kanal or square feet, photo count, the 'super hot' badge, the agency's subscription tier and the 'Added' stamp. Switch on full details and the row gains the untruncated advert text, the complete photo set and the feature list. Detailed rows also carry GPS coordinates, the floor area in square metres, the land area in square feet, the raw numeric price and the agency marketing the listing.

Don't use it when: the property is not in Pakistan or not on Zameen — use 99acres-property-scraper or magicbricks-property-scraper or housing-com-property-scraper instead.

How to call it: give `locations` a list of Zameen cities (`Lahore`, `Karachi`, `Islamabad` — the picker lists all 64 the site indexes at city level), pick the `category` section (homes, houses, flats, plots or commercial — each also has a rental mirror, e.g. `rental-flats`), and set `maxResults` as the whole-run budget; Zameen puts no ceiling of its own on a search. Narrow with `minPrice`/`maxPrice` in PKR (applied by Zameen before the page is served), `keywords` (free text like 'corner plot'), or `minBeds`/`minBaths` (applied locally — Zameen ignores bed parameters in its addresses). `includeDetails` opens each advert for the full text, GPS and every photo, for an extra charge per listing. To expand listings you already have, set `operation` to `detail` and pass `listingUrls`; to reach a society page the city picker does not list, paste its Zameen address into `searchUrls`.

Start with this input:
{
  "operation": "search",
  "locations": [
    "Lahore"
  ],
  "category": "homes",
  "maxResults": 200
}

Ask me which Pakistani cities to cover, which of Zameen's ten sale or rental sections, and whether the full advert text, GPS coordinates and photo set are worth the extra per-listing charge, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *Pull every 10-marla house for sale in DHA Lahore under 6 crore and rank the phases by median price.*
- *Find rental flats in Karachi's Clifton and DHA with at least 2 beds, with the agency name for each.*
- *Watch the plots sections of Islamabad and Gwadar for new 'corner plot' listings this week, with GPS coordinates.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/zameen-property-scraper.md](https://apify.com/sian.agency/zameen-property-scraper.md).

### 📋 Overview

**Zameen.com Scraper** reads Pakistan's #1 property portal for you. There are 27,000+ sale listings in Lahore alone, plus Karachi, Islamabad and 61 more cities, in all ten sale and rental sections.

**Why professionals choose us:**

- ✅ **Numeric PKR prices**: the site shows "5.5 Crore"; you get 55,000,000 beside the original wording
- ⚡ **25 listings per page**: one clean request per page, no browser to babysit
- 🎯 **GPS on detailed rows**: latitude and longitude read from the page's own data, ready for mapping
- 💰 **Pay per listing**: charged only for rows actually returned, never for empty results
- 💎 **64 cities, 10 sections**: Homes, Houses, Flats, Plots and Commercial, each for sale and for rent
- ✨ **NEW**: full advert text, complete photo sets and the feature list as an add-on per listing

### ✨ Features

- 🏙️ **All 64 Zameen cities**: from Lahore and Karachi to Gwadar and Murree, with the site's own city ids
- 🏷️ **Ten sale and rental sections**: homes, houses, flats, plots and commercial, each for sale and for rent
- 💵 **Prices that compute**: lakh and crore shorthand converted to numeric PKR on every row
- 🛏️ **Beds, baths and areas**: marla, kanal and square yards exactly as the site shows them
- 📄 **Full advert expansion**: untruncated text, every photo, the feature list and GPS per listing
- 🏢 **Agency intelligence**: the agency marketing each listing plus Zameen's Titanium/Platinum tier
- 🎚️ **Price band filters**: minimum and maximum PKR applied before the page is even served
- 🔎 **Keyword search**: "corner plot", "swimming pool", "park facing": Zameen's own text match
- 🌐 **Society-level reach**: paste a DHA Phase 6 or Bahria Town address and the run walks it
- 📊 **Run report**: a summary page with the numbers, failures and what the run cost

### 🎬 Quick Start

Set the city, pick a section, run. Every row lands in the dataset with its price converted and its link preserved.

```bash
curl -X POST https://api.apify.com/v2/acts/sian.agency~zameen-property-scraper/runs?token=[YOUR_TOKEN] \
-d '{"operation": "search", "locations": ["Lahore"], "category": "homes", "maxResults": 100}'
```

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Pick your cities

Add any of Zameen's 64 cities to the locations list. One, or all of them.

#### Step 2: Choose a section

Homes, houses, flats, plots or commercial for sale. The same five exist for rent.

#### Step 3: Run and export

The dataset fills with listings; download JSON, CSV or Excel, or feed the API straight into your tool.

**That's it! In a few minutes, you'll have:**

- Numeric PKR prices beside the site's own wording
- Beds, baths, areas and photo counts per listing
- Listing links, agency names and agent tiers ready for follow-up

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `operation` | string | No | `search` (list properties) or `detail` (expand listings) |
| `locations` | array | No | Cities to read, all 64 Zameen cities, e.g. `["Lahore", "Karachi"]` |
| `category` | string | No | One of ten sections: `homes`, `houses`, `flats`, `plots`, `commercial-sale`, `rentals`, `rental-houses`, `rental-flats`, `rental-plots`, `rental-commercial` |
| `maxResults` | integer | No | Whole-run budget; one page carries 25 listings |
| `keywords` | string | No | Free-text filter Zameen applies server-side, e.g. "corner plot" |
| `includeDetails` | boolean | No | Open each listing for full text, GPS and all photos (extra charge per listing) |
| `minPrice` / `maxPrice` | integer | No | Price band in PKR (monthly rent for rental sections) |
| `minBeds` / `minBaths` | integer | No | Applied after reading; plots are kept whatever you set |
| `searchUrls` | array | No | Paste Zameen search addresses, including society-level pages |
| `listingUrls` | array | No | Listing addresses or bare listing numbers for the `detail` operation |

**Example:**

```json
{
  "operation": "search",
  "locations": ["Lahore", "Islamabad"],
  "category": "houses",
  "minPrice": 20000000,
  "maxResults": 200
}
```

**Society-level search:**

```json
{
  "operation": "search",
  "searchUrls": ["https://www.zameen.com/Homes/Lahore_DHA_Defence-9-1.html"],
  "maxResults": 500
}
```

### 📤 Output

Results are saved to the Apify dataset with **40+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | string | Zameen's listing number |
| `propertyTitle` | string | The listing's own title |
| `url` | string | Canonical Zameen.com link |
| `price` | number | Numeric PKR price (or monthly rent) |
| `priceText` | string | The site's wording, e.g. "5.5 Crore" |
| `beds` / `baths` | integer | Bedroom and bathroom counts (empty on plots) |
| `areaText` / `areaUnit` | string | Area as shown: marla, kanal or square yards |
| `locationText` | string | Society and block as the site shows it |
| `city` | string | City the run searched |
| `latitude` / `longitude` | number | GPS coordinates (detailed rows) |
| `agencyName` | string | Agency marketing the listing (detailed rows) |
| `agentTier` | string | Zameen agency tier on the card: Titanium, Platinum |
| `photoCount` / `photos` | number / array | Photo count, and the full set on detailed rows |
| `descriptionText` | string | Untruncated advert text (detailed rows) |
| `features` | array | Amenity list (detailed rows) |
| `addedText` | string | The card's "Added" stamp |

**Example:**

```json
{
  "listingId": "53557411",
  "propertyTitle": "10 Marla Ultra Luxury Modern House A Masterpiece Of Design",
  "url": "https://www.zameen.com/Property/dha_phase_7_house-53557411-1632-1.html",
  "price": 55000000,
  "priceText": "5.5 Crore",
  "currency": "PKR",
  "beds": 5,
  "baths": 5,
  "areaText": "10 Marla",
  "locationText": "DHA Phase 7 - Block Y, DHA Phase 7",
  "city": "Lahore",
  "photoCount": 20,
  "agentTier": "Titanium",
  "addedText": "Added: 23 minutes ago"
}
```

### 💼 Use Cases & Examples

#### 1. Real-estate analyst building a price index

**Track asking prices across Lahore's societies without a single afternoon of scrolling.**
**Input:** `locations: ["Lahore"]`, `category: "homes"`
**Output:** numeric PKR prices with beds, areas and societies per listing
**Use:** per-square-foot comparisons between DHA Phase 6 and Bahria Town on real data.

#### 2. Property investor watching plot deals

**Catch corner and park-facing plots the day they appear.**
**Input:** `category: "plots"`, `keywords: "corner"`, scheduled daily
**Output:** fresh plot listings with price, society and link
**Use:** a week-over-week diff joined on the listing id.

#### 3. Estate agency hunting leads

**See who holds the stock in a city before you approach them.**
**Input:** `includeDetails: true` on a competitor city
**Output:** agency names and Zameen tiers per listing
**Use:** a prospect list of active agencies, ranked by how much stock they carry.

#### 4. Overseas Pakistani buyer shortlisting from abroad

**Sanity-check a shortlist before anyone visits.**
**Input:** `includeDetails: true`, your target city and section
**Output:** GPS coordinates, photo sets and the agency behind each listing
**Use:** verify a listing's location and completeness before the site visit.

#### 5. Rental yield researcher

**Compare sale and rent for the same city in two runs.**
**Input:** `category: "homes"`, then `category: "rentals"` for the same cities
**Output:** asking prices and monthly rents that join on beds and area
**Use:** a gross-yield picture per city that no single portal page shows.

#### 6. PropTech developer feeding a model

**Structured rows your pipeline can ingest directly.**
**Input:** any search, run on a schedule
**Output:** stable field names, numeric prices, ISO fetch timestamps
**Use:** historical snapshots without building and hosting a scraper.

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/zameen-property-scraper').call({
  operation: 'search',
  locations: ['Lahore'],
  category: 'homes',
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/zameen-property-scraper').call(
    run_input={
        'operation': 'search',
        'locations': ['Karachi'],
        'category': 'rental-flats',
        'maxResults': 100,
    }
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['priceText'], item['locationText'])
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zameen-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "search", "locations": ["Islamabad"], "category": "plots", "maxResults": 100}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call actor API
3. **Process**: Handle JSON results
4. **Action**: Save, notify, or transform

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 listings** per run, with full feature access and the same quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** listings per run
- Full details add-on: full advert text, GPS and every photo per listing
- Pay-per-result: only charged for successful results

💰 **20% under the leading Zameen actor's row price**, with GPS coordinates, numeric PKR prices and the agent tier on rows that need a second request.

🔗 [View current pricing](https://apify.com/sian.agency/zameen-property-scraper?fpr=sian)

### ❓ Frequently Asked Questions

**Q: How many listings can I process?**
A: FREE tier: 25 per run. PAID tier: as many as your maxResults budget allows. Zameen puts no ceiling of its own on a search (Lahore Homes has 27,000+ matches).

**Q: Do I need a proxy or a browser for this?**
A: No. Zameen serves its search pages as complete HTML to an ordinary request, verified against the live portal before this actor was built.

**Q: Are prices in rupees?**
A: Yes, PKR throughout. The actor converts the site's lakh and crore shorthand to numeric prices and keeps the original wording beside them.

**Q: Can I search a single society like DHA Phase 6 or Bahria Town?**
A: Yes, through Search URLs. Paste the society page's address, for example https://www.zameen.com/Homes/Lahore\_DHA\_Defence-9-1.html.

**Q: Will it work for the Urdu version of the site?**
A: The actor reads Zameen's English portal, which is its default. The Urdu pages carry the same listings, so nothing is missing; titles simply come through in English.

**Q: What happens to a listing that has been sold or withdrawn?**
A: Zameen answers with a not-found page. The actor reports that as a row saying the listing could not be found, and that row is not billed.

**Q: Do plots have beds and baths?**
A: No. Plot and commercial listings carry no room counts, and those fields stay empty rather than pretending to a zero.

**Q: What output formats are available?**
A: JSON, CSV or Excel, exported directly from the Apify dataset, or read via the API.

### 🐛 Troubleshooting

**The run returned fewer listings than expected**

- Check the section: houses and flats in one city are two different Zameen sections, each with its own count
- A tight price band or keyword shrinks the result set; widen it and re-run
- Filtered-out listings are never saved and never charged, so a short file means a narrow filter

**An input was reported as "not a city Zameen.com indexes"**

- Pick cities from the picker list; every value there is one Zameen actually serves
- For a society or block, paste the page's address into Search URLs instead

**A listing URL in the detail operation came back "not found"**

- The listing has been sold, rented or withdrawn; re-run the search to pick up what is live today
- Check the address opens in your browser. A bare listing number works too, e.g. 53557411

**The run stopped at exactly 25 listings**

- That is the FREE tier cap; paid runs continue to your maxResults budget

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

Zameen and Zameen.com are trademarks of their owner (Emerging Markets Property Group / Dubizzle Group). This actor is not affiliated with, endorsed by, or sponsored by Zameen.com.

# Actor input Schema

## `operation` (type: `string`):

Pick one per run. Property Search walks Zameen.com's own listing pages for any of its 64 Pakistani cities, in any of the ten sale and rental sections the site publishes, and returns 25 listings per page; Property Detail takes Zameen listing URLs or bare listing numbers and returns the full advert text, every photo, the feature list, GPS coordinates and the agency marketing the listing.

## `locations` (type: `array`):

Which Pakistani cities to read. Every value is Zameen's own city, with the numeric id the site's own links carry — the list is exactly what the site indexes at city level. DHA Phase 6, Bahria Town and other society-level pages live one level below the city: reach them by pasting their Zameen address into Search URLs.

## `category` (type: `string`):

One of the ten listing sections Zameen publishes, one per run. The first five read sale adverts (asking price); the last five read the same kinds of property under Zameen's rental sections (monthly rent in the same price field). Each section has its own result count, so houses and flats in one city are two sections, not one filtered view.

## `maxResults` (type: `integer`):

Stop after this many listings across the whole run, not per city. One page carries 25 listings, so a run ends on the first page that crosses your limit. Zameen puts no ceiling of its own on a search — Lahore Homes shows 27,000+ matches — so this budget, not the site, is what stops the run.

## `keywords` (type: `string`):

Optional free-text filter Zameen applies server-side before the page is served — 'swimming pool', 'corner plot', 'advance booking'. Zameen matches it against the advert text, and the count shown on the page reflects it. Leave empty for everything.

## `includeDetails` (type: `boolean`):

Open each listing's own page to add the untruncated advert text, the complete photo set, the feature list, GPS coordinates, the floor area in square metres, the land area in square feet and the agency marketing the listing. Costs one extra request per listing and bills the Property Detail event on top of the listing row.

## `minPrice` (type: `integer`):

Skip listings priced below this. 0 means no lower bound. For a rental section this is the monthly rent. Zameen applies this server-side, so the count you see on the page already reflects it; a promoted 'super hot' card can still appear outside your band, and that card is filtered out locally and not saved.

## `maxPrice` (type: `integer`):

Skip listings priced above this. 0 means no upper bound. Pairing it with a minimum is the usual way to carve a big city into bands. Zameen applies this server-side; out-of-band promoted cards are still removed before anything is saved.

## `minBeds` (type: `integer`):

Keep only listings with at least this many bedrooms. 0 means no minimum. Plots and commercial listings carry no bedroom count and are kept whatever you set here. Applied after the page is read — Zameen ignores bed parameters in its addresses.

## `minBaths` (type: `integer`):

Keep only listings with at least this many bathrooms. 0 means no minimum. Plots and commercial listings carry no bathroom count and are kept whatever you set here. Applied after the page is read.

## `searchUrls` (type: `array`):

Paste Zameen search addresses instead of filling the form — build the search on zameen.com, copy the address bar, and the section, city or society and filters in it are read straight off the URL, including society-level pages such as https://www.zameen.com/Homes/Lahore\_DHA\_Defence-9-1.html that the city picker above does not reach. A page number in the address is ignored; the run starts at page one and pages forward on its own.

## `listingUrls` (type: `array`):

Used by the Property Detail operation: Zameen advert addresses to expand, e.g. https://www.zameen.com/Property/dha-phase-7-house-53557411-1632-1.html. A bare listing number such as 53557411 works too — Zameen redirects it to the full advert.

## Actor input object example

```json
{
  "operation": "search",
  "locations": [
    "Lahore"
  ],
  "category": "homes",
  "maxResults": 100,
  "includeDetails": false,
  "minPrice": 0,
  "maxPrice": 0,
  "minBeds": 0,
  "minBaths": 0,
  "searchUrls": [],
  "listingUrls": []
}
```

# Actor output Schema

## `zameenComListings` (type: `string`):

Every listing this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "operation": "search",
    "locations": [
        "Lahore"
    ],
    "category": "homes",
    "maxResults": 100,
    "includeDetails": false,
    "minPrice": 0,
    "maxPrice": 0,
    "minBeds": 0,
    "minBaths": 0,
    "searchUrls": [],
    "listingUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/zameen-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "operation": "search",
    "locations": ["Lahore"],
    "category": "homes",
    "maxResults": 100,
    "includeDetails": False,
    "minPrice": 0,
    "maxPrice": 0,
    "minBeds": 0,
    "minBaths": 0,
    "searchUrls": [],
    "listingUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/zameen-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "operation": "search",
  "locations": [
    "Lahore"
  ],
  "category": "homes",
  "maxResults": 100,
  "includeDetails": false,
  "minPrice": 0,
  "maxPrice": 0,
  "minBeds": 0,
  "minBaths": 0,
  "searchUrls": [],
  "listingUrls": []
}' |
apify call sian.agency/zameen-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/zameen-property-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hkZpbtAEROT8bwrSl/builds/iogdDNoNbFRSjqWbz/openapi.json
