# Properstar.com Real Estate Agents Scraper (`agenscrape/properstar-com-real-estate-agents-scraper`) Actor

Scrapes real estate agent profiles from Properstar.com with contact details, agency info, and listings count.

- **URL**: https://apify.com/agenscrape/properstar-com-real-estate-agents-scraper.md
- **Developed by:** [Agenscrape](https://apify.com/agenscrape) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 17 total users, 0 monthly users, 0.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Properstar Real Estate Agents Scraper

Extract real estate agent profiles from Properstar.com via API. Get comprehensive agent data including emails, phone numbers, social media links, agency information, and more.

### Features

- Scrape real estate agent profiles by country (50+ countries supported)
- Extract full contact information (email, phone)
- Get social media links (LinkedIn, Instagram, Facebook, Website)
- Retrieve agency details and job titles
- Get agent biographies and spoken languages
- Pagination support with offset parameter
- Fast API-based extraction

### Output Data

Each agent record includes:

| Field | Type | Description |
|-------|------|-------------|
| id | String | Agent's unique identifier |
| status | String | Registration status |
| name | String | Full name of the agent |
| email | String | Contact email address |
| phone | String | Contact phone number |
| jobTitle | String | Agent's job title |
| bio | String | Agent's biography (English or primary language) |
| biographies | Array | All biographies in different languages |
| avatar | String | Profile image URL |
| slug | String | URL slug for agent profile |
| profileUrl | String | Direct link to agent's profile |
| agency | String | Agency name |
| agencyAccountId | Number | Agency account ID |
| isAgencyAgent | Boolean | Whether user is an agency agent |
| mainLanguage | String | Primary language |
| spokenLanguages | Array | All languages spoken |
| regionalLanguage | String | Regional language setting |
| website | String | Agent's website URL |
| linkedin | String | LinkedIn profile URL |
| instagram | String | Instagram profile URL |
| facebook | String | Facebook profile URL |
| twitter | String | Twitter profile URL |
| youtube | String | YouTube channel URL |
| whatsapp | String | WhatsApp contact |
| tiktok | String | TikTok profile URL |
| listingsInArea | Number | Number of listings in search area |
| profileCompleted | Boolean | Whether profile is complete |
| registrationType | String | How the agent registered (Social, etc.) |
| isArchived | Boolean | Whether profile is archived |
| isDeleted | Boolean | Whether profile is deleted |
| updateDate | String | Last profile update date |
| originalId | String | Original ID from source system |
| searchLocation | String | Location used for search |

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| location | String | united-states | Country to scrape agents from |
| maxResults | Integer | 100 | Maximum number of agents to scrape |
| startFrom | Integer | 0 | Skip first N agents (offset for pagination) |

#### Available Countries

**North America:**

- United States, Canada, Mexico

**Europe:**

- Albania, Andorra, Austria, Belarus, Belgium, Bosnia and Herzegovina
- Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia
- Finland, France, Germany, Gibraltar, Greece, Hungary
- Iceland, Ireland, Italy, Latvia, Liechtenstein, Lithuania
- Luxembourg, Macedonia (FYROM), Malta, Moldova, Monaco, Montenegro
- Netherlands, Norway, Poland, Portugal, Romania, Russia
- San Marino, Serbia, Slovakia, Slovenia, Spain, Sweden
- Switzerland, Ukraine, United Kingdom, Vatican City

**Other:**

- Australia, Brazil

### Example Output

```json
{
    "id": "1356066",
    "status": "Registered",
    "name": "Marbel Lugo",
    "email": "marbel.lugo@gmail.com",
    "phone": "+18099864112",
    "jobTitle": "Broker República Dominicana",
    "bio": "Hi I'm Marbel Lugo, with more than 20 years of experience in the Real Estate sector...",
    "biographies": [
        {"language": "en", "text": "Hi I'm Marbel Lugo, with more than 20 years of experience..."},
        {"language": "es", "text": "Hola soy Marbel Lugo, con más de 20 años de experiencia..."}
    ],
    "avatar": "https://res.listglobally.com/users/1356066/photo.jpg",
    "slug": "marbel-lugo1",
    "profileUrl": "https://www.properstar.com/real-estate-agent/marbel-lugo1",
    "agency": "Dominican Properties",
    "agencyAccountId": 6145220,
    "isAgencyAgent": true,
    "mainLanguage": "en",
    "spokenLanguages": ["es"],
    "regionalLanguage": "en",
    "website": "https://dominicanproperties.do/agente/miriam-lugo",
    "linkedin": "https://www.linkedin.com/in/marbel-lugo-82731920/",
    "instagram": "https://instagram.com/marbellugo",
    "facebook": "https://www.facebook.com/dominicanproperties.do",
    "twitter": null,
    "youtube": null,
    "whatsapp": null,
    "tiktok": null,
    "listingsInArea": 4,
    "profileCompleted": true,
    "registrationType": "Social",
    "isArchived": false,
    "isDeleted": false,
    "updateDate": "2025-11-27T11:39:09.88",
    "originalId": "user-marbel.lugo@gmail.com",
    "searchLocation": "united-states"
}
```

### Use Cases

- Build a database of real estate agents by region
- Lead generation for real estate services
- Market research and competitive analysis
- Connect with agents for property investments
- Export agent contacts for CRM systems

### Pagination Example

To scrape agents in batches:

**First batch (agents 1-100):**

```json
{
    "location": "united-states",
    "maxResults": 100,
    "startFrom": 0
}
```

**Second batch (agents 101-200):**

```json
{
    "location": "united-states",
    "maxResults": 100,
    "startFrom": 100
}
```

### Performance

- Fast API-based extraction (no browser needed)
- Batch processing of up to 100 agents per request
- Automatic retry on failures
- Handles pagination automatically

### Limitations

- Free users are limited to 50 results per run
- Upgrade to a paid plan for unlimited access

# Actor input Schema

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

Country to scrape agents from.

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

Maximum number of agents to scrape.

## `startFrom` (type: `integer`):

Skip the first N agents and start scraping from this position. Useful for pagination or resuming scrapes.

## Actor input object example

```json
{
  "location": "united-states",
  "maxResults": 50,
  "startFrom": 0
}
```

# 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": "united-states",
    "maxResults": 50,
    "startFrom": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("agenscrape/properstar-com-real-estate-agents-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": "united-states",
    "maxResults": 50,
    "startFrom": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("agenscrape/properstar-com-real-estate-agents-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": "united-states",
  "maxResults": 50,
  "startFrom": 0
}' |
apify call agenscrape/properstar-com-real-estate-agents-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=agenscrape/properstar-com-real-estate-agents-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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