{
  "openapi": "3.0.1",
  "info": {
    "title": "Apartments.com Scraper — Rentals, Property Managers & Phones",
    "description": "Apartments.com scraper for US rentals — rent by bed count, concessions, availability, leasing phone and the property management company. Enrich for 66 fields: amenities, floor plans, units, schools, transit, walk scores, fees, photos. Managers mode returns a company directory.",
    "version": "0.1",
    "x-build-id": "bLFLKvBAgm3NVO11o"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/juramoshkov~apartments-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-juramoshkov-apartments-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/juramoshkov~apartments-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-juramoshkov-apartments-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/juramoshkov~apartments-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-juramoshkov-apartments-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "locations",
              "radius",
              "managers"
            ],
            "type": "string",
            "description": "locations — one row per rental building for each ZIP or city. radius — the same, around a map point. managers — one row per property-management company, rolled up from the buildings it operates.",
            "default": "locations"
          },
          "locations": {
            "title": "ZIP codes or cities",
            "type": "array",
            "description": "ZIP code (78701) or \"City, ST\" (Austin, TX). Used by locations and managers modes. Defaults to 78701 (downtown Austin) so a run with no input still returns data.",
            "default": [
              "78701"
            ],
            "items": {
              "type": "string"
            }
          },
          "geoPoint": {
            "title": "Centre point (lat, lon)",
            "type": "string",
            "description": "Radius mode only. Paste coordinates as \"30.2672, -97.7431\" — the format Google Maps copies."
          },
          "radiusMiles": {
            "title": "Radius (miles)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Radius mode only. Defaults to 5 miles.",
            "default": 5
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Buildings to return per run (in managers mode, buildings to read before rolling up).",
            "default": 50
          },
          "minBeds": {
            "title": "Min beds",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only buildings offering at least this many bedrooms. 0 includes studios."
          },
          "maxBeds": {
            "title": "Max beds",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only buildings offering at most this many bedrooms."
          },
          "minBaths": {
            "title": "Min baths",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only buildings offering at least this many bathrooms."
          },
          "minRent": {
            "title": "Min rent (USD/month)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest monthly rent to include, in USD."
          },
          "maxRent": {
            "title": "Max rent (USD/month)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest monthly rent to include, in USD."
          },
          "minSqft": {
            "title": "Min size (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest unit size to include, in square feet."
          },
          "maxSqft": {
            "title": "Max size (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest unit size to include, in square feet."
          },
          "pets": {
            "title": "Pet policy",
            "enum": [
              "none",
              "dog",
              "cat",
              "dog_and_cat"
            ],
            "type": "string",
            "description": "Keep only buildings allowing the selected pets."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "default",
              "lowest_rent",
              "highest_rent",
              "newest",
              "recently_updated",
              "has_video"
            ],
            "type": "string",
            "description": "Order the provider returns buildings in. Matters when combined with Max results, since it decides which buildings you get.",
            "default": "default"
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Provider-validated amenity slugs. An unknown value fails the request, so leave empty unless you know the exact slug.",
            "items": {
              "type": "string"
            }
          },
          "onlyDiscounted": {
            "title": "Only buildings running a concession",
            "type": "boolean",
            "description": "Keep only buildings currently discounting rent (a non-empty deal percentage). Useful for rent-negotiation and market-softness research.",
            "default": false
          },
          "enrich": {
            "title": "Enrich each building with the full record",
            "type": "boolean",
            "description": "Fetch the complete record per building — 66 fields instead of 27: amenities, floor plans, available units, schools, transit, five walk/transit/bike/car/quiet scores, itemised fees, pet and parking policies, office hours, photo gallery, year built, unit count and lease terms. Costs one extra upstream request per building and is billed as LISTING_ENRICHED instead of LISTING_SCRAPED.",
            "default": false
          },
          "requestDelayMs": {
            "title": "Request delay (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Pause between upstream requests. 0 runs as fast as your provider plan allows.",
            "default": 300
          },
          "rapidApiKey": {
            "title": "RapidAPI key (optional)",
            "type": "string",
            "description": "Bring your own provider key. Leave empty to use the Actor's key."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}