{
  "openapi": "3.0.1",
  "info": {
    "title": "Realtor.com Search Cheap (Pay-Per-Result)",
    "description": "Property scraper that extracts Realtor.com listings, prices, and agent details so investors and agents can analyze market data and find deals affordably.",
    "version": "0.0",
    "x-build-id": "xLDcDNDjYFLssluUX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kawsar~realtor-Search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kawsar-realtor-Search",
        "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/kawsar~realtor-Search/runs": {
      "post": {
        "operationId": "runs-sync-kawsar-realtor-Search",
        "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/kawsar~realtor-Search/run-sync": {
      "post": {
        "operationId": "run-sync-kawsar-realtor-Search",
        "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": [
          "status"
        ],
        "properties": {
          "status": {
            "title": "Listing status",
            "type": "array",
            "description": "Filter properties by their current listing status. Most common options: for_sale (currently active on the market), sold (past transactions for pulling comps), for_rent (active rental properties), ready_to_build (new construction plans), off_market (not currently listed), other, new_community. Example: ['for_sale', 'ready_to_build'] to capture both active listings and upcoming projects.",
            "items": {
              "type": "string"
            }
          },
          "postal_code": {
            "title": "Postal code",
            "type": "string",
            "description": "Filter properties exactly by a 5-digit US ZIP or postal code. This is the most reliable way to target a specific neighborhood. Example: '90210' for Beverly Hills, CA."
          },
          "state_code": {
            "title": "State code",
            "type": "string",
            "description": "Filter properties broadly by a 2-letter US state code. Best used in combination with other filters to prevent pulling too many random properties across the state. Example: 'CA' for California, 'NY' for New York."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Filter properties by the exact city name. Usually best to combine with state_code incase of duplicate city names across states (like Springfield). Example: 'Los Angeles' or 'Austin'."
          },
          "street_name": {
            "title": "Street name",
            "type": "string",
            "description": "Target properties located on a specific street name. Excellent for local market analysis. Example: 'Sunset Blvd' or 'Main St'."
          },
          "address": {
            "title": "Address",
            "type": "string",
            "description": "Filter for a very specific property address line to find its history or current listing details. Example: '123 Fake Street'."
          },
          "propertyType": {
            "title": "Property type",
            "type": "array",
            "description": "Filter the results by specific property types. Supported options include: apartment, condo_townhome, condo_townhome_rowhome_coop, condo, condos, single_family, multi_family, mobile, land, farm, other. Example: ['single_family', 'condo'] to find only traditional residential homes.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Feature keywords",
            "type": "array",
            "description": "Filter properties by specific amenities or descriptive features. Options include: basement, carport, central_air, den, hardwood_floors, pool, waterfront, ocean_view, fireplace. Example: ['pool', 'central_air'] to find fully-equipped summer homes.",
            "items": {
              "type": "string"
            }
          },
          "beds_min": {
            "title": "Min bedrooms",
            "type": "integer",
            "description": "Minimum threshold for the number of bedrooms. Example: 3 to only return properties with 3 or more bedrooms."
          },
          "beds_max": {
            "title": "Max bedrooms",
            "type": "integer",
            "description": "Maximum threshold for the number of bedrooms. Example: 5 to exclude mega-mansions."
          },
          "baths_min": {
            "title": "Min bathrooms",
            "type": "integer",
            "description": "Minimum threshold for the number of bathrooms (including half-baths). Example: 2 for properties with at least two bathrooms."
          },
          "baths_max": {
            "title": "Max bathrooms",
            "type": "integer",
            "description": "Maximum threshold for the number of bathrooms."
          },
          "list_price_min": {
            "title": "Min list price",
            "type": "integer",
            "description": "Minimum active asking list price in USD. Example: 200000 to drop properties listed below $200k."
          },
          "list_price_max": {
            "title": "Max list price",
            "type": "integer",
            "description": "Maximum active asking list price in USD. Example: 900000 to cap the search at $900k."
          },
          "sold_price_min": {
            "title": "Min sold price",
            "type": "integer",
            "description": "Minimum sold price in USD. Important: This filter only takes effect when status includes 'sold'. Example: 450000."
          },
          "sold_price_max": {
            "title": "Max sold price",
            "type": "integer",
            "description": "Maximum sold price in USD. Important: This filter only takes effect when status includes 'sold'. Example: 850000."
          },
          "sold_date_min": {
            "title": "Sold date from",
            "type": "string",
            "description": "Earliest date the property was sold in YYYY-MM-DD format. Crucial for pulling recent comps. Example: '2023-01-01' to only find sales from 2023 onwards."
          },
          "sold_date_max": {
            "title": "Sold date to",
            "type": "string",
            "description": "Latest date the property was sold in YYYY-MM-DD format. Example: '2023-12-31'."
          },
          "sqft_min": {
            "title": "Min square feet",
            "type": "integer",
            "description": "Minimum interior (living space) square footage. Example: 1500."
          },
          "sqft_max": {
            "title": "Max square feet",
            "type": "integer",
            "description": "Maximum interior (living space) square footage. Example: 4000."
          },
          "lot_sqft_min": {
            "title": "Min lot square feet",
            "type": "integer",
            "description": "Minimum exterior lot size in square feet. Example: 5000."
          },
          "lot_sqft_max": {
            "title": "Max lot square feet",
            "type": "integer",
            "description": "Maximum exterior lot size in square feet. Example: 15000."
          },
          "year_built_min": {
            "title": "Year built from",
            "type": "integer",
            "description": "Filter by the year the construction was completed. Set a minimum year to exclude older homes. Example: 2017 for relatively new buildings."
          },
          "year_built_max": {
            "title": "Year built to",
            "type": "integer",
            "description": "Set a maximum year of completion to target historic or older builds. Example: 1980."
          },
          "hoa_fee_max": {
            "title": "Max HOA fee",
            "type": "integer",
            "description": "Maximum Homeowners Association monthly fee allowed. Example: 300 to find properties with low or no HOA costs. Note: Has no effect if 'No HOA fee' is checked."
          },
          "no_hoa_fee": {
            "title": "No HOA fee",
            "type": "boolean",
            "description": "Check this box to exclusively show properties that have absolutely no Homeowners Association fee attached.",
            "default": false
          },
          "open_house_min": {
            "title": "Open house from",
            "type": "string",
            "description": "Filter for properties with scheduled open houses from this date onward (Format: YYYY-MM-DD). Example: '2024-05-01'."
          },
          "open_house_max": {
            "title": "Open house to",
            "type": "string",
            "description": "Filter for properties with scheduled open houses up until this date (Format: YYYY-MM-DD). Example: '2024-05-15'."
          },
          "pending": {
            "title": "Pending status",
            "type": "boolean",
            "description": "If checked, strictly filter for properties marked as 'Pending' (under contract).",
            "default": false
          },
          "contingent": {
            "title": "Contingent status",
            "type": "boolean",
            "description": "If checked, strictly filter for properties marked as 'Contingent' (under contract but with conditions).",
            "default": false
          },
          "foreclosure": {
            "title": "Foreclosures only",
            "type": "boolean",
            "description": "If checked, strictly isolate properties that are actively in foreclosure. Outstanding for finding distressed deals.",
            "default": false
          },
          "new_construction": {
            "title": "New construction only",
            "type": "boolean",
            "description": "If checked, strictly isolate properties labeled as newly constructed. Good for tracking builder developments.",
            "default": false
          },
          "has_tour": {
            "title": "Has virtual tour",
            "type": "boolean",
            "description": "If checked, only fetch listings that include at least one type of virtual tour media.",
            "default": false
          },
          "matterport": {
            "title": "Requires Matterport 3D",
            "type": "boolean",
            "description": "If checked, only fetch listings explicitly flagged with a Matterport 3D interactive layout.",
            "default": false
          },
          "cats": {
            "title": "Cats allowed (Rentals)",
            "type": "boolean",
            "description": "If checked, strictly filter rental properties to those explicitly allowing cats.",
            "default": false
          },
          "dogs": {
            "title": "Dogs allowed (Rentals)",
            "type": "boolean",
            "description": "If checked, strictly filter rental properties to those explicitly allowing dogs.",
            "default": false
          },
          "sort_field": {
            "title": "Sort results by",
            "enum": [
              "list_date",
              "list_price",
              "sold_price",
              "sold_date",
              "beds",
              "lot_sqft",
              "photo_count",
              "last_update_date"
            ],
            "type": "string",
            "description": "Determine the primary field by which Realtor.com sorts the API response.",
            "default": "list_date"
          },
          "sort_direction": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Determine the sorting sequence: descending (newest/highest first) or ascending (oldest/lowest first).",
            "default": "desc"
          },
          "agent_source_id": {
            "title": "Agent source ID",
            "type": "string",
            "description": "Filter all listings tied exclusively to a specific Agent source ID."
          },
          "selling_agent_name": {
            "title": "Selling agent name",
            "type": "string",
            "description": "Filter by the first and last name of the selling agent. Example: 'John Doe'."
          },
          "source_listing_id": {
            "title": "MLS listing ID",
            "type": "string",
            "description": "Search for a specific listing using its MLS or source system ID. Example: '12345678'."
          },
          "property_id": {
            "title": "Property ID",
            "type": "string",
            "description": "Search directly by the Realtor.com internal property identifier. Example: 'M12345-67890'."
          },
          "fulfillment_id": {
            "title": "Fulfillment ID",
            "type": "string",
            "description": "Filter listings associated with a specific agent fulfillment ID."
          },
          "limit": {
            "title": "Results per pagination page",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "The number of listings fetched in a single API call. Realtor.com supports up to 200 per page. Default is 200 for maximum throughput.",
            "default": 200
          },
          "offset": {
            "title": "Initial page offset",
            "minimum": 0,
            "type": "integer",
            "description": "The exact positional index the scraper starts at. Useful if a previous run stopped early or if you want to skip the first X records. Set to 0 to start at the beginning.",
            "default": 0
          },
          "maxItems": {
            "title": "Maximum total results to scrape",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "The hard cap on total listings the scraper will collect across all paginated API calls. The scraper will stop the moment this number is reached. Maximum allowed is 5000. Use this to control costs. Example: 500 stops at exactly 500 properties.",
            "default": 5000
          },
          "timeoutSecs": {
            "title": "Overall actor timeout (seconds)",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "If the scraper surpasses this runtime duration, it will safely halt and exit. Adjust higher for very large list queries. Example: 300 = 5 minutes.",
            "default": 300
          },
          "requestTimeoutSecs": {
            "title": "Per-request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "How long the scraper waits for Realtor.com's GraphQL server to respond per API query slice. Example: 30 = 30 seconds wait time.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to obscure IP and evade blocking. Note: USA datacenter proxy is set as the default."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}