# Squareyards Property Search Scraper (`alexist/squareyards-property-search-scraper`) Actor

Scrape property listings from Squareyards.com with complete details—addresses, room counts, floor sizes, images, and more. Extract up to 200 properties per page in seconds. Perfect for real estate professionals, investors, and market researchers analyzing India's property market.

- **URL**: https://apify.com/alexist/squareyards-property-search-scraper.md
- **Developed by:** [Alex](https://apify.com/alexist) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Squareyards Property Scraper: Extract Real Estate Listings Instantly

***

### Understanding Squareyards.com

Squareyards.com is India's leading online real estate platform, hosting hundreds of thousands of property listings across cities, neighborhoods, and price ranges. Whether you're looking for apartments, villas, or commercial spaces, Squareyards aggregates supply-side data with search sophistication. Manually reviewing listings page-by-page is inefficient—the **Squareyards Property Scraper** automates collection, delivering structured property data ready for analysis, investment decisions, or market research.

***

### Overview

The **Squareyards Property Scraper** extracts comprehensive property listings from Squareyards search result pages, converting each listing into a structured record with 14 key fields. It is ideal for:

- **Real estate investors** building property databases across regions
- **Market researchers** analyzing pricing trends and supply patterns
- **Aggregator platforms** feeding property data into custom portals
- **Real estate agents** tracking competitor listings and local inventory
- **Data analysts** studying housing supply and demand dynamics

Key advantages include high-volume extraction (up to 200 items per URL), fault tolerance via `ignore_url_failures`, and detailed property attributes covering location, size, and media assets.

***

### Input Format

The scraper accepts a JSON configuration object with three main parameters:

```json
{
  "urls": [
    "https://www.squareyards.com/sale/property-for-sale-in-delhi?page=2"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

| Field | Type | Description |
|---|---|---|
| `urls` | Array of strings | Squareyards property list page URLs. Can be sale, rent, or commercial listings. One URL per entry. |
| `max_items_per_url` | Integer | Maximum properties to extract per URL (default: 100, max: 200). Higher values require longer processing time. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues even if some URLs fail. If `false`, a single URL failure stops the entire run. |

> **Tip:** Use pagination URLs (e.g., `?page=2`, `?page=3`) to scrape multiple result pages sequentially.

***

### Output Format

**Example output snippet:**

```json
{
  "address": {
    "@type": "PostalAddress",
    "address_country": "India",
    "street_address": "Safdarjung Enclave",
    "address_locality": "Delhi"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 28.564618,
    "longitude": 77.194535
  },
  "name": "6 BHK Builder Floor for Sale in Safdarjung Enclave, Delhi",
  "description": "Safderjung Encalve A1 Block New Builder Floor Basement + Ground floor 3BHK 215 Sq.Ysrds Lift , STILT,3 Car Parking for sale Dimand Rs 8.5 Cr. Negotiable ",
  "number_of_rooms": "6",
  "number_of_bathrooms_total": "4",
  "floor_size": "430 sq.ft.",
  "floorlevel": null,
  "url": "https://www.squareyards.com/resale-6-bhk-servant-room-basement-430-sq-ft-builder-floor-in-safdarjung-enclave/10446440",
  "image": "https://img.squareyards.com/secondaryPortal/optImages/IN_639196071964018772-1407260626362636.jpg",
  "sku": null,
  "brand": null,
  "mpn": null,
  "offers": null,
  "from_url": "https://www.squareyards.com/sale/property-for-sale-in-delhi"
}
```

Each scraped property returns a detailed record with 14 fields:

#### Location & Identification

| Field | Meaning |
|---|---|
| `Address` | Full postal address of the property |
| `Geo` | Geographic coordinates (latitude/longitude) or location metadata |
| `Name` | Property name or title as listed on Squareyards |
| `URL` | Direct link to the property detail page on Squareyards |

#### Property Features

| Field | Meaning |
|---|---|
| `Number of Rooms` | Bedroom count (e.g., 1 BHK, 3 BHK) |
| `Number of Bathrooms Total` | Total bathroom count in the property |
| `Floor Size` | Carpet/built-up area in square feet or square meters |
| `Floor Level` | Which floor the unit is on (e.g., Ground, 5th, Penthouse) |

#### Description & Content

| Field | Meaning |
|---|---|
| `Description` | Full property description including amenities, age, condition, and highlights |
| `Image` | Primary property image URL |

#### Product Metadata

| Field | Meaning |
|---|---|
| `SKU` | Stock-keeping unit or unique property identifier used in data feeds |
| `Brand` | Developer/builder name |
| `MPN` | Manufacturer/project number for structured reference |

#### Commercial Terms

| Field | Meaning |
|---|---|
| `Offers` | Active promotions, price reductions, or special terms |

***

### How to Use

1. **Identify target URLs** — Navigate to Squareyards.com, filter by city/type/price range, and copy the search results URL. Example: `https://www.squareyards.com/sale/property-for-sale-in-delhi?page=1`

2. **Configure input** — Paste URLs into the `urls` array. Set `max_items_per_url` (recommended: 100–200 for balanced speed/volume).

3. **Enable error handling** — Set `ignore_url_failures: true` for large-scale runs to skip broken or relocated links.

4. **Execute** — Start the scraper and monitor progress in real time.

5. **Download results** — Export as JSON, CSV, or Excel for analysis in spreadsheets, databases, or business intelligence tools.

**Best practices:**

- Test with a single URL before running bulk operations
- Use specific filters (city, price range, property type) to refine results
- Re-run periodically to capture new listings and price updates

***

### Use Cases & Business Value

- **Investment analysis:** Build a personal database of properties in target markets to track price trends
- **Competitive intelligence:** Monitor what competitors or similar developers are listing
- **Portfolio management:** Maintain an up-to-date inventory of properties for your agency or fund
- **Market research:** Analyze supply, pricing patterns, and demand hotspots across Delhi, Mumbai, or other cities
- **Lead generation:** Extract contact details and listings for outreach campaigns

The Squareyards Property Scraper replaces hours of manual browsing with automated, structured data that feeds directly into investment models, CRM systems, or custom dashboards.

***

### Conclusion

The **Squareyards Property Scraper** is a powerful tool for anyone working with India's real estate market. Whether you're an investor, researcher, or platform builder, this scraper delivers clean, detailed property records at scale. Extract hundreds of listings in minutes and gain the data advantage in competitive property markets.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.squareyards.com/sale/property-for-sale-in-delhi?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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 = {
    "urls": [
        "https://www.squareyards.com/sale/property-for-sale-in-delhi?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/squareyards-property-search-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 = {
    "urls": ["https://www.squareyards.com/sale/property-for-sale-in-delhi?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/squareyards-property-search-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 '{
  "urls": [
    "https://www.squareyards.com/sale/property-for-sale-in-delhi?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call alexist/squareyards-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alexist/squareyards-property-search-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/H2JHKXcQ2dJuZYBsU/builds/RgHL1xdwWBz6GeY6q/openapi.json
