# Rent.com Scraper $0.8/1K (`abotapi/rent-com-scraper`) Actor

Extract rental listings from rent.com. Get comprehensive data including monthly rent ranges, full address with GPS, beds/baths/sqft ranges, three contact phone channels, special offers, pet policy, photos, amenities, floor plans, and per-day office hours. Apartments, houses, condos, and townhomes.

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

## Pricing

from $0.80 / 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 Scraper

Extract rental listings from **rent.com**, one of the largest US apartment-rental portals. Get comprehensive data including monthly rent ranges, full address with GPS, beds/baths/sqft ranges, three contact phone channels, special offers, pet policy, photos, amenities, floor plans, and per-day office hours. Apartments, houses, condos, and townhomes — every US market.

### What does Rent.com Scraper do?

This actor collects rental listings from rent.com for any US city. It supports both a search builder (city + state + filters) and URL-paste mode for advanced filtering done in your browser. Results land in structured JSON, ready for analysis, dashboards, lead pipelines, market research, or downstream integration.

#### Key Features

| Feature | Description |
|---|---|
| **Two modes** | Search by city + state + filters, OR paste any rent.com URL |
| **All property types** | Apartments, Houses, Condos, Townhomes |
| **Filter builder** | exact bedroom count, max-price band, pet-friendly, furnished, luxury, deals-only, income-restricted |
| **Multi-location** | Add as many city/state pairs as you want — one run scrapes them all |
| **Auto pagination** | Walks pages forward automatically up to your `maxPages` cap |
| **Per-listing details (optional)** | Toggle `fetchDetails` ON for full description, complete amenity list, individual floor plans, ratings, pet-policy details |
| **40+ SERP fields** | Full address, GPS, three phone channels, all amenities, floor plans, office hours, deals, ratings, listing tier — all from the SERP page (no extra requests) |
| **Resilient session management** | Automatic session refresh if the upstream IP rejects the cached state |
| **GPS coordinates** | Latitude / longitude on every listing for mapping and geospatial analysis |
| **Special offer capture** | "1 Month Free", "$500 off", and similar promos with category labels |
| **Pet policy** | Pet-friendly flag derived from listing amenities; full per-pet detail when `fetchDetails: true` |
| **Multi-channel phones** | Organic, mobile, and SEM (search-engine-marketing) contact numbers |
| **Resume support** | Cached session + sticky proxy session keep cost low across re-runs |

### What data can you extract?

The scraper extracts 40+ fields per listing in the default (SERP-only) mode and 50+ when `fetchDetails` is ON.

> Sample shape — values are illustrative placeholders, not from a live listing.

