# Nigeria Property Centre Scraper - Real Estate Listings (`igolaizola/nigeriapropertycentre-scraper`) Actor

Search nigeriapropertycentre.com for Nigerian sale, rent, short-let and joint-venture listings. Filter by location, property type, price, bedrooms and keywords, then export JSON, CSV or Excel data for your API, MCP, analytics and automation workflows supporting market research and lead generation

- **URL**: https://apify.com/igolaizola/nigeriapropertycentre-scraper.md
- **Developed by:** [Iñigo Garcia Olaizola](https://apify.com/igolaizola) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 results

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Nigeria Property Centre Scraper — Nigerian Real Estate Listings

Nigeria Property Centre Scraper collects public Nigerian property listings for sale, rent, short-let, and joint-venture opportunities. Search by city, state, or neighborhood, then download structured property data for market research, valuation, investment analysis, alerts, and lead generation.

### 🤖 What does this actor do?

This actor turns Nigeria Property Centre searches into a clean, reusable dataset. Each result can include the listing title, asking price, location, property features, photos, advertiser, contact phones, and public listing link.

Use the dataset to compare neighborhoods, monitor available inventory, discover agents and developments, or feed a property research workflow. Results can be downloaded as JSON, CSV, or Excel files, and can also be consumed through the Apify API or an MCP-powered workflow.

### 💡 Why use it?

- Search four common property purposes from one friendly input: buy, rent, short-let, or joint venture.
- Narrow results by location, property type, subtype, price, bedrooms, furnishing, amenities, age, reference, sort order, and keywords.
- Keep useful media and contact information together with each listing.
- Optionally collect richer information from each public property page when a listing-level review is needed.
- Start with a small sample, then scale to a larger market dataset when your research is ready.

### 🧠 Choose a search mode

#### 🏠 Buy

Find properties advertised for sale, including homes, apartments, land, and commercial opportunities.

#### 🏢 Rent

Find longer-term rental listings and filter them by budget, bedrooms, furnishing, servicing, and location.

#### 🛏️ Short-let

Find short-stay accommodation and use keywords such as `pool`, `serviced`, or `furnished` to refine the search.

#### 🤝 Joint venture

Find listings offered as joint-venture opportunities. This is useful for land, development, and partnership research.

### 🚀 How to use it

1. Open the actor in Apify Console and click **Start**.
2. Choose a listing purpose and enter a city, state, neighborhood, or area. Lagos is prefilled so the default run has a practical starting search.
3. Add filters such as property type, budget, bedrooms, or keywords.
4. Choose whether to fetch richer property-page details.
5. Open the dataset after the run and download it as JSON, CSV, or Excel, or connect to it through the Apify API or MCP.

For an API run, send an input like this to the actor:

```json
{
  "maxItems": 50,
  "operation": "buy",
  "location": "Lagos",
  "propertyType": "apartment",
  "minBedrooms": 2,
  "maxPrice": 120000000
}
```

For furnished rentals in Abuja:

```json
{
  "maxItems": 40,
  "operation": "rent",
  "location": "Abuja",
  "propertyType": "apartment",
  "furnishing": "furnished",
  "minBedrooms": 2,
  "maxPrice": 8000000,
  "addedWithinDays": "30",
  "keywords": "serviced, pool"
}
```

For land and development opportunities in Lagos:

```json
{
  "maxItems": 0,
  "operation": "joint-venture",
  "location": "Lagos",
  "propertyTypes": [
    "land"
  ],
  "propertySubtypes": [
    "residential-land"
  ],
  "keywords": "development",
  "sort": "newest"
}
```

### 💳 Pricing

You can test the actor with the Apify Free plan and its included monthly credits. Larger searches and optional detail enrichment use more platform resources, so begin with a modest `maxItems` value and scale up when the output meets your needs. Check your current Apify plan for the latest usage and credit information.

### 📝 Input parameters

| Input | Type | Default | Description |
| --- | --- | --- | --- |
| `maxItems` | Number | `50` | Maximum number of listings to save. Set to `0` to collect all available pages. |
| `fetchDetails` | Yes/No | `false` | When enabled, collect additional information from each public property page. This can increase run time and usage. |
| `operation` | Choice | `buy` | Listing purpose: `buy` (For sale), `rent` (For rent), `short-let` (Short stay), or `joint-venture` (Joint venture). |
| `location` | Text | `Lagos` | City, state, neighborhood, or area to search. |
| `propertyType` | Choice | Any type | Single property category: Any type, House, Apartment, Land, or Commercial. Leave it blank to search all types. |
| `propertyTypes` | List | Empty | One or more property categories such as `apartment`, `house`, `land`, or `commercial`. Use this when you want several categories. |
| `propertySubtypes` | List | Empty | More specific styles or uses, such as `detached-duplex`, `block-of-flats`, `residential-land`, `warehouse`, or `office-space`. |
| `minPrice` | Number | `0` | Minimum asking price in Nigerian naira. `0` leaves the lower bound open. |
| `maxPrice` | Number | `0` | Maximum asking price in Nigerian naira. `0` leaves the upper bound open. |
| `minBedrooms` | Number | `0` | Minimum number of bedrooms. |
| `maxBedrooms` | Number | `0` | Maximum number of bedrooms. |
| `furnishing` | Choice | Any | Furnishing preference: Any, Furnished, or Unfurnished. |
| `serviced` | Yes/No | `false` | When enabled, return serviced properties where the source identifies them as serviced. |
| `shared` | Yes/No | `false` | When enabled, return shared properties where the source identifies them as shared. |
| `addedWithinDays` | Choice | Anytime | Listing age: Anytime, Last 24 hours, Last 3 days, Last 7 days, Last 14 days, or Last 30 days. |
| `reference` | Number | `0` | Optional listing reference number for a focused lookup. `0` leaves this filter open. |
| `sort` | Choice | Default | Result order: Default, Most recent, Highest price, Lowest price, or Verification status. |
| `keywords` | Text | Empty | Words or phrases such as `furnished`, `pool`, `BQ`, `gym`, or a neighborhood feature. |

### 📊 What data will I get?

Each dataset item represents one listing. The Apify overview is a compact summary view; API and dataset clients still receive every available actor field, including fields not selected for the overview table. Fields are included when the public listing provides the corresponding information.

Example result with the available listing and detail fields:

```json
{
  "id": "3682913",
  "title": "2-Bedroom Apartment with En-Suite Bathrooms",
  "description": "Well-finished apartment with modern fittings and shared leisure facilities.",
  "price": "₦146,000,000",
  "propertyType": "Flat / Apartment",
  "location": "Ikate, Lekki, Lagos",
  "area": "220 m²",
  "bedrooms": 2,
  "bathrooms": 2,
  "toilets": 3,
  "parking": 2,
  "image": "https://images.nigeriapropertycentre.com/properties/images/3682913/06aad025d5ab36-2-bedroom-apartment-with-en-suite-bathrooms-for-sale-ikate-lekki-lagos.webp",
  "url": "https://nigeriapropertycentre.com/for-sale/flats-apartments/lagos/lekki/ikate/3682913-2-bedroom-apartment-with-en-suite-bathrooms",
  "images": [
    "https://images.nigeriapropertycentre.com/properties/images/3682913/06aad025d5ab36-2-bedroom-apartment-with-en-suite-bathrooms-for-sale-ikate-lekki-lagos.webp"
  ],
  "photoCount": 20,
  "videoAvailable": false,
  "listingTier": "Premium",
  "verifiedAdvertiser": true,
  "agent": "Anipel Realty and Homes LTD",
  "phones": [
    "+2348030897019",
    "+2348125830531"
  ],
  "_details": {
    "amenities": [
      "Fitted kitchen",
      "Swimming pool"
    ],
    "datePosted": "2026-09-18T10:19:34+01:00",
    "reference": "3682913",
    "listingStatus": "Flat / apartment for sale",
    "verificationStatus": "Verified agent",
    "agentMemberSince": "2019"
  }
}
```

### 🧭 Useful search recipes

#### 🌆 Compare apartments for sale

Choose **For sale**, enter a city or neighborhood, choose **Apartment**, set a bedroom or price range, and sort by **Most recent**.

#### 🏡 Find family rentals

Choose **For rent**, use `minBedrooms` and `maxBedrooms`, select **Furnished** or **Unfurnished**, and add a keyword such as `serviced` or `parking`.

#### 🛏️ Review short-let supply

Choose **Short stay**, enter the target area, then use keywords such as `pool`, `gym`, or `fully furnished`.

#### 🤝 Research development opportunities

Choose **Joint venture**, search by state or area, and use `propertySubtypes` or keywords to focus on land and development opportunities.

### ⚙️ Tips for better results

- Start with a precise location such as `Victoria Island`, `Ikeja GRA`, or `Wuse 2` instead of a whole country.
- Use the operation that matches the opportunity: sale, long-term rent, short stay, or joint venture.
- Leave price and bedroom bounds at `0` when you want an open search.
- Use `propertyTypes` for several categories and `propertySubtypes` for more specific styles or commercial uses.
- Keep `fetchDetails` off for a fast market scan; enable it when you need richer information per listing.
- Use `maxItems: 0` when you need all available pages and have enough time and platform credits for a broad run.

### ⚖️ Legal and ethical use

Use this actor only for lawful purposes. Respect Nigeria Property Centre’s terms, robots guidance, intellectual-property rights, privacy obligations, and applicable data-protection laws. Collect only information made publicly available, avoid unsolicited contact, apply reasonable collection limits, and attribute the source where appropriate. This actor is an independent community tool and is not affiliated with Nigeria Property Centre.

### ❓ FAQ

#### Does `maxItems: 0` collect every listing?

It asks the actor to continue through all available result pages until the search ends. Very broad searches may take longer and use more platform resources.

#### Why would I enable `fetchDetails`?

Listing results provide the main property information quickly. Detail enrichment can add more page-level information, but it takes longer and may use more usage credits.

#### Can I search all four listing purposes?

Yes. Use `buy`, `rent`, `short-let`, or `joint-venture` in the **Listing purpose** field.

#### Can I export the results?

Yes. Download the dataset as JSON, CSV, or Excel, or connect it to another workflow through the Apify API or MCP.

#### Why are some values missing?

Listings differ in completeness. Optional fields are left out when the source listing does not publish the information.

### 🛟 Support

For questions, suggestions, or actor issues, contact the publisher at [igolaizola.com/#contact](https://igolaizola.com/#contact).

### 🔎 SEO keywords

Nigeria Property Centre scraper, Nigerian real estate listings, property data API alternative, Apify actor, real estate lead generation, Nigerian property data, rental listings, sale listings, short-let listings, and joint-venture property research.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of listings to save. 0 means all available pages.

## `fetchDetails` (type: `boolean`):

Fetch the full property page for each result and add the extra information under \_details. This makes one additional request per listing and may increase run time.

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

Whether to find properties for purchase, long-term rent, short stay, or joint venture.

## `location` (type: `string`):

City, state, neighborhood, or area to search. Lagos is prefilled so the default run returns listings.

## `propertyType` (type: `string`):

Optional single category of property to find. Use Property types for multiple categories.

## `propertyTypes` (type: `array`):

Optional categories to include. Add one or more values: apartment, house, land, commercial.

## `propertySubtypes` (type: `array`):

Optional styles or commercial uses. Add friendly values such as detached-duplex, block-of-flats, residential-land, warehouse, or office-space.

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

Lower price bound for the listing query.

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

Upper price bound for the listing query.

## `minBedrooms` (type: `integer`):

Lower bedroom-count bound for the listing query.

## `maxBedrooms` (type: `integer`):

Upper bedroom-count bound for the listing query.

## `furnishing` (type: `string`):

Optional furnishing preference.

## `serviced` (type: `boolean`):

Only return serviced properties.

## `shared` (type: `boolean`):

Only return shared properties.

## `addedWithinDays` (type: `string`):

Only include listings added within the selected number of days.

## `reference` (type: `integer`):

Optional listing reference number.

## `sort` (type: `string`):

How to order the listings.

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

Optional words or phrases to look for, such as furnished, pool, or gym.

## Actor input object example

```json
{
  "maxItems": 50,
  "fetchDetails": false,
  "operation": "buy",
  "location": "Lagos",
  "propertyType": "",
  "minPrice": 0,
  "maxPrice": 0,
  "minBedrooms": 0,
  "maxBedrooms": 0,
  "furnishing": "",
  "serviced": false,
  "shared": false,
  "addedWithinDays": "0",
  "reference": 0,
  "sort": ""
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "location": "Lagos"
};

// Run the Actor and wait for it to finish
const run = await client.actor("igolaizola/nigeriapropertycentre-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 = { "location": "Lagos" }

# Run the Actor and wait for it to finish
run = client.actor("igolaizola/nigeriapropertycentre-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 '{
  "location": "Lagos"
}' |
apify call igolaizola/nigeriapropertycentre-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,igolaizola/nigeriapropertycentre-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/oL2Isvamk9d8lC7Fg/builds/witb77f14O3RA2R0j/openapi.json
