{
  "openapi": "3.0.1",
  "info": {
    "title": "Propwire Property Scraper",
    "description": "Extract real estate listings from Propwire with property prices, addresses, locations, bedrooms, bathrooms, square footage, property types, and listing URLs. Ideal for real estate investors, property research, market analysis, lead generation, and investment opportunities.",
    "version": "0.0",
    "x-build-id": "ugbd7efrcqD8FKIzN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/shahidirfan~Propwire-Property-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-shahidirfan-Propwire-Property-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/shahidirfan~Propwire-Property-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-shahidirfan-Propwire-Property-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/shahidirfan~Propwire-Property-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-shahidirfan-Propwire-Property-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": {
          "startUrl": {
            "title": "Propwire URL (optional)",
            "type": "string",
            "description": "Paste a Propwire search URL (https://propwire.com/search?filters=...) or a property URL (https://propwire.com/realestate/.../property-details). When the URL contains search filters or a property ID, it takes priority over Location."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, ZIP code, county, state, or street address. Separate multiple locations with a semicolon. Examples: Chicago Heights, IL; 60411; Cook, IL; Illinois.",
            "default": "Chicago Heights, IL"
          },
          "priceMin": {
            "title": "Minimum estimated value (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum Propwire estimated value. Leave empty for no minimum."
          },
          "priceMax": {
            "title": "Maximum estimated value (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum Propwire estimated value. Leave empty for no maximum."
          },
          "bedsMin": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "bedsMax": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "bathsMin": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "number",
            "description": "Minimum number of bathrooms. Decimals are allowed."
          },
          "bathsMax": {
            "title": "Maximum bathrooms",
            "minimum": 0,
            "type": "number",
            "description": "Maximum number of bathrooms. Decimals are allowed."
          },
          "propertyTypes": {
            "title": "Property type",
            "enum": [
              "any",
              "sfr",
              "condo",
              "mobile",
              "mfh_5_plus",
              "mfh_2_to_4",
              "land",
              "commercial",
              "other"
            ],
            "type": "string",
            "description": "Choose one property type, or Any.",
            "default": "any"
          },
          "leadTypes": {
            "title": "Lead type",
            "enum": [
              "any",
              "mls_active",
              "mls_pending",
              "mls_sold",
              "preforeclosure",
              "absentee_owner",
              "out_of_state_owner",
              "cash_buyer",
              "high_equity",
              "low_equity",
              "free_and_clear",
              "tired_landlord",
              "vacant_home",
              "vacant_lot",
              "zombie_property",
              "bank_owned",
              "auction",
              "flipped_property"
            ],
            "type": "string",
            "description": "Choose one lead type, or Any. Use MLS active for active listings with photo galleries.",
            "default": "any"
          },
          "photosOnly": {
            "title": "Only properties with photos",
            "type": "boolean",
            "description": "Return only active MLS listings, which include photo galleries when the source has them. Off-market records do not include photos in Propwire's search response. This overrides Lead type.",
            "default": false
          },
          "ownerOccupied": {
            "title": "Owner occupied",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Filter by owner occupancy.",
            "default": "any"
          },
          "ownerType": {
            "title": "Owner type",
            "enum": [
              "any",
              "individual",
              "company",
              "bank"
            ],
            "type": "string",
            "description": "Filter by the recorded owner type.",
            "default": "any"
          },
          "results_wanted": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of properties to save to the dataset.",
            "default": 20
          },
          "max_pages": {
            "title": "Maximum pages",
            "minimum": 1,
            "type": "integer",
            "description": "A safety cap on the number of result pages to request. Each page contains up to 250 properties.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "No proxy by default. Enable the Apify residential proxy if Propwire challenges the session.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}