| Field | Example | Source |
|---|---|---|
| `id` | `"lc00000001"` | SERP |
| `url` | `"https://www.rent.com/apartment/sample-property-los-angeles-ca-lc00000001"` | SERP |
| `name` | `"Sample Property Name"` | SERP |
| `propertyType` | `"APARTMENTS"` | SERP |
| `listingTier` | `"diamond"` | SERP |
| `verified` | `true` | SERP |
| `fullAddress` | `"100 Main St, Los Angeles, CA 90001"` | SERP |
| `street` | `"100 Main St"` | SERP |
| `city` | `"Los Angeles"` | SERP |
| `state` | `"CA"` | SERP |
| `stateName` | `"California"` | SERP |
| `zip` | `"90001"` | SERP |
| `latitude` | `34.0000` | SERP |
| `longitude` | `-118.0000` | SERP |
| `bedsMin` | `1` | SERP |
| `bedsMax` | `3` | SERP |
| `bedsLabel` | `"1–3 Beds"` | SERP |
| `bathsMin` | `1` | SERP |
| `bathsMax` | `2` | SERP |
| `bathsLabel` | `"1–2 Baths"` | SERP |
| `sqftMin` | `600` | SERP |
| `sqftMax` | `1200` | SERP |
| `priceMin` | `1500` | SERP |
| `priceMax` | `3200` | SERP |
| `priceLabel` | `"$1,500+"` | SERP |
| `availability` | `"TODAY"` | SERP |
| `unitsAvailableText` | `"3 Units Available"` | SERP |
| `phone` | `"0000000000"` | SERP |
| `phoneText` | `"(000) 000-0000"` | SERP |
| `phoneSem` | `"0000000000"` | SERP |
| `phoneSemText` | `"(000) 000-0000"` | SERP |
| `specialOffer` | `"1 Month Free"` | SERP |
| `specialOfferCategory` | `"FreeRent"` | SERP |
| `deals[]` | `["1 Month Free"]` | SERP |
| `categoryBadges[]` | `[]` | SERP |
| `amenitiesHighlighted[]` | `["Pet Friendly", "Pool", "Fitness Center"]` | SERP |
| `amenitiesAll[]` | `["Pet Friendly", "Pool", "Fitness Center", "..."]` | SERP+Detail |
| `petsCats` | `true` | SERP+Detail |
| `petsDogs` | `true` | SERP+Detail |
| `petPolicyDetails` | `null` | Detail |
| `hasVideo` | `false` | SERP |
| `hasVirtualTour` | `true` | SERP |
| `hasPriceDrops` | `false` | SERP |
| `incomeRestrictions` | `[]` | SERP |
| `propertyManagement` | `"Sample Management Co"` | SERP |
| `cplEligible` | `true` | SERP |
| `revenue` | `7` | SERP |
| `bedCountData[]` | `[{ beds: 1, pricesLow: 1500, pricesHigh: 1800, sqftLow: 600, sqftHigh: 700 }]` | SERP |
| `floorPlans[]` | `[{ beds: 1, baths: 1, availableCount: 2, priceMin: 1500, priceMax: 1800, sqftMin: 600, sqftMax: 700, availableDate: null, units: [...] }]` | SERP+Detail |
| `officeHours[]` | `[{ day: "Monday", open: "09:00 AM", close: "06:00 PM" }]` | SERP |
| `leasingTerms[]` | `[]` | SERP |
| `description` | `"Full property description text appears here when fetchDetails=true."` | Detail |
| `rating` | `4.2` | Detail |
| `reviewCount` | `120` | Detail |
| `yearBuilt` | `2018` | Detail |
| `fees` | `{ "Application": "$50" }` | Detail |
| `photos[]` | `[{ id: "00000", url: "https://i.rent.com/t_3x2_fixed_webp_lg/00000", caption: "Pool" }]` | SERP+Detail |
| `primaryImage` | `"https://i.rent.com/t_3x2_fixed_webp_lg/00000"` | SERP |
| `imageCount` | `25` | SERP |
| `updatedAt` | `"2026-01-01T00:00:00.000Z"` | SERP |
| `scrapedAt` | `"2026-01-01T00:00:00.000Z"` | runtime |

### How to Use

#### Search mode — basic

