# Rent Property Search Scraper (`stealth_mode/rent-property-search-scraper`) Actor

Scrape rental property listings from Rent.com including pricing, floor plans, amenities, contact info, photos, and 70+ fields per property. Perfect for real estate analysts, investors, and rental market researchers.

- **URL**: https://apify.com/stealth\_mode/rent-property-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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.
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

## Rent.com Property Search Scraper: Extract Rental Listings at Scale
---

### What Is Rent.com?

Rent.com is one of the United States' largest rental listing platforms, aggregating apartments, townhouses, condos, and houses across thousands of cities. It offers rich property data including pricing tiers, floor plans, amenities, and leasing terms — data that is highly valuable for market analysis but tedious to collect manually. The **Rent.com Property Search Scraper** automates bulk extraction from search result pages, delivering structured records ready for analysis.

---

### Overview

This scraper targets Rent.com **search/listing pages** (not individual property pages) and extracts all visible property cards along with their underlying data. It is suited for:

- **Real estate investors** researching rental pricing by city or neighborhood
- **Market analysts** tracking availability, price drops, and leasing trends
- **PropTech developers** building rental aggregators or comparison tools
- **Relocation services** compiling up-to-date rental inventories for clients

---

### Input Format

```json
{
  "urls": [
    "https://www.rent.com/north-carolina/cary/apartments_townhouses_condos_houses/page-2?source=homepage"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 50
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | `array` of strings | Search result page URLs from Rent.com. Supports pagination URLs (e.g., `page-2`). Add one URL per entry or use bulk edit. |
| `max_items_per_url` | `integer` | Maximum number of property listings to collect per URL. Default: `20`. |
| `ignore_url_failures` | `boolean` | If `true`, the scraper continues when a URL fails instead of stopping the entire run. Recommended for bulk jobs. |

***

### Output Format

**Sample output**

```json
{
  "photos": [
    {
      "id": "480b001548a6da16d7aa776aab0ddc04"
    },
    {
      "id": "794668dfed91ab08ec218dd24fdb4a1d"
    },
    {
      "id": "dc03d6acef21572ee1ab092b91767175"
    },
    {
      "id": "f737f4baf7847e332c8bd3d1c01f622f"
    },
    {
      "id": "2651d56a70cc81f04102e7c7264f06c3"
    },
    {
      "id": "5229e52c84edc273b5081433a8a89ac3"
    },
    {
      "id": "186b95d61973cd9e7ca9c5ee09e14b8f"
    },
    {
      "id": "59d46f97183bc3d4d10aedf6d90ea70e"
    },
    {
      "id": "9f6cb4c3f5a6df3e0c2ac2dca408ac27"
    },
    {
      "id": "91e09ae3153f27f8ad93f47ab68b6b34"
    },
    {
      "id": "3d0ed87780b90925e81ba10df7f0cc61"
    },
    {
      "id": "828a0fc0e4372f0249e5df8c4bc55363"
    },
    {
      "id": "74cff20401d7ba93003b811a70919f5d"
    },
    {
      "id": "44b8e9c972b29d36c03d3df411861044"
    },
    {
      "id": "381686b7a2ff48ec7bf0ae2931a4c11f"
    },
    {
      "id": "a9be1a01aeb9b1e419bef6fd3721e24b"
    },
    {
      "id": "6e2094a5e82ad32a735981954eb1638a"
    },
    {
      "id": "ff303c68e096d62272ad73f36b5a2284"
    },
    {
      "id": "9d0deb559d97aed2111df06b1bcf1af9"
    },
    {
      "id": "47c945afb33b97fa9438bbf00acbbf9b"
    },
    {
      "id": "9106e9c482581376887c293484205e0b"
    },
    {
      "id": "648145f8f52ae66ea9c3f136e20a40ba"
    },
    {
      "id": "38f96100648d557f8a68cc2a2248fd18"
    },
    {
      "id": "e17ca02e48b3754fe1e2c77822397f1d"
    },
    {
      "id": "44581f993647bb47f6e85048faeafb6c"
    },
    {
      "id": "8b249ad298c6f11f1e65585ad79e6ccb"
    },
    {
      "id": "4522d25568f0f42bfda1f99678e477a6"
    },
    {
      "id": "952030121b87369541bd84cc2c41f08c"
    }
  ],
  "name": "Acclaim at Cary Pointe",
  "is_unpaid": false,
  "location": {
    "lat": 35.812968,
    "lng": -78.87719,
    "city": "Cary",
    "state": "North Carolina",
    "state_abbr": "NC",
    "zip": "27519"
  },
  "id": "lc5911464",
  "bed_count_data": [
    {
      "beds": 1,
      "prices": {
        "low": 1502
      }
    },
    {
      "beds": 2,
      "prices": {
        "low": 2388
      }
    }
  ],
  "phone_mobile": "9843753541",
  "phone_mobile_sem": "9843753542",
  "phone_desktop": "9843753541",
  "phone_desktop_text": "(984) 375-3541",
  "phone_desktop_sem": "9843753542",
  "phone_desktop_sem_text": "(984) 375-3542",
  "nv_rpl": null,
  "revenue": 6,
  "request_tour_opt_out": true,
  "z_score": null,
  "tplsource": "ZILLOW",
  "url_pathname": "/apartment/acclaim-at-cary-pointe-cary-nc-lc5911464",
  "amenities_highlighted": [
    "Pet Friendly",
    "Patio",
    "Dishwasher",
    "Fitness Center",
    "Hardwood Flooring"
  ],
  "category_badges": [],
  "city_ids": [
    "3710740"
  ],
  "off_market": false,
  "tour_provider_details": null,
  "floor_plans": [
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 5,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2466,
        "min": 2436
      },
      "sq_ft_range": {
        "min": 964,
        "max": 964
      },
      "units": [
        {
          "rent": "$2,451"
        },
        {
          "rent": "$2,436"
        },
        {
          "rent": "$2,451"
        },
        {
          "rent": "$2,466"
        },
        {
          "rent": "$2,466"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 1,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2397,
        "min": 2397
      },
      "sq_ft_range": {
        "min": 955,
        "max": 955
      },
      "units": [
        {
          "rent": "$2,397"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 10,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2418,
        "min": 2368
      },
      "sq_ft_range": {
        "min": 841,
        "max": 841
      },
      "units": [
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,418"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,383"
        },
        {
          "rent": "$2,383"
        },
        {
          "rent": "$2,383"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 2,
      "bath_count": 2,
      "available_count": 1,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2681,
        "min": 2681
      },
      "sq_ft_range": {
        "min": 1119,
        "max": 1119
      },
      "units": [
        {
          "rent": "$2,681"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 2,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2121,
        "min": 2071
      },
      "sq_ft_range": {
        "min": 804,
        "max": 804
      },
      "units": [
        {
          "rent": "$2,121"
        },
        {
          "rent": "$2,071"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 2,
      "bath_count": 2,
      "available_count": 7,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2767,
        "min": 2682
      },
      "sq_ft_range": {
        "min": 1119,
        "max": 1119
      },
      "units": [
        {
          "rent": "$2,732"
        },
        {
          "rent": "$2,767"
        },
        {
          "rent": "$2,732"
        },
        {
          "rent": "$2,682"
        },
        {
          "rent": "$2,682"
        },
        {
          "rent": "$2,697"
        },
        {
          "rent": "$2,697"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 6,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2136,
        "min": 2071
      },
      "sq_ft_range": {
        "min": 804,
        "max": 804
      },
      "units": [
        {
          "rent": "$2,121"
        },
        {
          "rent": "$2,121"
        },
        {
          "rent": "$2,121"
        },
        {
          "rent": "$2,136"
        },
        {
          "rent": "$2,071"
        },
        {
          "rent": "$2,086"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 2,
      "bath_count": 2,
      "available_count": 6,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2890,
        "min": 2795
      },
      "sq_ft_range": {
        "min": 1164,
        "max": 1164
      },
      "units": [
        {
          "rent": "$2,795"
        },
        {
          "rent": "$2,845"
        },
        {
          "rent": "$2,845"
        },
        {
          "rent": "$2,890"
        },
        {
          "rent": "$2,795"
        },
        {
          "rent": "$2,795"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 10,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2418,
        "min": 2318
      },
      "sq_ft_range": {
        "min": 841,
        "max": 841
      },
      "units": [
        {
          "rent": "$2,418"
        },
        {
          "rent": "$2,418"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,318"
        },
        {
          "rent": "$2,368"
        },
        {
          "rent": "$2,383"
        },
        {
          "rent": "$2,383"
        },
        {
          "rent": "$2,383"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 2,
      "bath_count": 2,
      "available_count": 8,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2723,
        "min": 2388
      },
      "sq_ft_range": {
        "min": 1139,
        "max": 1139
      },
      "units": [
        {
          "rent": "$2,688"
        },
        {
          "rent": "$2,388"
        },
        {
          "rent": "$2,688"
        },
        {
          "rent": "$2,693"
        },
        {
          "rent": "$2,723"
        },
        {
          "rent": "$2,713"
        },
        {
          "rent": "$2,693"
        },
        {
          "rent": "$2,708"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 2,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2236,
        "min": 2211
      },
      "sq_ft_range": {
        "min": 933,
        "max": 933
      },
      "units": [
        {
          "rent": "$2,211"
        },
        {
          "rent": "$2,236"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 9,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 1847,
        "min": 1502
      },
      "sq_ft_range": {
        "min": 681,
        "max": 681
      },
      "units": [
        {
          "rent": "$1,812"
        },
        {
          "rent": "$1,812"
        },
        {
          "rent": "$1,812"
        },
        {
          "rent": "$1,847"
        },
        {
          "rent": "$1,777"
        },
        {
          "rent": "$1,502"
        },
        {
          "rent": "$1,792"
        },
        {
          "rent": "$1,777"
        },
        {
          "rent": "$1,777"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 5,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2520,
        "min": 2385
      },
      "sq_ft_range": {
        "min": 964,
        "max": 964
      },
      "units": [
        {
          "rent": "$2,520"
        },
        {
          "rent": "$2,385"
        },
        {
          "rent": "$2,470"
        },
        {
          "rent": "$2,435"
        },
        {
          "rent": "$2,435"
        }
      ],
      "photos": []
    },
    {
      "bed_count": 1,
      "bath_count": 1,
      "available_count": 6,
      "price_term": "/mo",
      "available_date": null,
      "availability_status_code": "AVAILABLE_WITH_COUNT",
      "price_range": {
        "max": 2272,
        "min": 2212
      },
      "sq_ft_range": {
        "min": 867,
        "max": 867
      },
      "units": [
        {
          "rent": "$2,272"
        },
        {
          "rent": "$2,212"
        },
        {
          "rent": "$2,237"
        },
        {
          "rent": "$2,222"
        },
        {
          "rent": "$2,222"
        },
        {
          "rent": "$2,237"
        }
      ],
      "photos": []
    }
  ],
  "application_url": null,
  "availability_status": "TODAY",
  "lead_move_in_date_required": false,
  "lead_phone_required": true,
  "lead_questions": {
    "ids": []
  },
  "has_price_drops": false,
  "leasing_terms": [],
  "listing_tier": "payPerLease",
  "phone_mobile_text": "(984) 375-3541",
  "price_text": "$1,502+",
  "property_management_company": {
    "id": null,
    "name": "Vest Residential"
  },
  "time_zone_id": null,
  "has_lead_emails": true,
  "verified": true,
  "website": null,
  "property_type": "APARTMENTS",
  "bed_range": {
    "min": 1,
    "max": 2
  },
  "price_range": {
    "min": 1502,
    "max": 2890
  },
  "cpl_eligible": true,
  "phone_mobile_sem_text": "(984) 375-3542",
  "mits_phone": {
    "raw": null,
    "formatted": null
  },
  "office_hours": [
    {
      "day": "Sunday",
      "times": [
        {
          "open": "01:00 PM",
          "close": "05:00 PM",
          "comment": null
        }
      ]
    },
    {
      "day": "Monday",
      "times": [
        {
          "open": "10:00 AM",
          "close": "06:00 PM",
          "comment": null
        }
      ]
    },
    {
      "day": "Tuesday",
      "times": [
        {
          "open": "09:00 AM",
          "close": "06:00 PM",
          "comment": null
        }
      ]
    },
    {
      "day": "Wednesday",
      "times": [
        {
          "open": "09:00 AM",
          "close": "06:00 PM",
          "comment": null
        }
      ]
    },
    {
      "day": "Thursday",
      "times": [
        {
          "open": "09:00 AM",
          "close": "06:00 PM",
          "comment": null
        }
      ]
    },
    {
      "day": "Friday",
      "times": [
        {
          "open": "09:00 AM",
          "close": "06:00 PM",
          "comment": null
        }
      ]
    },
    {
      "day": "Saturday",
      "times": [
        {
          "open": "10:00 AM",
          "close": "05:00 PM",
          "comment": null
        }
      ]
    }
  ],
  "deals": [
    {
      "description": "Move in by May 15 and receive One Month Free PLUS waived administrative & community fee! Ask us about our look and lease special!",
      "coupon_category": "Special Offer",
      "idx": null
    }
  ],
  "deal_types": [
    {
      "text": "1 Month Free"
    },
    {
      "text": "Lowered Fees"
    }
  ],
  "deals_text": "Move in by May 15 and receive One Month Free PLUS waived administrative & community fee! Ask us about our look and lease special!",
  "address": "2525 Morrisville Pkwy",
  "apply_now_opted_in": false,
  "mls_info": {
    "agent_first_name": null,
    "agent_last_name": null,
    "agent_email": "stop@rent.com",
    "feed": null,
    "id": null
  },
  "address_full": "2525 Morrisville Pkwy, Cary, NC 27519",
  "income_restrictions": [],
  "special_terms": "Available months 12",
  "price_drops": {
    "by_floorplan_id": []
  },
  "has_total_cost_with_fees": false,
  "has_total_cost_with_fees_messaging": false,
  "bath_text": "1–2 Baths",
  "bed_text": "1–2 Beds",
  "square_feet_text": "681–1164 Sqft",
  "hood_ids": [
    1122743
  ],
  "zip_code": "27519",
  "typename": "Listing",
  "units_available_text": "10+ Units Available",
  "source_id": "5541gwdtqwp9q",
  "pdp_views": 1,
  "has_hd_tour": false,
  "videos": [],
  "has_videos_or_tours": false,
  "hd_tours": [],
  "unique_highlights": [
    "Fitness Center",
    "Electricity Included",
    "Water Included",
    "Pet Friendly",
    "Art Studio",
    "Dishwasher",
    "Indoor Pool",
    "Outdoor Spaces",
    "Electric Car Charging",
    "Washer and Dryer"
  ],
  "lead_volume_meta": {
    "label": null,
    "percentile": null,
    "lead_count": null
  },
  "rating_percent": null,
  "rating_count": null,
  "updated_at": "2026-05-10T00:00:00.000Z",
  "price": 1502,
  "map_marker_price_text": "$1.5k"
}
```

Each property record contains 70+ fields organized into logical groups:

#### Identity & Listing Metadata

| Field | Meaning |
|---|---|
| `ID` | Unique Rent.com internal identifier for the property |
| `Name` | Property or building name as displayed on the listing |
| `Source ID` | Identifier from the originating data source |
| `Typename` | GraphQL/API type label for the listing object |
| `URL Pathname` | Relative URL path to the property detail page |
| `Website` | Property's own website, if listed |
| `Verified` | Whether the listing has been verified by Rent.com |
| `Is Unpaid` | Indicates if the listing is an unpaid/organic entry |
| `Listing Tier` | Paid placement tier (e.g., featured, standard) |
| `TPL Source` | Tracking source label for the listing placement |
| `Updated At` | Timestamp of the most recent data update |
| `Off Market` | Whether the property is currently off-market |

#### Location

| Field | Meaning |
|---|---|
| `Address` | Street address of the property |
| `Address Full` | Full formatted address including city, state, zip |
| `Location` | Coordinates or structured location object |
| `Zip Code` | Postal code |
| `City IDs` | Internal IDs for the city |
| `Hood IDs` | Internal IDs for the neighborhood |
| `Time Zone ID` | Time zone identifier (e.g., `America/New_York`) |

#### Pricing

| Field | Meaning |
|---|---|
| `Price` | Base rental price (numeric) |
| `Price Text` | Formatted price string (e.g., `"$1,200/mo"`) |
| `Price Range` | Min–max price range across available units |
| `Map Marker Price Text` | Short price label shown on map pins |
| `Has Price Drops` | Boolean flag for recent price reductions |
| `Price Drops` | Details of any active price drop offers |
| `Has Total Cost With Fees` | Whether total-cost-with-fees data is available |
| `Has Total Cost With Fees Messaging` | Text messaging about total cost transparency |

#### Unit Details

| Field | Meaning |
|---|---|
| `Bed Count Data` | Structured bedroom count data |
| `Bed Range` | Min–max bedroom range (e.g., `1–3 beds`) |
| `Bed Text` | Human-readable bedroom label |
| `Bath Text` | Human-readable bathroom label |
| `Square Feet Text` | Size range or value as displayed |
| `Floor Plans` | Available floor plan configurations with pricing |
| `Units Available Text` | Label for current availability (e.g., `"5 units available"`) |
| `Availability Status` | Current availability state of the property |
| `Property Type` | Type of dwelling (apartment, condo, house, etc.) |
| `Duration` | Typical lease duration |

#### Contact & Communication

| Field | Meaning |
|---|---|
| `Phone Mobile` | Mobile contact number |
| `Phone Mobile Text` | Display text for mobile number |
| `Phone Mobile SEM` | Mobile number used in paid search campaigns |
| `Phone Mobile SEM Text` | Display text for SEM mobile number |
| `Phone Desktop` | Desktop contact number |
| `Phone Desktop Text` | Display text for desktop number |
| `Phone Desktop SEM` | Desktop SEM tracking number |
| `Phone Desktop SEM Text` | Display text for desktop SEM number |
| `MITS Phone` | Phone number from MITS (industry data standard) |
| `Has Lead Emails` | Whether the property accepts email leads |

#### Leasing & Application

| Field | Meaning |
|---|---|
| `Application URL` | Direct link to the online application |
| `Apply Now Opted In` | Whether the property uses Rent.com's Apply Now feature |
| `Leasing Terms` | Available lease term options |
| `Lead Move In Date Required` | Whether a move-in date is required to contact |
| `Lead Phone Required` | Whether a phone number is required to submit a lead |
| `Lead Questions` | Custom questions shown to prospective tenants |
| `Lead Volume Meta` | Metadata about lead traffic volume |
| `Request Tour Opt Out` | Whether the property has opted out of tour requests |
| `Tour Provider Details` | Details about the virtual/in-person tour provider |
| `CPL Eligible` | Whether the listing is eligible for cost-per-lead billing |

#### Amenities & Highlights

| Field | Meaning |
|---|---|
| `Amenities Highlighted` | Featured amenities displayed prominently on the listing |
| `Unique Highlights` | Property-specific selling points |
| `Category Badges` | Tags such as "Pet Friendly", "Utilities Included" |
| `Has HD Tour` | Whether an HD virtual tour is available |
| `HD Tours` | HD tour links or metadata |
| `Videos` | Video tour URLs |
| `Has Videos Or Tours` | Boolean indicating any video/tour content exists |

#### Deals & Promotions

| Field | Meaning |
|---|---|
| `Deals` | Active deals or promotions |
| `Deal Types` | Categories of available deals |
| `Deals Text` | Human-readable deal description (e.g., `"1 month free"`) |

#### Restrictions & Special Terms

| Field | Meaning |
|---|---|
| `Income Restrictions` | Income-based eligibility requirements, if any |
| `Special Terms` | Non-standard leasing conditions |

#### Company & Management

| Field | Meaning |
|---|---|
| `Property Management Company` | Name of the managing company |
| `Office Hours` | Leasing office hours |

#### Media

| Field | Meaning |
|---|---|
| `Photos` | Array of property photo URLs |

#### Analytics & Scoring

| Field | Meaning |
|---|---|
| `Z Score` | Internal ranking/relevance score |
| `NV RPL` | Revenue-per-lead metric (internal) |
| `Revenue` | Revenue metadata associated with the listing |
| `PDP Views` | Number of property detail page views |
| `Rating Percent` | Aggregate review score as a percentage |
| `Rating Count` | Total number of reviews |

#### MLS Data

| Field | Meaning |
|---|---|
| `MLS Info` | MLS listing metadata where applicable |

***

### How to Use

1. **Get search URLs** — Search on Rent.com with your target city, state, and property type filters. Copy the results page URL (including pagination if needed).
2. **Configure input** — Paste URLs into the `urls` array. Set `max_items_per_url` based on how many listings you need per page (typically 20–50).
3. **Enable failure tolerance** — Keep `ignore_url_failures: true` for multi-URL runs.
4. **Run and export** — Start the scraper and download results as JSON, CSV, or Excel.

**Best practices:**

- Add paginated URLs (page-1 through page-N) to cover full search results.
- Use specific search filters in the URL (city, property type) to get targeted datasets.
- Schedule recurring runs to track price changes and availability over time.

***

### Use Cases & Business Value

- **Rental market analysis:** Compare pricing across neighborhoods in a target city
- **Investment research:** Identify underpriced markets or high-demand ZIP codes
- **Relocation tools:** Build curated property shortlists for clients
- **Price monitoring:** Track deal activity and price drops for specific markets

***

### Conclusion

The **Rent.com Property Search Scraper** turns paginated rental search results into clean, analysis-ready datasets with 70+ fields per listing. Whether you're building a market report or sourcing leads, it eliminates manual data collection and delivers consistent output at scale.

# Actor input Schema

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

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

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

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

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.rent.com/north-carolina/cary/apartments_townhouses_condos_houses/page-2?source=homepage"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.rent.com/north-carolina/cary/apartments_townhouses_condos_houses/page-2?source=homepage"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/rent-property-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.rent.com/north-carolina/cary/apartments_townhouses_condos_houses/page-2?source=homepage"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/rent-property-search-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 '{
  "urls": [
    "https://www.rent.com/north-carolina/cary/apartments_townhouses_condos_houses/page-2?source=homepage"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/rent-property-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Rent Property Search Scraper",
        "description": "Scrape rental property listings from Rent.com including pricing, floor plans, amenities, contact info, photos, and 70+ fields per property. Perfect for real estate analysts, investors, and rental market researchers.",
        "version": "0.0",
        "x-build-id": "TplCLzgJ0Iy4phbwP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~rent-property-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-rent-property-search-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/stealth_mode~rent-property-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-rent-property-search-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/stealth_mode~rent-property-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-rent-property-search-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",
                "properties": {
                    "urls": {
                        "title": "URLs of the property list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
