{
  "openapi": "3.0.1",
  "info": {
    "title": "Apartment & Rental Scraper for Rent.com - Prices & Leads",
    "description": "Scrape Rent.com rentals by city, ZIP or neighborhood: rent by bedroom, floor plans and open units, leasing phone, management company or listing agent, deals, photos and demand. Optional property pages, rental market data and a new-listing monitor. Independent tool, not affiliated with Rent.com.",
    "version": "0.1",
    "x-build-id": "z2g8iqkSr0kHVdZSQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~rent-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-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/scrapesage~rent-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-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/scrapesage~rent-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-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",
        "properties": {
          "locations": {
            "title": "Locations (city, state or ZIP code)",
            "type": "array",
            "description": "US places to search, one per line: <code>City, ST</code> (e.g. <code>Austin, TX</code>, <code>St. Louis, Missouri</code>, <code>Brooklyn, NY</code>) or a 5-digit ZIP code (<code>78701</code>). Each place is searched for every selected property type. A city Rent.com spells differently is matched on Rent.com's own city list (\"St. Louis\" is Saint Louis); an unknown place is named on the run card and nothing is billed for it. For a neighborhood, paste its Rent.com page into Start URLs.",
            "items": {
              "type": "string"
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Which Rent.com property types to search in each place.",
            "items": {
              "type": "string",
              "enum": [
                "apartments",
                "houses",
                "condos",
                "townhomes"
              ],
              "enumTitles": [
                "Apartments (apartments)",
                "Houses (houses)",
                "Condos (condos)",
                "Townhouses (townhomes)"
              ]
            },
            "default": [
              "apartments"
            ]
          },
          "startUrls": {
            "title": "Start URLs (Rent.com pages)",
            "type": "array",
            "description": "Optional. Rent.com search pages - a city (<code>https://www.rent.com/texas/austin-apartments</code>), a ZIP code (<code>/zip-78701-apartments</code>) or a neighborhood (<code>/texas/austin-apartments/downtown-austin-neighborhood</code>), with any filters you set on Rent.com (<code>/2-bedroom_max-price-2500</code>) - or property pages (<code>/apartment/...-lc6755889</code>, <code>/r/...-lv3331861364</code>). Searched in addition to the locations above.",
            "items": {
              "type": "string"
            }
          },
          "urlsFromFile": {
            "title": "Import URLs from a file",
            "type": "string",
            "description": "Paste a list of Rent.com URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically."
          },
          "maxResultsPerSearch": {
            "title": "Max listings per city / property type",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Cap on the listings collected from one search (one place x one property type). When you search several places, the whole-run limit below is also shared fairly between them, so a big city never crowds out the others.",
            "default": 120
          },
          "maxResults": {
            "title": "Max listings (whole run)",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Total number of listing rows this run returns (and bills), across every search.",
            "default": 200
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "best",
              "recentlyUpdated",
              "priceLow",
              "priceHigh"
            ],
            "type": "string",
            "description": "The order Rent.com returns listings in - it decides which listings fill your limit.",
            "default": "best"
          },
          "minPrice": {
            "title": "Minimum rent ($/mo)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties with at least one unit renting for this much or more. Applied by Rent.com's own filter and re-checked on every row. Leave empty for no filter."
          },
          "maxPrice": {
            "title": "Maximum rent ($/mo)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties with at least one unit renting for this much or less. Applied by Rent.com's own filter and re-checked on every row. Leave empty for no filter."
          },
          "minBeds": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep only properties offering a unit with at least this many bedrooms. Leave empty for no filter."
          },
          "maxBeds": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep only properties offering a unit with at most this many bedrooms (0 = studios). Leave empty for no filter."
          },
          "minBaths": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep only properties offering a unit with at least this many bathrooms. Leave empty for no filter."
          },
          "petFriendlyOnly": {
            "title": "Pet-friendly only",
            "type": "boolean",
            "description": "Keep only properties Rent.com lists as pet-friendly (its own Pet Friendly filter).",
            "default": false
          },
          "availableNowOnly": {
            "title": "Available now only",
            "type": "boolean",
            "description": "Keep only properties with a unit you can move into now (properties whose first opening is a future date, e.g. \"Available Nov 17\", are left out).",
            "default": false
          },
          "includeNearbyListings": {
            "title": "Include nearby listings",
            "type": "boolean",
            "description": "For a small town Rent.com pads the results with listings from nearby towns. Off (default): only listings inside the place you searched are returned and billed. On: the nearby ones are returned too, marked <code>outsideSearchArea: true</code>.",
            "default": false
          },
          "includeListingDetails": {
            "title": "Include full property details (extra page each)",
            "type": "boolean",
            "description": "Also read each property's own page: full description, total units, every floor plan with its available units (unit number, rent, size, move-in date, deposit), categorized amenities, pet policies and fees, application/admin fees, parking, walk/transit/bike scores, nearby schools with ratings, neighborhoods, nearby places and rent estimates of nearby homes. One extra page per listing, billed as the property details event (named \"Listing details fetched\" on the Pricing tab until 29 October 2026, \"Property details\" after).",
            "default": false
          },
          "includeMarketData": {
            "title": "Include rental market data",
            "type": "boolean",
            "description": "Add one market row per searched place (at the top of the dataset): average rent for studio, 1, 2 and 3 bedrooms with the change against last year, the number of properties and units listed, Rent.com's monthly average-rent history and rent distribution (cities), and nearby cities, neighborhoods and ZIP codes with their average rents.",
            "default": false
          },
          "maxPhotosPerListing": {
            "title": "Max photos per listing",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "How many photo URLs to include per listing (0 = none). The total number of photos is always in photoCount.",
            "default": 30
          },
          "deduplicateListings": {
            "title": "Deduplicate listings",
            "type": "boolean",
            "description": "Return each property only once per run (keyed by its Rent.com listing id), even when several of your searches include it.",
            "default": true
          },
          "enrichContactEmails": {
            "title": "Enrich contacts (retired)",
            "type": "boolean",
            "description": "Retired: Rent.com no longer links property websites, so there is no site to crawl. Every row already carries the leasing phone, the management company and, for agent-listed homes, the listing agent's name and e-mail. Accepted for compatibility; never billed.",
            "default": false
          },
          "monitorMode": {
            "title": "Monitoring mode - only new & re-priced listings",
            "type": "boolean",
            "description": "Remember every listing each search returned and, from the second run on, return ONLY properties that are new to the search or whose starting rent changed (tagged <code>monitorReason</code>: new / priceDrop / priceChange, with <code>previousPrice</code>). The first run returns the current listings as the baseline (<code>initial</code>). Monitor runs read the whole search each time, since Rent.com's order is not by date. Pair it with an Apify Schedule.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that holds the monitor's memory (lowercase letters, digits and hyphens). Use a different name per tracked market to keep histories separate.",
            "default": "rentcom-monitor"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum parallel requests to Rent.com.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave the default: the Actor reads Rent.com directly where it can and switches to residential US proxies whenever Rent.com refuses a request (it refuses most datacenter IPs). Another proxy choice is tried first, with residential as its backup.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}