# Independent Realtor.com Community Details (`peerless_columbine/independent-realtor-us-search`) Actor

Extract community-level details from direct US Realtor.com community URLs: published USD price ranges, location, descriptions, features and photos. Community-only; no verified property search, individual-home details or agent database. Independent tool.

- **URL**: https://apify.com/peerless\_columbine/independent-realtor-us-search.md
- **Developed by:** [tingyou333 zhuang](https://apify.com/peerless_columbine) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 community detail rows

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## Independent Realtor.com Community Details

Collect structured data from **direct US Realtor.com community pages**: published price ranges, bedroom and bathroom ranges, location, description, features, photo URLs and source provenance. Export the results through Apify as JSON, CSV or Excel.

**Supported scope: community details only.** City-wide property search, individual-home details, search pagination, sold/rental discovery and agent databases are outside this release. This is an independent tool, not affiliated with or endorsed by Realtor.com or Move. It does not support Realtor.ca.

### What you can use it for

- Compare published ranges and amenities of communities whose URLs you already have.
- Bring community descriptions, addresses and image URLs into a research spreadsheet or internal catalog.
- Retain a source URL, observation timestamp and response hash with each result.

A community is a development containing multiple homes or plans. Its advertised range is **not** an individual home's price, a completed-sale price, an appraisal or a guaranteed offer. Source mortgage values, when present, remain estimates.

### Quickstart

1. Paste a public US URL containing `/community-detail/` into **Start URLs**.
2. Start with one URL, one result and concurrency 1. Leave proxies and optional enrichment disabled.
3. Read successful records from the dataset and access errors or limits from the **SUMMARY** key-value record.

This is the exact input used for the accepted private-cloud sample:

```json
{
  "startUrls": [
    {
      "url": "https://www.realtor.com/community-detail/Barrington_401-Barrington-Run-Blvd_Zebulon_NC_27597_Q717000090054"
    }
  ],
  "maxItems": 1,
  "maxPages": 1,
  "maxConcurrency": 1,
  "minConcurrency": 1,
  "maxRequestRetries": 0,
  "maxRuntimeSecs": 100,
  "requestTimeoutSecs": 15,
  "proxy": {"useApifyProxy": false}
}
```

It returned one community record in a 256MB cloud run. This verifies that community at the recorded observation time, not nationwide availability or continuous access. Current source values may change.

### Supported inputs

| Input | Default | Behavior in this release |
|---|---|---|
| `startUrls` | No runtime default; community example prefilled | Direct public `/community-detail/` URLs. Up to 50 input URLs are accepted, subject to the run budget. One accepted URL yields at most one community row. |
| `maxItems` | `1000` | Maximum persisted unique rows per start URL. Use `1` for community details. Cross-input duplicates are removed. |
| `maxPages` | `10` | Collection ceiling. Use `1`; community extraction does not page through the homes or plans inside a development. |
| `maxConcurrency`, `minConcurrency` | `5`, `1` | Bounds 1–20; min must not exceed max. Direct community URLs are processed sequentially. These settings do not create parallel community discovery. Use `1` for the sample. |
| `maxRequestRetries` | `5` | 0–5 retries for transient network errors or HTTP 502/503/504. Access blocks and HTTP 401/403/429 are not retried. |
| `requestTimeoutSecs` | `15` | Per-request timeout, 1–20 seconds. |
| `maxRuntimeSecs` | `100` | Collection budget, 1–100 seconds. Partial completion is reported if the budget ends. |
| `monitoringMode` | `false` | Deliver unseen property ID/status pairs. A price change within the same status does **not** produce another row. |
| `monitoringStoreName` | `realtor-round29-monitoring` | Dedicated monitoring store. Avoid overlapping runs sharing a store. |
| `proxy` | `{"useApifyProxy": false}` | Optional user-owned Apify configuration or custom proxy URLs. Configuration and TLS handling are unit-tested; live proxy effectiveness and costs are unverified. |

`proxyConfiguration` aliases `proxy`; provide only one. Optional `useProxy: true` requires an enabled configuration, while `false` conflicts with one. Configuration failures are explicit. Proxies do not extend the accepted source scope or promise access through a block.

The form retains other compatibility fields. **Leave `searchLocations`, sale/status/type/price/keyword filters, `agentZipCodes` and agent options unset.** Guided filters do not apply when direct Start URLs are supplied. Search, filtering and pagination have not passed source acceptance.

Keep `additionalStats`, `includePermitHistory` and `fetchAgentListings` off. Separate enrichment lookups are unavailable; requested missing embedded data can reject a record. `instantDatabase`, enabled `db*` database selectors, `exhaustiveAgents` and `enrichEmails` are unsupported. `dbMinRecentSales` is an agent-only compatibility filter and errors with community targets.

### Output and price semantics

Each valid row represents the requested community, not each house, floor plan or photo. Missing source values remain `null`. Additional nullable compatibility columns do not imply that their values were available or verified.

| Fields | Type | Meaning |
|---|---|---|
| `property_id` | string | Source community/property identifier. |
| `record_type` | string | `property`, as used by the common output contract. |
| `status`, `display_status` | string | Source and derived status. The sample was `active`, not relabelled as a single home for sale. |
| `list_price` | number or null | Singular source price. The verified community has none, so this is `null`. |
| `list_price_min`, `list_price_max`, `currency` | numbers or null; string | Published community range in USD. Never replace `list_price` with its lower endpoint. |
| `beds`, `baths`, `sqft` | numbers or null | Singular source values only. |
| `beds_min/max`, `baths_min/max`, `sqft_min/max` | numbers or null | Source community range endpoints. Missing area is not estimated. |
| `area_unit` | string | `sqft`; does not imply a non-null area. No currency or unit conversion. |
| `address_*`, `county_name` | strings/numbers or null | Published location and coordinates, where available. |
| `description_text`, `details` | string/object or null | Public description and grouped features. Promotional seller statements are not independently verified facts. |
| `photo_urls` | array or null | Source photo URLs, not separately billed image downloads. |
| `provider_url`, `href` | strings or null | Public source/provider links. `href` may be an alternate property-style URL; `_source.url` identifies the requested community page. |
| `_source` | object | Requested URL, observation time, response hash, available fields and `detail_complete: false`. Full-detail/competitor parity is not claimed. |

This **excerpt from the actual cloud record** was observed September 26, 2026. Selected fields are included directly below; [Latest acceptance sample](#latest-acceptance-sample) records the capture time and bounded coverage.

```json
{
  "property_id": "717000090054",
  "record_type": "property",
  "status": "active",
  "display_status": "active",
  "address_city": "Zebulon",
  "address_state_code": "NC",
  "list_price": null,
  "list_price_min": 259900,
  "list_price_max": 380990,
  "currency": "USD",
  "beds": null,
  "beds_min": 3,
  "beds_max": 4,
  "sqft": null,
  "area_unit": "sqft"
}
```

Use the overview and description/provenance dataset views for browsing. JSON preserves nested features, photos and provenance; CSV/Excel exports may require selecting or flattening nested columns.

### Limits and failures

- Acceptance is limited to one direct community sample. Ordinary search/details, two-page collection, sorted/filtered results, sold/rental data, agents and multilingual results remain outside the supported commercial scope. Direct HTTP and a fresh anonymous browser both encountered HTTP 429 on search.
- Source pages can change or become inaccessible. Zero output after an error is not proof that no community or listing exists. Read SUMMARY for `BLOCKED`, `PARTIAL`, limits and source diagnostics.
- Errors, duplicates and rejected records are not exported as successful rows. Source recommendations, cached fixtures and snippets do not substitute for requested details.
- This Actor does not log in, reuse personal cookies, solve challenges or bypass paywalls. Collect only public data you are entitled to use; source restrictions still apply.
- Monitoring tracks ID/status pairs, not every price edit; it is not a complete price-change alert service.
- Advertised ranges, descriptions and mortgage estimates are source statements. Incentives, availability, fees, taxes and final transaction terms may differ. Nearby schools are not asserted to be assigned schools.

### Pricing

The paid unit is **one valid community detail row saved in the default dataset**. Each separately saved record is another row. Inline arrays do not create extra row events. Failed requests, duplicate rows and diagnostic records do not create result events. A valid source record may have nullable optional fields; a row charge does not guarantee every field.

| Apify plan | USD per row | USD per 1,000 rows |
|---|---:|---:|
| FREE | 0.0015 | 1.50 |
| BRONZE | 0.0014 | 1.40 |
| SILVER | 0.0013 | 1.30 |
| GOLD | 0.0012 | 1.20 |
| PLATINUM | 0.0012 | 1.20 |
| DIAMOND | 0.0012 | 1.20 |

There is no startup event fee. FREE names the Apify subscription tier; it does not mean results are free. The Pricing tab shows the active rate before a run.

**Apify platform compute, storage and transfer are charged separately**, including for failed or empty runs. An explicitly enabled proxy can add provider fees. A row limit is not an all-inclusive dollar cap. Use small inputs first and inspect actual run usage. Historical owner test runs are not customer revenue or cost forecasts.

### API example

Save the JSON from Quickstart as `input.json` in your current directory. Keep the token in `APIFY_TOKEN`. This command starts a charged run:

```sh
curl --fail-with-body --request POST \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header 'Content-Type: application/json' \
  --data-binary @input.json \
  'https://api.apify.com/v2/acts/peerless_columbine~independent-realtor-us-search/runs?memory=256&timeout=120&maxTotalChargeUsd=0.05'
```

Read the run status and SUMMARY before consuming results. Use its actual dataset ID to export:

```sh
curl --fail-with-body --header "Authorization: Bearer $APIFY_TOKEN" \
  'https://api.apify.com/v2/datasets/DATASET_ID/items?format=json&clean=true'
```

For scheduled collection, use a dedicated monitoring store and avoid overlapping runs. Disable monitoring if you need a new snapshot on every run, including unchanged community IDs.

### FAQ

**Can I search a city or collect every house in a community?** No. Supply community URLs you already know; the output is community-level records, without enumerating all homes or plans.

**Why is `list_price` null while the range has numbers?** A published community range is not a singular home's price. Preserve the distinction downstream.

**Will all compatibility fields be populated?** No. Available source values are returned; many columns remain null. A column is not a coverage guarantee.

**Is a proxy required?** The accepted cloud sample used none. Optional user-owned proxy configurations remain unverified in live operation and may incur charges.

**Does this cover Canada?** No. It targets US Realtor.com communities with USD and square-foot semantics, and rejects Realtor.ca.

**Is this official?** No. The unmodified source icon identifies Realtor.com, not an affiliation or endorsement.

### Latest acceptance sample

The quickstart input was checked in Apify Cloud on 2026-09-26 (UTC; run finished at 2026-09-26T18:40:11.452Z). It saved 1 valid rows. The output example on this page copies real source values from that dataset; it is a dated sample, not current inventory or a current quote.

One US community, property 717000090054 in Zebulon, NC, returned a published USD range of 259,900–380,990. The singular home price, beds and square footage remain null; `detail_complete=false` remains explicit. This sample does not validate city search, individual-home details or enumeration of all homes within the community.

# Actor input Schema

## `dbState` (type: `string`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `dbCity` (type: `string`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `dbBrokerage` (type: `string`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `dbHasPhone` (type: `boolean`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `dbMinRecentSales` (type: `integer`):

Inclusive public agent annual sales threshold. Must target agents. No proprietary database access and no ranked early-stop promise.

## `dbOffset` (type: `integer`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `dbHasYoutube` (type: `boolean`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `instantDatabase` (type: `boolean`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `startUrls` (type: `array`):

Supported release: direct public US Realtor.com /community-detail/ URLs. Supply known community URLs; search, individual-home, rental and agent modes are not accepted commercial capabilities. Credentials and Realtor.ca are rejected.

## `agentZipCodes` (type: `array`):

US five-digit ZIP codes for public agent searches when startUrls is empty. Live agent extraction remains unverified.

## `searchLocations` (type: `array`):

US city and state, a state or ZIP. Used when startUrls is empty; one search per location.

## `searchMode` (type: `string`):

Sale listings or recently sold listings. Sold searches retain source dates; a complete six-month window is not verified.

## `searchStatuses` (type: `array`):

Post-filter by display status in guided mode. Discovery of nondefault buckets is unverified; this release cannot claim full status coverage.

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

Guided search property types. Several public URL categories group types; local post-filtering retains the requested source types.

## `priceMin` (type: `integer`):

Minimum USD listing price, or last sold price in sold mode. Inclusive.

## `priceMax` (type: `integer`):

Maximum USD listing price, or last sold price in sold mode. Inclusive.

## `bedsMin` (type: `integer`):

Inclusive minimum bedrooms in guided mode. Missing counts do not match.

## `bathsMin` (type: `integer`):

Inclusive minimum bathrooms in guided mode. Missing counts do not match.

## `keyword` (type: `string`):

Case-insensitive substring required in full description in guided mode. No keyword snippets are substituted for details.

## `fetchAgentListings` (type: `boolean`):

Require public embedded active\_listings for agents. Missing requested listings reject the affected agent. Separate listing lookup is unimplemented.

## `exhaustiveAgents` (type: `boolean`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

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

Maximum successfully persisted unique records per start URL. A URL returning duplicates may yield fewer rows.

## `monitoringMode` (type: `boolean`):

Persist delivered property ID plus display status, or agent ID. New status buckets return again. Concurrent separate runs are not supported with the same monitoring store.

## `additionalStats` (type: `boolean`):

Require public embedded saves/views metrics. Reject the affected row if unavailable. Separate enrichment endpoints are not implemented.

## `includePermitHistory` (type: `boolean`):

Require an explicit public embedded permit\_history list; missing is an error, an explicit empty list is valid. No separate permit lookup is available.

## `maxConcurrency` (type: `integer`):

Maximum concurrent HTTP requests, 1 to 20. Applied to detail batches; small 256MB checks should use 1. No silent clamping.

## `minConcurrency` (type: `integer`):

Minimum desired concurrency when sufficient detail work is queued; must not exceed maxConcurrency. Fewer available requests cannot create extra work.

## `maxRequestRetries` (type: `integer`):

Retry count, 0 to 5, for transient network errors and HTTP 502/503/504. No retries for access challenges, 401, 403 or 429.

## `enrichEmails` (type: `boolean`):

Compatibility input. Enabling this proprietary or unsupported mode fails explicitly; see the migration matrix.

## `proxy` (type: `object`):

Optional user-owned Apify proxy configuration or proxyUrls. Default off. Configuration errors fail explicitly; actual paid proxy routes have not been tested.

## `maxPages` (type: `integer`):

Bounded collection control; limits and stop reasons appear in SUMMARY.

## `requestTimeoutSecs` (type: `integer`):

Bounded collection control; limits and stop reasons appear in SUMMARY.

## `maxRuntimeSecs` (type: `integer`):

Bounded collection control; limits and stop reasons appear in SUMMARY.

## `monitoringStoreName` (type: `string`):

Separate named KVS for this Actor. Use a distinct store per independent monitor; avoid overlapping runs.

## `proxyConfiguration` (type: `object`):

Alias for proxy. Supply only one of the two fields.

## `useProxy` (type: `boolean`):

Optional consistency check: true requires a proxy configuration; false rejects an enabled proxy configuration.

## Actor input object example

```json
{
  "dbHasPhone": false,
  "dbHasYoutube": false,
  "instantDatabase": false,
  "startUrls": [
    {
      "url": "https://www.realtor.com/community-detail/Barrington_401-Barrington-Run-Blvd_Zebulon_NC_27597_Q717000090054"
    }
  ],
  "searchMode": "for_sale",
  "searchStatuses": [
    "for_sale",
    "ready_to_build"
  ],
  "propertyTypes": [],
  "fetchAgentListings": false,
  "exhaustiveAgents": false,
  "maxItems": 2,
  "monitoringMode": false,
  "additionalStats": false,
  "includePermitHistory": false,
  "maxConcurrency": 1,
  "minConcurrency": 1,
  "maxRequestRetries": 5,
  "enrichEmails": false,
  "proxy": {
    "useApifyProxy": false
  },
  "maxPages": 10,
  "requestTimeoutSecs": 15,
  "maxRuntimeSecs": 100,
  "monitoringStoreName": "realtor-round29-monitoring"
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "startUrls": [
        {
            "url": "https://www.realtor.com/community-detail/Barrington_401-Barrington-Run-Blvd_Zebulon_NC_27597_Q717000090054"
        }
    ],
    "maxItems": 2,
    "maxConcurrency": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("peerless_columbine/independent-realtor-us-search").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 = {
    "startUrls": [{ "url": "https://www.realtor.com/community-detail/Barrington_401-Barrington-Run-Blvd_Zebulon_NC_27597_Q717000090054" }],
    "maxItems": 2,
    "maxConcurrency": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("peerless_columbine/independent-realtor-us-search").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 '{
  "startUrls": [
    {
      "url": "https://www.realtor.com/community-detail/Barrington_401-Barrington-Run-Blvd_Zebulon_NC_27597_Q717000090054"
    }
  ],
  "maxItems": 2,
  "maxConcurrency": 1
}' |
apify call peerless_columbine/independent-realtor-us-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,peerless_columbine/independent-realtor-us-search"
        }
    }
}
```

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/mlyGJcbggECtay6G0/builds/2fbD2j4j7F5x70EZj/openapi.json
