{
  "openapi": "3.0.1",
  "info": {
    "title": "Rent.com Scraper - Apartments, Rentals & Property Leads",
    "description": "Scrape Rent.com apartment & rental listings by city: prices, beds/baths, sqft, floor plans, amenities, move-in deals, photos, ratings, the leasing office phone & property-management company. Optional rental market data, website email enrichment and monitoring. No login, no key, no browser.",
    "version": "0.1",
    "x-build-id": "gXqSKEN4MtnEOzuxU"
  },
  "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, ST)",
            "type": "array",
            "description": "US locations as `City, ST` (e.g. `Austin, TX`, `Miami, FL`, `Brooklyn, NY`). Each location is scraped for every selected property type. Required unless you use Start URLs.",
            "items": {
              "type": "string"
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Which Rent.com property types to scrape in each location.",
            "items": {
              "type": "string",
              "enum": [
                "apartments",
                "houses",
                "condos",
                "townhomes"
              ],
              "enumTitles": [
                "Apartments",
                "Houses",
                "Condos",
                "Townhomes"
              ]
            },
            "default": [
              "apartments"
            ]
          },
          "startUrls": {
            "title": "Start URLs (Rent.com pages)",
            "type": "array",
            "description": "Optional. Paste Rent.com city/search pages (`https://www.rent.com/texas/austin-apartments`) or property pages (`https://www.rent.com/apartment/hidden-gardens-austin-tx-lc6297303`). Processed in addition to the locations above.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Max listings per city / property type",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Cap the number of listings collected per property type, per location.",
            "default": 120
          },
          "maxResults": {
            "title": "Max listings (whole run)",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Global cap on the total number of listing records emitted in this run.",
            "default": 200
          },
          "minPrice": {
            "title": "Minimum price ($/mo)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only listings whose top advertised rent is at least this much. Leave empty for no filter."
          },
          "maxPrice": {
            "title": "Maximum price ($/mo)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only listings whose starting rent is at most this much. Leave empty for no filter."
          },
          "minBeds": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep only listings offering at least this many bedrooms (0 = studio). Leave empty for no filter."
          },
          "maxBeds": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep only listings whose smallest unit has at most this many bedrooms. Leave empty for no filter."
          },
          "minBaths": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep only listings offering at least this many bathrooms. Leave empty for no filter."
          },
          "petFriendlyOnly": {
            "title": "Pet-friendly only",
            "type": "boolean",
            "description": "Keep only listings flagged pet-friendly (cat/dog).",
            "default": false
          },
          "availableNowOnly": {
            "title": "Available now only",
            "type": "boolean",
            "description": "Keep only listings with units available now / today.",
            "default": false
          },
          "includeListingDetails": {
            "title": "Include full property details (extra page each)",
            "type": "boolean",
            "description": "Open each property's detail page to also capture the full description, the categorized amenity list, total units and the management-company website (the email-crawl wedge). Adds one request per listing — note this fetches a full page over the residential proxy, so it is slower and billed separately.",
            "default": false
          },
          "includeMarketData": {
            "title": "Include rental market data",
            "type": "boolean",
            "description": "Emit one `market` record per searched city: total listings, plus nearby cities & neighborhoods each with their average 1-bed and 2-bed rent and distance. Great for rent comps and market research.",
            "default": false
          },
          "enrichContactEmails": {
            "title": "Enrich contacts (crawl website for emails, phones, socials)",
            "type": "boolean",
            "description": "Opt-in lead enrichment: when a property or management company links its own website, crawl it (home + contact/about) for emails, phone numbers and social links. Most reliable with `Include full property details` on (that is where the website comes from).",
            "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).",
            "default": 30
          },
          "deduplicateListings": {
            "title": "Deduplicate listings",
            "type": "boolean",
            "description": "Emit each property only once per run (keyed by Rent.com listing id), even across property types and locations.",
            "default": true
          },
          "monitorMode": {
            "title": "Monitoring mode — only new & changed listings",
            "type": "boolean",
            "description": "Remember listings already returned and emit ONLY properties that are new or whose price changed since the last run (tagged with `monitorReason`: new / priceDrop / priceChange). Pairs with Apify Schedules to track a rental market over time.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that holds the 'already seen' listing ids + prices for monitoring mode. 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. Lower it if you hit rate limits on very large runs.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Rent.com rate-limits datacenter IPs, so RESIDENTIAL US proxy is the default and is strongly recommended for reliable runs.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}