```json
{
  "mode": "search",
  "locations": [{ "city": "Los Angeles", "state": "CA" }],
  "propertyType": "apartments",
  "maxPages": 3
}
````

#### Search mode — with filters

```json
{
  "mode": "search",
  "locations": [{ "city": "Austin", "state": "TX" }],
  "propertyType": "apartments",
  "bedrooms": "2",
  "maxPrice": 1500,
  "petFriendly": true,
  "maxPages": 5
}
```

#### Search mode — luxury + deals only

```json
{
  "mode": "search",
  "locations": [{ "city": "Miami", "state": "FL" }],
  "propertyType": "condos",
  "luxury": true,
  "dealsOnly": true,
  "maxPages": 3
}
```

#### Search mode — multi-city

```json
{
  "mode": "search",
  "locations": [
    { "city": "Seattle", "state": "WA" },
    { "city": "Portland", "state": "OR" },
    { "city": "Denver", "state": "CO" }
  ],
  "propertyType": "houses",
  "maxPages": 2,
  "maxListings": 100
}
```

#### URL mode — paste pre-filtered URLs

```json
{
  "mode": "url",
  "urls": [
    "https://www.rent.com/california/san-francisco-apartments/2-bedroom",
    "https://www.rent.com/new-york/new-york-apartments/pet-friendly/max-price-2000"
  ],
  "maxPages": 4
}
```

#### Detail mode — full amenities + floor plans

```json
{
  "mode": "search",
  "locations": [{ "city": "Miami", "state": "FL" }],
  "propertyType": "condos",
  "fetchDetails": true,
  "maxPages": 1,
  "maxListings": 20
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `"search"` | `"search"` (city + state + filters) or `"url"` (paste URLs). |
| `locations` | array | `[{city: "Los Angeles", state: "CA"}]` | Search-mode only. List of `{city, state}` objects. State is the 2-letter US code. |
| `urls` | array | `[]` | URL-mode only. Multi-URL supported. |
| `propertyType` | string | `"apartments"` | One of `apartments` / `houses` / `condos` / `townhomes`. |
| `bedrooms` | string | `""` (any) | Exact bedroom count: `studio` / `1` / `2` / `3` / `4`. |
| `maxPrice` | int | — | Optional. Snapped to the largest rent.com SEO band ≤ value: 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 2000. Above 2000 → no max-price filter applied. |
| `petFriendly` | bool | `false` | Show only pet-friendly listings. |
| `furnished` | bool | `false` | Show only furnished listings. |
| `luxury` | bool | `false` | Show only premium / luxury listings. |
| `dealsOnly` | bool | `false` | Show only listings with active rent specials. |
| `incomeRestricted` | bool | `false` | Show only income-restricted (affordable housing) listings. |
| `maxPages` | int | `5` | Hard cap on SERP pages walked per location/URL. |
| `maxListings` | int | `0` | Total stop-after limit across all locations. `0` = no cap. |
| `fetchDetails` | bool | `false` | When ON, fetch each listing's detail page for full description, complete amenity list, individual floor plans, ratings, and pet-policy details. ~30× more requests per SERP page. |
| `proxy` | object | Apify residential US | Proxy configuration. US-residential is strongly recommended. |

> **Tip — filters not in the schema:** rent.com's URL grammar exposes only the filters above as canonical SEO segments. For other refinements (bath count, square-footage band, specific amenity, neighborhood, sort order), open rent.com in your browser, apply the filter, then copy the URL into URL mode. The actor will scrape it as-is.

### Output Example

> Sample shape — values are illustrative placeholders, not from a live listing.

```json
{
  "id": "lc00000001",
  "url": "https://www.rent.com/apartment/sample-property-los-angeles-ca-lc00000001",
  "name": "Sample Property Name",
  "propertyType": "APARTMENTS",
  "listingTier": "diamond",
  "isLuxury": false,
  "verified": true,
  "fullAddress": "100 Main St, Los Angeles, CA 90001",
  "street": "100 Main St",
  "city": "Los Angeles",
  "state": "CA",
  "stateName": "California",
  "zip": "90001",
  "latitude": 34.0000,
  "longitude": -118.0000,
  "bedsMin": 1,
  "bedsMax": 3,
  "bedsLabel": "1–3 Beds",
  "bathsMin": 1,
  "bathsMax": 2,
  "bathsLabel": "1–2 Baths",
  "sqftMin": 600,
  "sqftMax": 1200,
  "priceMin": 1500,
  "priceMax": 3200,
  "priceLabel": "$1,500+",
  "availability": "TODAY",
  "unitsAvailableText": "3 Units Available",
  "phone": "0000000000",
  "phoneText": "(000) 000-0000",
  "phoneSem": "0000000000",
  "phoneSemText": "(000) 000-0000",
  "specialOffer": "1 Month Free",
  "specialOfferCategory": "FreeRent",
  "deals": ["1 Month Free"],
  "categoryBadges": [],
  "amenitiesHighlighted": ["Pet Friendly", "Pool", "Fitness Center"],
  "amenitiesAll": ["Pet Friendly", "Pool", "Fitness Center"],
  "petsCats": true,
  "petsDogs": true,
  "petPolicyDetails": null,
  "hasVideo": false,
  "hasVirtualTour": true,
  "hasPriceDrops": false,
  "incomeRestrictions": [],
  "propertyManagement": "Sample Management Co",
  "cplEligible": true,
  "revenue": 7,
  "sourceId": "00000000",
  "bedCountData": [
    { "beds": 1, "pricesLow": 1500, "pricesHigh": 1800, "sqftLow": 600, "sqftHigh": 700 }
  ],
  "floorPlans": [
    { "beds": 1, "baths": 1, "availableCount": 2, "priceMin": 1500, "priceMax": 1800, "sqftMin": 600, "sqftMax": 700, "availableDate": null, "units": [] }
  ],
  "officeHours": [
    { "day": "Monday", "open": "09:00 AM", "close": "06:00 PM" }
  ],
  "leasingTerms": [],
  "description": null,
  "rating": null,
  "reviewCount": null,
  "yearBuilt": null,
  "fees": null,
  "photos": [
    { "id": "00000", "url": "https://i.rent.com/t_3x2_fixed_webp_lg/00000", "caption": null }
  ],
  "primaryImage": "https://i.rent.com/t_3x2_fixed_webp_lg/00000",
  "imageCount": 25,
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Plan Requirement

This site requires a **US-residential proxy** to fetch SERP and detail pages reliably. Non-US IPs almost always get rejected at the upstream edge.

- **Apify paid plans (Starter+):** include the `RESIDENTIAL` group — the actor uses it by default with `country: "US"`.
- **Apify free plan:** no residential access. Either upgrade or paste your own US-residential proxy URLs (Bright Data, Oxylabs, SmartProxy, IPRoyal, etc.) into the proxy field with `useApifyProxy: false`.

If a US-residential exit IP gets temporarily rejected, the actor automatically:

1. Refreshes the session token on the same IP
2. Rotates to a fresh sticky session if that fails
3. Falls back to a backup proxy pool as a last resort

# Actor input Schema

## `mode` (type: `string`):

Search mode = pick city + state + filters below. URL mode = paste any rent.com URL refined in a browser (recommended for filters not exposed below).

## `locations` (type: `array`):

Cities to search. Add one or more entries — the scraper visits each city. State is the 2-letter US code.

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

Which kind of rental to search. Encoded into the URL path segment (e.g. apartments → /<state>/<city>-apartments).

## `bedrooms` (type: `string`):

Exact bedroom count. Rent.com only exposes integer counts (no min/max ranges) on its SEO URLs.

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

Snapped to the nearest rent.com SEO band: 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 2000. Values above 2000 disable the max-price filter (rent.com has no canonical band above $2000). Optional.

## `petFriendly` (type: `boolean`):

Show only pet-friendly listings. Rent.com URL filter is `pet-friendly` (combines cats AND dogs); separate cat/dog filters are not exposed.

## `furnished` (type: `boolean`):

Show only furnished listings.

## `luxury` (type: `boolean`):

Show only premium / luxury listings.

## `dealsOnly` (type: `boolean`):

Show only listings with active rent specials (e.g. 1 month free).

## `incomeRestricted` (type: `boolean`):

Show only income-restricted (affordable housing) listings.

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

One or more full rent.com URLs. Tip: open rent.com in your browser, apply any filters (price band, neighborhood, amenities), then paste the resulting URL here. Multi-URL supported. Filter-mode fields above are ignored. Pagination starts at the page in the URL and walks forward.

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

Hard cap on how many SERP pages to walk per location/URL. Each page returns up to ~30 listings.

## `maxListings` (type: `integer`):

Stop after this many listings across all locations. 0 = no cap.

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

When ON, fetch each listing's detail page for full description, complete amenity list, individual floor plans, ratings, and pet-policy details. Multiplies request count ~30× per SERP page. Default OFF — SERP cards already include 40+ fields. Detail fetches share the same warm session, so they consume no extra credits.

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

Rent.com fronts SERP pages with a US-only edge filter; non-US IPs almost always get rejected. Apify residential US passes naturally. Datacenter or non-US proxies will be SLOW or fail entirely.

## Actor input object example

```json
{
  "mode": "search",
  "locations": [
    {
      "city": "Los Angeles",
      "state": "CA"
    }
  ],
  "propertyType": "apartments",
  "bedrooms": "",
  "petFriendly": false,
  "furnished": false,
  "luxury": false,
  "dealsOnly": false,
  "incomeRestricted": false,
  "urls": [
    "https://www.rent.com/california/los-angeles-apartments"
  ],
  "maxPages": 2,
  "maxListings": 0,
  "fetchDetails": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "locations": [
        {
            "city": "Los Angeles",
            "state": "CA"
        }
    ],
    "urls": [
        "https://www.rent.com/california/los-angeles-apartments"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/rent-com-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 = {
    "locations": [{
            "city": "Los Angeles",
            "state": "CA",
        }],
    "urls": ["https://www.rent.com/california/los-angeles-apartments"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/rent-com-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 '{
  "locations": [
    {
      "city": "Los Angeles",
      "state": "CA"
    }
  ],
  "urls": [
    "https://www.rent.com/california/los-angeles-apartments"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call abotapi/rent-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Rent.com Scraper $0.8/1K",
        "description": "Extract rental listings from rent.com. Get comprehensive data including monthly rent ranges, full address with GPS, beds/baths/sqft ranges, three contact phone channels, special offers, pet policy, photos, amenities, floor plans, and per-day office hours. Apartments, houses, condos, and townhomes.",
        "version": "1.0",
        "x-build-id": "K44OQyu1fgccg9uU8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~rent-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-rent-com-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/abotapi~rent-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-rent-com-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/abotapi~rent-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-rent-com-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "1. Search mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Search mode = pick city + state + filters below. URL mode = paste any rent.com URL refined in a browser (recommended for filters not exposed below).",
                        "default": "search"
                    },
                    "locations": {
                        "title": "Locations to search",
                        "type": "array",
                        "description": "Cities to search. Add one or more entries — the scraper visits each city. State is the 2-letter US code.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "city": {
                                    "title": "City or Neighborhood",
                                    "type": "string",
                                    "description": "City name (e.g. Los Angeles, Austin) — slugification is automatic.",
                                    "editor": "textfield"
                                },
                                "state": {
                                    "title": "State",
                                    "type": "string",
                                    "description": "Two-letter US state code (e.g. CA, TX, NY).",
                                    "enum": [
                                        "AL",
                                        "AK",
                                        "AZ",
                                        "AR",
                                        "CA",
                                        "CO",
                                        "CT",
                                        "DE",
                                        "FL",
                                        "GA",
                                        "HI",
                                        "ID",
                                        "IL",
                                        "IN",
                                        "IA",
                                        "KS",
                                        "KY",
                                        "LA",
                                        "ME",
                                        "MD",
                                        "MA",
                                        "MI",
                                        "MN",
                                        "MS",
                                        "MO",
                                        "MT",
                                        "NE",
                                        "NV",
                                        "NH",
                                        "NJ",
                                        "NM",
                                        "NY",
                                        "NC",
                                        "ND",
                                        "OH",
                                        "OK",
                                        "OR",
                                        "PA",
                                        "RI",
                                        "SC",
                                        "SD",
                                        "TN",
                                        "TX",
                                        "UT",
                                        "VT",
                                        "VA",
                                        "WA",
                                        "WV",
                                        "WI",
                                        "WY",
                                        "DC"
                                    ],
                                    "editor": "select"
                                }
                            }
                        }
                    },
                    "propertyType": {
                        "title": "Property type",
                        "enum": [
                            "apartments",
                            "houses",
                            "condos",
                            "townhomes"
                        ],
                        "type": "string",
                        "description": "Which kind of rental to search. Encoded into the URL path segment (e.g. apartments → /<state>/<city>-apartments).",
                        "default": "apartments"
                    },
                    "bedrooms": {
                        "title": "Bedrooms",
                        "enum": [
                            "",
                            "studio",
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Exact bedroom count. Rent.com only exposes integer counts (no min/max ranges) on its SEO URLs.",
                        "default": ""
                    },
                    "maxPrice": {
                        "title": "Max monthly rent (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Snapped to the nearest rent.com SEO band: 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 2000. Values above 2000 disable the max-price filter (rent.com has no canonical band above $2000). Optional."
                    },
                    "petFriendly": {
                        "title": "Pet-friendly only",
                        "type": "boolean",
                        "description": "Show only pet-friendly listings. Rent.com URL filter is `pet-friendly` (combines cats AND dogs); separate cat/dog filters are not exposed.",
                        "default": false
                    },
                    "furnished": {
                        "title": "Furnished only",
                        "type": "boolean",
                        "description": "Show only furnished listings.",
                        "default": false
                    },
                    "luxury": {
                        "title": "Luxury only",
                        "type": "boolean",
                        "description": "Show only premium / luxury listings.",
                        "default": false
                    },
                    "dealsOnly": {
                        "title": "Special deals only",
                        "type": "boolean",
                        "description": "Show only listings with active rent specials (e.g. 1 month free).",
                        "default": false
                    },
                    "incomeRestricted": {
                        "title": "Income-restricted only",
                        "type": "boolean",
                        "description": "Show only income-restricted (affordable housing) listings.",
                        "default": false
                    },
                    "urls": {
                        "title": "Search URLs (URL mode)",
                        "type": "array",
                        "description": "One or more full rent.com URLs. Tip: open rent.com in your browser, apply any filters (price band, neighborhood, amenities), then paste the resulting URL here. Multi-URL supported. Filter-mode fields above are ignored. Pagination starts at the page in the URL and walks forward.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on how many SERP pages to walk per location/URL. Each page returns up to ~30 listings.",
                        "default": 2
                    },
                    "maxListings": {
                        "title": "Max listings (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many listings across all locations. 0 = no cap.",
                        "default": 0
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages (richer data, slower)",
                        "type": "boolean",
                        "description": "When ON, fetch each listing's detail page for full description, complete amenity list, individual floor plans, ratings, and pet-policy details. Multiplies request count ~30× per SERP page. Default OFF — SERP cards already include 40+ fields. Detail fetches share the same warm session, so they consume no extra credits.",
                        "default": false
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Rent.com fronts SERP pages with a US-only edge filter; non-US IPs almost always get rejected. Apify residential US passes naturally. Datacenter or non-US proxies will be SLOW or fail entirely."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
