# Homes.com Agents Scraper (`fatihtahta/homes-com-agent-scraper`) Actor

Extract Homes.com agent profiles at scale with contact data, brokerage details, sales metrics, market coverage, profile media, and performance signals. Built for enterprise-grade real estate recruiting, lead enrichment, agent intelligence, and automated analytics pipelines.

- **URL**: https://apify.com/fatihtahta/homes-com-agent-scraper.md
- **Developed by:** [Fatih Tahta](https://apify.com/fatihtahta) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Homes.com Scraper

**Slug:** `fatihtahta/homes-com-agent-scraper`

### Overview

Homes.com Agents Scraper collects public real estate agent records, including agent identity, profile links, brokerage names, phone numbers, location context, media signals, sales metrics, and search-result context when available. The actor is built for agent discovery from [Homes.com real estate agents](https://www.homes.com/real-estate-agents/), where public profile and market data can support research, enrichment, and operational reporting. It converts agent search results into structured JSON records that are easier to automate, compare, and load into downstream systems. Runs can be repeated with the same inputs to support consistent data acquisition workflows over time. The actor is designed for dependable recurring collection without making assumptions about completeness, uptime, or field availability beyond what is publicly visible at run time.

### Why Use This Actor

- **Market research and analytics:** build structured extraction workflows for agent coverage, sales signals, market density, and location-based comparisons.
- **Product and content teams:** normalize public agent profiles into datasets that can support directories, marketplace experiences, content operations, and internal tooling.
- **Developers and data engineering teams:** feed predictable JSON records into downstream systems, ETL jobs, search indexes, and enrichment pipelines.
- **Lead generation and enrichment teams:** create targeted public prospect lists with profile URLs, brokerage names, phone numbers, location context, and qualification signals.
- **Monitoring and competitive tracking teams:** schedule repeatable collection for market intelligence, operational reporting, and change monitoring across selected geographies.

### Common Use Cases

- **Market intelligence:** monitor agent availability, sales volume, profile signals, location coverage, and market-level result counts.
- **Lead generation:** build targeted prospect lists from public agent profiles in specific cities, ZIP codes, neighborhoods, or broader markets.
- **Competitive monitoring:** track public agent presence, brokerage coverage, and ranking changes across selected locations or performance filters.
- **Directory building:** populate internal databases with normalized public agent records for search, review, or operational workflows.
- **Data enrichment:** add current public profile attributes, contact fields, brokerage names, and sales context to existing CRM, BI, or analytics datasets.
- **Recurring reporting:** schedule periodic runs to power dashboards, alerts, geographic coverage reports, and trend analysis.

### Quick Start

1. Enter a `location` such as a city, state, ZIP code, neighborhood, or market name.
2. Choose optional filters such as `home_type`, price range, sales range, experience, specialization, or video availability when you need a narrower dataset.
3. Set a small `limit` for the first validation run.
4. Run the actor in Apify Console.
5. Inspect the first dataset records to confirm that the fields match your workflow.
6. Increase the `limit`, adjust filters, or schedule recurring runs once the output is verified.

### Input Parameters

The actor requires a `location`; all other fields are optional controls for filtering, sorting, and limiting saved agent records.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `location` | string | Required search location. Use a city, state, ZIP code, neighborhood, or market name. | – |
| `home_type` | array of strings | Property focus associated with the agents to collect. Allowed values: `house`, `condo_co_op`, `manufactured`, `townhouse`, `lot_land`, `other`. | – |
| `min_price` | integer | Minimum activity price in USD. Only include agents whose relevant activity starts at or above this amount. | – |
| `max_price` | integer | Maximum activity price in USD. Only include agents whose relevant activity is at or below this amount. | – |
| `sort_by` | string | Result ordering. Allowed values: `recommended`, `sales_in_area_high_to_low`, `total_sales_high_to_low`, `current_listings_high_to_low`, `experience_high_to_low`. | `recommended` |
| `min_total_sales` | integer | Minimum total sales count for matching agents. | – |
| `max_total_sales` | integer | Maximum total sales count for matching agents. | – |
| `agent_with_video` | boolean | When `true`, collect only agents with a video signal. | `false` |
| `min_experience_year` | string | Minimum real estate experience threshold. Allowed values: `2+`, `5+`, `10+`. | – |
| `specialization` | string | Agent activity focus. Allowed values: `buyers_agent`, `sellers_agent`, `both`. | – |
| `limit` | integer | Maximum number of agent records to save. Minimum value: `1`. | – |

### Choosing Inputs

Start with the most specific `location` that fits your workflow. A city, ZIP code, or neighborhood is useful for focused collection, while a broader market can improve discovery when you are still exploring coverage.

Use filters when you need a qualified shortlist. Narrower filters such as `home_type`, `min_price`, `max_price`, `min_total_sales`, `max_total_sales`, `agent_with_video`, `min_experience_year`, and `specialization` produce more targeted datasets, while leaving optional filters empty keeps discovery broader.

Use `sort_by` to control which matching agents are prioritized before records are saved. Start with a small `limit` for validation, then increase it after confirming that the dataset shape and coverage match your needs.

### Example Inputs

#### Broad Discovery Run

```json
{
  "location": "Los Angeles, CA",
  "sort_by": "recommended",
  "limit": 25
}
````

#### Location And Property Focus

```json
{
  "location": "Austin, TX",
  "home_type": ["house", "townhouse"],
  "min_price": 400000,
  "max_price": 1000000,
  "sort_by": "sales_in_area_high_to_low",
  "limit": 50
}
```

#### Performance-Qualified Agent List

```json
{
  "location": "Miami, FL",
  "min_total_sales": 75,
  "max_total_sales": 500,
  "agent_with_video": true,
  "min_experience_year": "5+",
  "specialization": "sellers_agent",
  "limit": 40
}
```

### Output

#### Output Destination

The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs with minimal post-processing.

This README documents the `agent` record shape based on the provided example output. When multiple entity types or record shapes exist, this README documents each shape separately based on the provided Example Output.

#### Record Envelope And Stable Identifiers

Each dataset item represents one public Homes.com agent result. The top-level record contains agent identity fields, profile and contact fields, a `media` object, a `performance` object, and a `source_context` object.

Recommended idempotency key: `agent_id`. If your workflow needs additional protection across repeated runs, use a composite key of `agent_id` and `profile_url`.

Use the recommended key for deduplication and upserts when syncing records into warehouses, CRMs, spreadsheets, or search indexes. Stable identifiers make records easier to merge, deduplicate, and sync across repeated runs.

The `source_context.fingerprint` field can be used as a run-context fingerprint, while `source_context.source_url` records the source URL associated with the collection context.

#### Examples

##### Example: agent (`type = "agent"`)

```json
{
  "agent_id": "sample-agent-001",
  "profile_url": "https://www.homes.com/real-estate-agents/sample-agent/sample-agent-001/",
  "name": "Sample Agent",
  "company_name": "Example Realty Group",
  "phone": "(555) 010-1234",
  "location": "Los Angeles, CA",
  "media": {
    "image_url": "https://imagescdn.homes.com/i2/sample-agent-photo/117/sample-agent.jpg?p=1",
    "has_video": false
  },
  "performance": {
    "total_sales": 116,
    "total_sales_label": "116 Total Sales",
    "sales_in_area": 1,
    "sales_in_area_label": "1 in Los Angeles",
    "sales_in_area_location": "Los Angeles",
    "price": "$638,000",
    "price_range": "$638,000",
    "price_range_label": "$638,000 Price",
    "responds_quickly": true
  },
  "source_context": {
    "seed_id": "sample-seed-001",
    "seed_type": "search",
    "seed_value": "Los Angeles, CA",
    "page_index": 1,
    "fingerprint": "sample-fingerprint-001",
    "source_url": "https://www.homes.com/services/agentsearch/",
    "search_response": {
      "result_count": 624,
      "available_count": 2447,
      "result_count_label": "2,447 Real Estate Agents serving Los Angeles, CA",
      "page_title": "Los Angeles, CA Real Estate Agents - Homes.com",
      "meta_description": "Find the best real estate agents, brokers and realtors in Los Angeles, CA. Find top Los Angeles agents by filtering by transaction volume, specialty & languages spoken.",
      "search_url": "https://www.homes.com/real-estate-agents/los-angeles-ca/?pma=1200000&pmi=500000&tsa=420&tsi=64",
      "canonical_path": "/real-estate-agents/los-angeles-ca/",
      "begin_page": 1
    }
  }
}
```

### Field Reference

#### Agent Record

**agent\_id** *(string, required)*: Stable Homes.com agent identifier shown in the agent profile URL.

**profile\_url** *(string, required)*: Public Homes.com agent profile URL.

**name** *(string, required)*: Agent display name.

**company\_name** *(string, optional)*: Brokerage, company, or office name shown with the agent.

**phone** *(string, optional)*: Public phone number shown for the agent.

**location** *(string, optional)*: Search or service location associated with the record.

**media.image\_url** *(string, optional)*: Public profile image URL when available.

**media.has\_video** *(boolean, optional)*: Indicates whether a video signal is shown for the agent.

**performance.total\_sales** *(integer, optional)*: Total sales count when available.

**performance.total\_sales\_label** *(string, optional)*: Display label for total sales.

**performance.sales\_in\_area** *(integer, optional)*: Sales count associated with the searched area.

**performance.sales\_in\_area\_label** *(string, optional)*: Display label for area-specific sales.

**performance.sales\_in\_area\_location** *(string, optional)*: Location used for the area-specific sales label.

**performance.price** *(string, optional)*: Public price or price-range signal shown for the agent.

**performance.price\_range** *(string, optional)*: Normalized price-range display value.

**performance.price\_range\_label** *(string, optional)*: Display label for the price or price range.

**performance.responds\_quickly** *(boolean, optional)*: Indicates whether a quick-response signal is shown.

**source\_context.seed\_id** *(string, optional)*: Identifier for the input context that produced the record.

**source\_context.seed\_type** *(string, optional)*: Input context type, such as `search`.

**source\_context.seed\_value** *(string, optional)*: Input value used for collection, such as the requested location.

**source\_context.page\_index** *(integer, optional)*: Result page index associated with the record.

**source\_context.fingerprint** *(string, optional)*: Context fingerprint useful for auditing and repeated-run comparisons.

**source\_context.source\_url** *(string, optional)*: Source URL associated with the collection context.

**source\_context.search\_response.result\_count** *(integer, optional)*: Number of results returned in the current response context.

**source\_context.search\_response.available\_count** *(integer, optional)*: Total available count reported for the search context.

**source\_context.search\_response.result\_count\_label** *(string, optional)*: Display label for the available result count.

**source\_context.search\_response.page\_title** *(string, optional)*: Public page title associated with the search context.

**source\_context.search\_response.meta\_description** *(string, optional)*: Public meta description associated with the search context.

**source\_context.search\_response.search\_url** *(string, optional)*: Public Homes.com search URL for the result context.

**source\_context.search\_response.canonical\_path** *(string, optional)*: Canonical public path associated with the search context.

**source\_context.search\_response.begin\_page** *(integer, optional)*: Starting page index reported for the search context.

### Data Quality, Guarantees, And Handling

- **Structured records:** results are normalized into predictable JSON objects for downstream use.
- **Best-effort extraction:** fields may vary by region, session, availability, and target-side UI experiments.
- **Optional fields:** null-check optional fields in downstream code, especially contact, media, performance, and source-context values.
- **Deduplication:** use `agent_id` as the strongest stable key available from the output, or combine `agent_id` with `profile_url` for stricter upsert logic.
- **Freshness:** results reflect the publicly available data at run time.
- **Repeated runs:** use the recommended idempotency key when syncing data into warehouses, CRMs, or search indexes.

### Tips For Best Results

- Start with a small `limit` to validate the output shape before scaling up.
- Use one `location` or market segment per run when you need cleaner segmentation.
- Leave optional filters empty when the goal is broad agent discovery.
- Add filters gradually to understand how each field changes coverage.
- Use `sort_by` to prioritize the records most relevant to your workflow.
- Schedule recurring runs for monitoring workflows instead of relying on manual one-off collection.
- Use `agent_id` for deduplication when storing results over time.

### How To Run On Apify

1. Open the Actor in Apify Console.
2. Configure the available input fields for the target location and filters.
3. Set the maximum number of outputs to collect with `limit`.
4. Click **Start** and wait for the run to finish.
5. Download results in JSON, CSV, Excel, or another supported format.

### Scheduling & Automation

#### Scheduling

**Automated Data Collection**

You can schedule runs to keep agent datasets fresh for reporting, enrichment, and monitoring workflows. Use a consistent input configuration when you need comparable results over time.

- Navigate to **Schedules** in Apify Console
- Create a new schedule, such as daily, weekly, or custom cron
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing

#### Integration Options

- **CRM enrichment:** sync public agent profile, brokerage, phone, location, and sales signals into account or lead records.
- **Google Sheets or Airtable:** review qualified agent lists, assign follow-up, and maintain lightweight market research tables.
- **Webhooks:** trigger validation, notification, or ingestion workflows after each completed run.
- **Data enrichment pipelines:** join Homes.com agent attributes with existing internal datasets using stable identifiers.
- **BI dashboards:** monitor agent coverage, sales signals, and geographic distribution over time.
- **Zapier or Make:** route finished datasets into no-code workflows for review, notifications, or handoff.

### Export Formats And Downstream Use

Apify datasets can be exported or consumed by downstream systems for operational and analytical workflows.

- **JSON:** for APIs, applications, and data pipelines
- **CSV or Excel:** for spreadsheet workflows and manual review
- **API access:** for automated ingestion into internal systems
- **BI and warehouses:** for reporting, dashboards, and historical analysis

### Performance

Estimated run times:

- **Small runs (< 1,000 outputs):** ~3–5 minutes
- **Medium runs (1,000–5,000 outputs):** ~5–15 minutes
- **Large runs (5,000+ outputs):** ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.

### Limitations

- Availability depends on what [Homes.com real estate agents](https://www.homes.com/real-estate-agents/) publicly exposes at run time.
- Some optional fields may be missing on sparse records or in markets where the source shows less detail.
- Very broad searches may take longer or require higher `limit` values to collect sufficient coverage.
- Target-side changes can affect field availability, labels, or naming.
- Regional, account, or availability differences may change visible results.
- The actor should not be treated as a guarantee that every public agent in a market will be returned.

### Troubleshooting

- **No results returned:** check filter settings, location spelling, and whether Homes.com has matching public agent records for the selected area.
- **Fewer results than expected:** broaden filters, raise `limit`, or verify that the target contains enough matching public records.
- **Some fields are empty:** optional fields depend on what each public agent record provides.
- **Run takes longer than expected:** reduce scope, lower `limit` for validation, or split broad collection into smaller geographic segments.
- **Output changed:** compare the current output with the field reference and report a small sample if support is needed.

### FAQ

#### What data does this actor collect?

It collects public Homes.com agent records, including profile URLs, names, brokerage names, phone numbers, location context, media signals, sales metrics, and source context when available.

#### Can I filter by location, category, date, price, or other criteria?

You can filter by `location`, `home_type`, price range, total sales range, video availability, minimum experience, specialization, and result order. Date filters are not part of the current input schema.

#### Why did I receive fewer results than my limit?

The selected location and filters may have fewer matching public records than the requested `limit`. Broaden filters or try a larger market when you need more coverage.

#### Can I schedule recurring runs?

Yes. Use Apify schedules to run the actor daily, weekly, or on a custom cron cadence.

#### How do I avoid duplicates across runs?

Use `agent_id` as the primary idempotency key. For stricter matching, combine `agent_id` with `profile_url`.

#### Can I export the data to CSV, Excel, or JSON?

Yes. Apify datasets support export formats such as JSON, CSV, Excel, and other formats available in Apify Console.

#### Does this actor collect private data?

No. The actor is intended to collect publicly available information shown on Homes.com agent pages and search results.

#### What should I include when reporting an issue?

Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps show the problem.

### Compliance & Ethics

#### Responsible Data Collection

This actor collects publicly available real estate agent information from [Homes.com real estate agents](https://www.homes.com/real-estate-agents/) for legitimate business purposes, including:

- **Real estate** research and market analysis
- **Lead enrichment and qualification**
- **Operational reporting and competitive monitoring**

This section is informational and not legal advice. Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and platform terms.

#### Best Practices

- Use collected data in accordance with applicable laws, regulations, and the target site's terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable, such as GDPR and CCPA

### Support

For help, use the actor page or Issues. Include the input used with sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample when it is useful for diagnosis.

# Actor input Schema

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

Enter a city, state, ZIP code, neighborhood, or market name. Use a specific area for targeted agent discovery or a broader market for wider coverage.

## `home_type` (type: `array`):

Select one or more property categories associated with the agents you want to find. Multiple selections broaden the match within the selected location.

## `min_price` (type: `integer`):

Only include agents whose relevant activity starts at or above this amount. Leave empty when no lower price boundary is needed.

## `max_price` (type: `integer`):

Only include agents whose relevant activity is at or below this amount. Leave empty when no upper price boundary is needed.

## `sort_by` (type: `string`):

Select the result order that best fits your workflow, such as recommended agents, strongest local sales, highest total sales, current listing count, or experience.

## `min_total_sales` (type: `integer`):

Only include agents with at least this many total sales. Use this when sales volume is a key qualification for your downstream workflow.

## `max_total_sales` (type: `integer`):

Only include agents with no more than this many total sales. Leave empty when you do not need an upper sales-volume boundary.

## `agent_with_video` (type: `boolean`):

Enable this to collect only agents with a video signal on Homes.com. Leave disabled to include agents whether or not a video is shown.

## `min_experience_year` (type: `string`):

Filter agents by minimum years of real estate experience. Higher thresholds create a more senior shortlist and may reduce the number of matching agents.

## `specialization` (type: `string`):

Filter by the role shown for agent activity. Choose buyer representation, seller representation, or agents associated with both sides.

## `limit` (type: `integer`):

Set the maximum number of agent records to save. Leave empty when you do not want a per-run cap beyond the actor's normal collection flow.

## Actor input object example

```json
{
  "location": "Los Angeles, CA",
  "sort_by": "recommended",
  "agent_with_video": false,
  "limit": 100
}
```

# 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": "Los Angeles, CA",
    "limit": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihtahta/homes-com-agent-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": "Los Angeles, CA",
    "limit": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("fatihtahta/homes-com-agent-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": "Los Angeles, CA",
  "limit": 100
}' |
apify call fatihtahta/homes-com-agent-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fatihtahta/homes-com-agent-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Homes.com Agents Scraper",
        "description": "Extract Homes.com agent profiles at scale with contact data, brokerage details, sales metrics, market coverage, profile media, and performance signals. Built for enterprise-grade real estate recruiting, lead enrichment, agent intelligence, and automated analytics pipelines.",
        "version": "0.0",
        "x-build-id": "AGhlVFOYi9VeEtquQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fatihtahta~homes-com-agent-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fatihtahta-homes-com-agent-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/fatihtahta~homes-com-agent-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fatihtahta-homes-com-agent-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/fatihtahta~homes-com-agent-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fatihtahta-homes-com-agent-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",
                "required": [
                    "location"
                ],
                "properties": {
                    "location": {
                        "title": "Enter Agent Search Location",
                        "type": "string",
                        "description": "Enter a city, state, ZIP code, neighborhood, or market name. Use a specific area for targeted agent discovery or a broader market for wider coverage."
                    },
                    "home_type": {
                        "title": "Choose Home Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select one or more property categories associated with the agents you want to find. Multiple selections broaden the match within the selected location.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "house",
                                "condo_co_op",
                                "manufactured",
                                "townhouse",
                                "lot_land",
                                "other"
                            ],
                            "enumTitles": [
                                "House | single-family homes",
                                "Condo / Co-op | shared ownership",
                                "Manufactured | factory-built homes",
                                "Townhouse | attached homes",
                                "Lot / land | land-focused activity",
                                "Other | uncategorized property activity"
                            ]
                        }
                    },
                    "min_price": {
                        "title": "Set Minimum Activity Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include agents whose relevant activity starts at or above this amount. Leave empty when no lower price boundary is needed."
                    },
                    "max_price": {
                        "title": "Set Maximum Activity Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include agents whose relevant activity is at or below this amount. Leave empty when no upper price boundary is needed."
                    },
                    "sort_by": {
                        "title": "Choose Agent Sort Order",
                        "enum": [
                            "recommended",
                            "sales_in_area_high_to_low",
                            "total_sales_high_to_low",
                            "current_listings_high_to_low",
                            "experience_high_to_low"
                        ],
                        "type": "string",
                        "description": "Select the result order that best fits your workflow, such as recommended agents, strongest local sales, highest total sales, current listing count, or experience.",
                        "default": "recommended"
                    },
                    "min_total_sales": {
                        "title": "Set Minimum Total Sales",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include agents with at least this many total sales. Use this when sales volume is a key qualification for your downstream workflow."
                    },
                    "max_total_sales": {
                        "title": "Set Maximum Total Sales",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include agents with no more than this many total sales. Leave empty when you do not need an upper sales-volume boundary."
                    },
                    "agent_with_video": {
                        "title": "Require Agent Video",
                        "type": "boolean",
                        "description": "Enable this to collect only agents with a video signal on Homes.com. Leave disabled to include agents whether or not a video is shown.",
                        "default": false
                    },
                    "min_experience_year": {
                        "title": "Choose Minimum Experience",
                        "enum": [
                            "2+",
                            "5+",
                            "10+"
                        ],
                        "type": "string",
                        "description": "Filter agents by minimum years of real estate experience. Higher thresholds create a more senior shortlist and may reduce the number of matching agents."
                    },
                    "specialization": {
                        "title": "Choose Agent Specialization",
                        "enum": [
                            "buyers_agent",
                            "sellers_agent",
                            "both"
                        ],
                        "type": "string",
                        "description": "Filter by the role shown for agent activity. Choose buyer representation, seller representation, or agents associated with both sides."
                    },
                    "limit": {
                        "title": "Set Maximum Agents",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Set the maximum number of agent records to save. Leave empty when you do not want a per-run cap beyond the actor's normal collection flow."
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
