# Propwire.com \[From $1💰] Leads Scraper (`memo23/propwire-leads-scraper`) Actor

Get comprehensive property data: estimated equity, foreclosure status (auction dates/lenders), mortgage and transfer history, owner portfolios, and tax assessments. Access detailed building specs like SF and year built, plus motivated seller lead types, including pre-foreclosures and high equity.

- **URL**: https://apify.com/memo23/propwire-leads-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 291 total users, 47 monthly users, 100.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Overview

Get comprehensive property data: estimated equity, foreclosure status (auction dates/lenders), mortgage and transfer history, owner portfolios, and tax assessments. Access detailed building specs like SF and year built, plus motivated seller lead types including pre-foreclosures and high equity.

The **Propwire.com Scraper** is a specialized tool designed to extract comprehensive real estate listings from [Propwire](https://propwire.com/), a leading platform for finding off-market property deals. This scraper delivers rich, structured data encompassing every critical aspect of property listings to support informed real estate investment and analysis.

With this scraper, users gain access to **detailed property information** including addresses, property types, owner details, and financial estimates. The tool captures **comprehensive property data** with full details about listings across various states and cities.

**Property specifications** are thoroughly extracted, including lead types (pre-foreclosure, absentee owner, etc.), estimated values, equity information, and property characteristics. Detailed geographic information and market trends provide additional context.

The scraper excels at capturing **listing details**, including owner names, mailing addresses, tax information, and mortgage history for comprehensive real estate research.

**Financial details** receive special attention with dedicated fields for estimated equity, loan-to-value ratios, and tax assessments, enabling precise investment analysis.

Additional **metadata and classification** includes property classifications, construction dates, and lot sizes for comprehensive real estate market analysis.

Whether you're a real estate investor searching for motivated sellers, a wholesaler looking for new leads, or a professional analyzing the housing market, this scraper provides the complete, structured dataset needed for professional-grade real estate exploration and deal discovery.

***

### 🧠 NEW: AI Market Intelligence — leads → an investment read on every ZIP

Flip on **`marketAnalysis`** and the scraper doesn't just return property leads — it returns a **market read on every ZIP code it scrapes**. After the crawl, one AI pass per ZIP (backed by live web research) computes rental economics, short-let potential, demand drivers and risks from that run's own properties:

> *ZIP 32819 · Orlando, FL, real run →* avg local rent **$2,100/mo** · short-let **ADR $193 · 58% occupancy · ~$5,300/mo est. revenue** · demand: *Universal's Epic Universe (opened May 2025) sits in 32819, which leads Orlando short-let revenue at $45,984/yr per listing across 1,377 active units* · risks: *occupancy capped at 4 guests regardless of bedrooms, 51% owner-occupancy requirement, $275 first-year registration, supply up 102% YoY*.

One `marketAnalysis` row per ZIP **with cited sources** (`demandSignals`, `risks`, `shortLet.adr` / `occupancyPct` / `revpar` / `estMonthlyRevenue`, `grossYieldPct`, `sources`, `summary`) — the "is this ZIP actually worth buying in" layer on top of the lead list. Paid plans only, **$0.15 per ZIP analyzed**, up to 8 ZIPs per run. ZIPs with fewer than 3 scraped properties are skipped and never billed. Results are cached for 90 days, so a repeat lookup of the same ZIP comes back instantly.

***

### Features

- **Smart Search Detection**:
  - Automatically detects search results pages vs detailed property pages
  - Handles complex filters including location, lead types, and property values

- **Comprehensive Property Data**:
  - Extracts property addresses, owner information, and mailing details
  - Captures lead types, estimated equity, and market values
  - Includes mortgage history and tax assessment data

- **Efficient Data Extraction**:
  - Handles both search result listings and detailed property views
  - Automatically retries failed requests for seamless scraping

- **Geographic Intelligence**:
  - Supports multi-state and city-specific searches
  - Extracts precise location data for mapping and market analysis

- **Advanced Filtering Support**:
  - Supports scraping results based on specific lead types (e.g., pre-foreclosure)
  - Filters by property type, estimated value, and more

***

### How to Use

1. **Set Up**: Ensure you have an Apify account and access to the Apify platform.
2. **Provide Input Data**: Input specific scraping parameters, such as search URLs or direct property links.
3. **Adjust Scraper Settings**: Configure settings like `maxConcurrency`, `minConcurrency`, and `maxRequestRetries` to optimize performance.
4. **Run the Scraper**: Execute the scraper on the Apify platform.
5. **Download Results**: Export the scraped property data in your preferred format (JSON, CSV, Excel).

#### Usage Limitations

**Free Users**: Non-paying users are limited to scraping **10 properties** per run and can only use **1 start URL**. To access unlimited scraping and all features, please upgrade to a paid Apify account.

**Paid Users**: Enjoy unlimited property scraping, multiple start URLs, and full access to all scraper features.

***

### Input Configuration

To use the scraper, configure the input parameters as follows:

```json
{
    "startUrls": [
        {
            "url": "https://propwire.com/search?filters=%7B%22locations%22%3A%5B%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22AL%22%2C%22title%22%3A%22Alabama%2C%20USA%22%2C%22stateName%22%3A%22Alabama%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22GA%22%2C%22title%22%3A%22Georgia%2C%20USA%22%2C%22stateName%22%3A%22Georgia%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22FL%22%2C%22title%22%3A%22Florida%2C%20USA%22%2C%22stateName%22%3A%22Florida%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22SC%22%2C%22title%22%3A%22South%20Carolina%2C%20USA%22%2C%22stateName%22%3A%22South%20Carolina%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22NC%22%2C%22title%22%3A%22North%20Carolina%2C%20USA%22%2C%22stateName%22%3A%22North%20Carolina%22%7D%5D%2C%22lead_type%22%3A%5B%22preforeclosure%22%5D%2C%22property_type%22%3A%5B%22commercial%22%2C%22mfh_5_plus%22%5D%2C%22estimated_value%22%3A%7B%22min%22%3A3000000%7D%7D"
        },
        {
            "url": "https://propwire.com/realestate/4055-Britt-Rd/51608674/property-details"
        }
    ],
    "maxItems": 100,
    "maxConcurrency": 10,
    "minConcurrency": 1,
    "maxRequestRetries": 3,
    "proxy": {
        "useApifyProxy": true
    }
}
```

#### Input Fields Explanation

- **Start URLs** (`startUrls`): The URLs from which the scraper will begin extracting data. The scraper accepts both:
  - **Search URLs**: Links to filtered search results (e.g., by state, lead type, or value)
  - **Property Detail URLs**: Direct links to specific property detail pages
- **Max Items** (`maxItems`): Maximum number of properties to scrape per run. Default is `100`.
- **Max Concurrency** (`maxConcurrency`): Maximum number of pages processed simultaneously. Default is `10`.
- **Min Concurrency** (`minConcurrency`): Minimum number of pages processed simultaneously. Default is `1`.
- **Max Request Retries** (`maxRequestRetries`): Number of retries for failed requests. Default is `3`.
- **Proxy Configuration** (`proxy`): Settings for reliable and anonymous scraping. Default uses Apify's Proxy.

***

### Output Structure

The scraper produces a JSON output with detailed information for each listing. Propwire search now maps `/search?filters=...` URLs to the Core API, so the output keeps the historical field names where possible and may also include extra fields when Propwire returns them (for example `skip_trace`). Below is a complete explanation of the common fields:

```json
{
  "days_on_market": null,
  "id": 171180840,
  "last_sold_date": "2021-06-17",
  "last_sold_price": 32300000,
  "current_mortgages": null,
  "equity_details": {
      "estimated_equity": 17739350,
      "estimated_equity_percentage": 100,
      "estimated_value": 17739350,
      "estimated_price_per_sf": null,
      "estimated_zip_price_per_sf": null
  },
  "lead_type": [
      "FREE_AND_CLEAR",
      "HIGH_EQUITY",
      "OUT_OF_STATE_OWNER",
      "PREFORECLOSURE"
  ],
  "lead_type_details": [],
  "skip_trace": null,
  "foreclosure_details": {
      "active": true,
      "auction_date": "2025-12-02",
      "auction_time": null,
      "auction_city_state": null,
      "auction_courthouse": null,
      "auction_location": "Dekalb County Courthouse",
      "borrower_name": "TUCKER EQUITIES LLC AND MH TUCKER LLC",
      "case_number": null,
      "default_amount": 0,
      "foreclosure_id": 120326820,
      "foreclosure_type": "NOT DECLARED",
      "lender_name": "Arbor Realty Sr, Inc",
      "judgment_amount": 0,
      "judgment_date": null,
      "notice_type": "NOTICE OF TRUSTEE SALE",
      "notice_type_code": "NTS",
      "opening_bid": 0,
      "original_loan_amount": 0,
      "recording_date": "2025-11-06",
      "servicer_name": null,
      "trustee_address": "1075 Peachtree Street, N.E., Suite 3000, Atlanta, Ga 30309",
      "trustee_name": "ERICH N. DURLACHERBURR & FORMAN LLP",
      "trustee_phone": "4048153000",
      "trustee_reference_number": null
  },
  "listhub": null,
  "mls_history": null,
  "mortgage_history": [
      {
          "transactionid": 965209982,
          "deed_type": "Limited Warranty Deed",
          "transaction_type_code": 40,
          "transaction_type": "Transfer",
          "recording_date": "2021-06-17",
          "document_date": "2021-06-17",
          "multiple_parcels": null,
          "grantee_name": "Tucker Equities Llc, Mh Tucker Llc",
          "mortgage_document_number_formatted": "0029479166",
          "mortgage_document_number_legacy": "0029479166",
          "mortgage_instrument_number": "29479/166",
          "mortgage_book": null,
          "mortgage_page": null,
          "mortgage_amount": 28400000,
          "mortgage_adjustable": false,
          "mortgage_assumable": false,
          "mortgage_interest_rate": 0,
          "mortgage_interest_rate_type": "Unknown (Interest Rate Estimated)",
          "mortgage_lender_name": "ARBOR REALTY SENIOR",
          "mortgage_lender_code": null,
          "mortgage_lender_type": null,
          "mortgage_loan_type": "Commercial",
          "mortgage_loan_type_code": 103,
          "mortgage_loan_maturity_date": "2024-01-01",
          "mortgage_recording_date": "2021-06-17",
          "mortgage_term": 31,
          "mortgage_term_type": "MONTH",
          "recorder_position": 1
      },
      {
          "transactionid": 450263254,
          "deed_type": "Grant Deed",
          "transaction_type_code": 40,
          "transaction_type": "Transfer",
          "recording_date": "2014-10-03",
          "document_date": "2014-09-30",
          "multiple_parcels": null,
          "grantee_name": "Marquise Pointe Holdings Llc",
          "mortgage_document_number_formatted": "245990282",
          "mortgage_document_number_legacy": "245990282",
          "mortgage_instrument_number": null,
          "mortgage_book": null,
          "mortgage_page": null,
          "mortgage_amount": 5000000,
          "mortgage_adjustable": false,
          "mortgage_assumable": false,
          "mortgage_interest_rate": null,
          "mortgage_interest_rate_type": "Unknown (Actual Interest Rate)",
          "mortgage_lender_name": "UBS R/E SECS",
          "mortgage_lender_code": "O",
          "mortgage_lender_type": "Mortgage Electronic Registration System (Mers)",
          "mortgage_loan_type": null,
          "mortgage_loan_type_code": null,
          "mortgage_loan_maturity_date": null,
          "mortgage_recording_date": "2014-10-03",
          "mortgage_term": null,
          "mortgage_term_type": null,
          "recorder_position": 1
      },
      {
          "transactionid": 315016341,
          "deed_type": "Grant Deed",
          "transaction_type_code": 10,
          "transaction_type": "Construction Loan",
          "recording_date": "2011-08-10",
          "document_date": "2011-08-05",
          "multiple_parcels": null,
          "grantee_name": "Marquise Pointe Llc",
          "mortgage_document_number_formatted": "22579-0793",
          "mortgage_document_number_legacy": null,
          "mortgage_instrument_number": null,
          "mortgage_book": null,
          "mortgage_page": null,
          "mortgage_amount": 3466000,
          "mortgage_adjustable": false,
          "mortgage_assumable": false,
          "mortgage_interest_rate": null,
          "mortgage_interest_rate_type": "Fixed Rate (Interest Rate Estimated)",
          "mortgage_lender_name": "BRANCH BANKING & TRUST CO",
          "mortgage_lender_code": "B",
          "mortgage_lender_type": "Bank",
          "mortgage_loan_type": "Building Or Construction",
          "mortgage_loan_type_code": 3,
          "mortgage_loan_maturity_date": null,
          "mortgage_recording_date": "2011-08-10",
          "mortgage_term": null,
          "mortgage_term_type": null,
          "recorder_position": 1
      }
  ],
  "owner_details": {
      "ownership_length_in_months": 55,
      "ownership_length_in_years": 5,
      "owner_mailing_address_details": {
          "address": "211 Boulevard Of Americas Ste 204",
          "address_format": "H",
          "carrier_route": "C086",
          "city": "Lakewood",
          "county": "Ocean",
          "fips": "34029",
          "house": "211",
          "label": "211 Boulevard Of Americas Ste 204, Lakewood, NJ 08701",
          "state": "NJ",
          "street": "Boulevard Of Americas",
          "street_type": null,
          "zip": "08701",
          "zip4": "4777",
          "owner_mail_privacy": null
      },
      "owner_names": [
          "Tucker Equities Llc",
          "Mh Tucker Llc"
      ],
      "owner_occupied": false,
      "owner_relationship_type": null,
      "owner_type": [
          "COMPANY"
      ]
  },
  "owner_portfolio_details": {
      "linked_properties": [
          315962,
          9499871,
          27020314,
          29775556,
          54102159,
          171180840,
          171533298,
          175187922,
          190169645,
          196446289,
          198775874,
          204101424,
          204108534,
          204681454,
          205529977,
          208961928
      ],
      "portfolio_estimated_equity": "96693739.02",
      "portfolio_estimated_mortgage_balance": "31046105.98",
      "portfolio_value": 127739845,
      "properties_owned": 16,
      "properties_purchased_last_6_months": "NEED TO MAP",
      "properties_purchased_last_12_months": "NEED TO MAP"
  },
  "parcel_details": {
      "apn": "18 125 01 016",
      "apn_unformatted": "18 125 01 016",
      "area_lot_depth": 0,
      "area_lot_width": 0,
      "census_block": 4002,
      "census_block_group": 4,
      "census_tract": 21913,
      "geolocation": {
          "geocode_quality": "Rooftop",
          "latitude": "33.819468",
          "longitude": "-84.175351"
      },
      "land_use": "COMMERCIAL",
      "legal_description": "CITY/MUNI/TWP:TUCKER",
      "lot_number": "16",
      "lot_size_sf": 1139530,
      "lot_size_acres": "26.16",
      "property_class": null,
      "property_type": "MFH_5_PLUS",
      "property_use_code": "357",
      "property_use_code_description": "Garden Apt, Court Apt (5+ Units)",
      "subdivision": null,
      "topography_type": null,
      "view_description": "Unknown",
      "zoning": "RM100"
  },
  "property_details": {
      "address_details": {
          "address": "1313 Stone Mill Way",
          "carrier_route": "C021",
          "city": "Stone Mountain",
          "congressional_district": 120,
          "county": "De Kalb",
          "fips": "13089",
          "house": "1313",
          "jurisdiction": "De Kalb",
          "label": "1313 Stone Mill Way, Stone Mountain, GA, 30083",
          "state": "GA",
          "street": "Stone Mill",
          "street_type": "Way",
          "zip": "30083",
          "zip4": "1613",
          "property_address_privacy": null
      },
      "basement_details": {
          "basement_finished_percentage": 0,
          "basement_sf": 0,
          "basement_sf_finished": null,
          "basement_sf_unfinished": null,
          "basement_type": "NO BASEMENT"
      },
      "building_details": {
          "building_style": null,
          "building_area_sf": 304500,
          "construction": "Unknown",
          "exterior_type": "Siding",
          "fire_resistance_class": null,
          "foundation": null,
          "interior_style": null,
          "living_area_sf": 16536,
          "roof_construction": null,
          "roof_material": null,
          "stories": 2,
          "units": 276,
          "year_built": 1972
      },
      "building_interior_details": {
          "area_1st_floor_sf": 134124,
          "area_2nd_floor_sf": 0,
          "area_upper_floors_sf": 0,
          "attic": null,
          "attic_area": 0,
          "bathrooms": 0,
          "bedrooms": 0,
          "cooling_type": "Yes",
          "partial_bathrooms": 0,
          "fireplace": true,
          "fireplace_type": "Yes",
          "fireplace_count": 0,
          "heating_type": "None",
          "heating_fuel": null,
          "plumbing_fixtures_count": null,
          "room_details": {
              "rooms_count": 0,
              "bonus_room": null,
              "breakfast_nook": null,
              "cellar": null,
              "exercise_room": null,
              "familiy_room": null,
              "game_room": null,
              "great_room": null,
              "hobby_room": null,
              "laundry_room": null,
              "media_room": null,
              "office": null,
              "office_area_sf": null,
              "safe_room": null,
              "sitting_room": null,
              "study": null,
              "sun_room": null,
              "utility_roomm": null,
              "utility_area": null,
              "wine_cellar": null
          },
          "safety_fire_sprinklers": null
      },
      "building_exterior_details": {
          "balcony": null,
          "balcony_area_sf": null,
          "breezeway": null,
          "deck": null,
          "deck_area_sf": 0,
          "driveway_area_sf": 0,
          "driveway_material": null,
          "patio": null,
          "patio_area_sf": 0,
          "porch": true,
          "porch_area_sf": 2848,
          "porch_type": null,
          "storm_shutters": null
      },
      "exterior_amenities": {
          "bath_house": null,
          "bath_house_area_sf": null,
          "boat_access": null,
          "boat_house": null,
          "boat_house_area_sf": null,
          "boat_lift": null,
          "canopy": null,
          "canopy_area_sf": null,
          "community_rec_room": null,
          "courtyard": null,
          "courtyard_area_sf": null,
          "fence": null,
          "fence_area_sf": 0,
          "fence_type": null,
          "gazebo": null,
          "gazebo_area_sf": null,
          "golf_course_green": null,
          "guest_house": null,
          "guest_house_area_sf": null,
          "hot_tub": null,
          "outdoor_kitchen_fireplace": null,
          "pergola": null,
          "pond": null,
          "pool": true,
          "pool_area_sf": 1100,
          "pool_type": "Type Not Specified",
          "pool_house": null,
          "pool_house_area_sf": null,
          "sauna": null,
          "sport_court": null,
          "sprinklers": null,
          "tennis_court": null,
          "water_feature": null
      },
      "interior_amenities": {
          "acceessibility_elevator": null,
          "accessibility_handicap": null,
          "central_vacuum": null,
          "escalator": null,
          "intercom_system": null,
          "security_alarm": null,
          "sound_system": null
      },
      "garage_details": {
          "garage_area_sf": 0,
          "garage_area_sf_finished": null,
          "garage_area_sf_unfinished": null,
          "garage_type": null
      },
      "other_structures": {
          "buildings_count": 23,
          "cabin": null,
          "cabin_area_sf": null,
          "granary": null,
          "granary_area_sf": null,
          "green_house": null,
          "green_house_area_sf": null,
          "kennel": null,
          "kennel_area_sf": null,
          "lean_to": null,
          "lean_to_area_sf": null,
          "loading_platform": null,
          "loading_platform_area_sf": null,
          "milk_house": null,
          "milk_house_area_sf": null,
          "pole_structure": null,
          "pole_structure_area_sf": null,
          "poultry_house": null,
          "poultry_house_area_sf": null,
          "quonset": null,
          "quonset_area_sf": null,
          "shed": null,
          "shed_area_sf": null,
          "silo": null,
          "silo_area_sf": null,
          "stable": null,
          "stable_area_sf": null,
          "storage_building": null,
          "storage_building_area_sf": null,
          "utility_building": null,
          "utility_building_area_sf": null
      },
      "parking_details": {
          "carport": null,
          "carport_area_sf": null,
          "parking_spaces": 0,
          "rv_parking": null
      },
      "utility_details": {
          "sewage_type": null,
          "water_source": null
      }
  },
  "tax_details": {
      "assessment_year": 2025,
      "assessed_total_value": 17391520,
      "assessed_improvement_value": 15132560,
      "assessed_land_value": 2258960,
      "assessed_improvement_percentage": 87,
      "previous_assessed_total_value": 4687360,
      "market_total_value": 43478800,
      "market_land_value": 5647400,
      "market_improvement_value": 37831400,
      "market_improvement_percentage": 87,
      "tax_billed_amount": "225027.40",
      "tax_year": 2025,
      "tax_exemptions": {
          "home_owner": null,
          "disabled": null,
          "senior": null,
          "veteran": null,
          "widow": null,
          "other": null
      },
      "tax_delinquent_year": null
  },
  "transfer_history": [
      {
          "transactionid": 965209982,
          "arms_length_transaction": true,
          "deed_type": "LIMITED WARRANTY DEED",
          "transaction_type_code": 40,
          "transaction_type": "Transfer",
          "recording_date": "2021-06-17",
          "document_date": "2021-06-17",
          "multiparcel_transaction": null,
          "transfer_amount": 32300000,
          "grantor_name": "Tucker Square 670 Llc",
          "grantee_name": "Tucker Equities Llc, Mh Tucker Llc"
      },
      {
          "transactionid": 785252131,
          "arms_length_transaction": true,
          "deed_type": "GRANT DEED",
          "transaction_type_code": 40,
          "transaction_type": "Transfer",
          "recording_date": "2018-03-28",
          "document_date": "2018-02-28",
          "multiparcel_transaction": null,
          "transfer_amount": 11845000,
          "grantor_name": "Greentree R/E Svcs Llc",
          "grantee_name": "Tucker Square 670 Llc"
      },
      {
          "transactionid": 450263254,
          "arms_length_transaction": false,
          "deed_type": "GRANT DEED",
          "transaction_type_code": 40,
          "transaction_type": "Transfer",
          "recording_date": "2014-10-03",
          "document_date": "2014-09-30",
          "multiparcel_transaction": null,
          "transfer_amount": 6348000,
          "grantor_name": "Marquise Pointe Llc",
          "grantee_name": "Marquise Pointe Holdings Llc"
      },
      {
          "transactionid": 315016341,
          "arms_length_transaction": true,
          "deed_type": "GRANT DEED",
          "transaction_type_code": 10,
          "transaction_type": "Construction Loan",
          "recording_date": "2011-08-10",
          "document_date": "2011-08-05",
          "multiparcel_transaction": null,
          "transfer_amount": 4100000,
          "grantor_name": "Smr Property Investments Llc",
          "grantee_name": "Marquise Pointe Llc"
      },
      {
          "transactionid": 314625751,
          "arms_length_transaction": false,
          "deed_type": "QUIT CLAIM DEED",
          "transaction_type_code": 40,
          "transaction_type": "Transfer",
          "recording_date": "2011-08-10",
          "document_date": "2011-08-05",
          "multiparcel_transaction": null,
          "transfer_amount": 0,
          "grantor_name": "Smr Property Investment Llc",
          "grantee_name": "Marquse Pointe Llc"
      }
  ],
  "images": {
      "urls": []
  },
  "basicInfo": {
      "days_on_market": null,
      "listing_key": null,
      "id": 171180840,
      "address": {
          "address": "1313 Stone Mill Way",
          "city": "Stone Mountain",
          "state": "GA",
          "zip": "30083"
      },
      "auction_date": "2025-12-02",
      "auction_time": null,
      "bedrooms": 0,
      "bathrooms": 0,
      "basement_details": {
          "basement_finished_percentage": 0,
          "basement_sf": 0,
          "basement_sf_finished": null,
          "basement_sf_unfinished": null,
          "basement_type": "NO BASEMENT"
      },
      "building_area_sf": 304500,
      "company_owned": true,
      "cooling_type": "Yes",
      "estimated_equity": 17739350,
      "estimated_equity_percentage": 100,
      "estimated_value": 17739350,
      "estimated_ltv": null,
      "estimated_price_per_sf": null,
      "estimated_zip_price_per_sf": null,
      "fireplace": true,
      "fireplace_type": "Yes",
      "fireplace_count": 0,
      "foreclosure": true,
      "garage_details": {
          "garage_area_sf": 0,
          "garage_area_sf_finished": null,
          "garage_area_sf_unfinished": null,
          "garage_type": "Unknown"
      },
      "geo_location": {
          "latitude": "33.819468",
          "longitude": "-84.175351"
      },
      "government_owned": null,
      "heating_type": "None",
      "heating_fuel": "Unknown",
      "individual_owned": false,
      "investor_owned": null,
      "last_sold_date": "2021-06-17",
      "last_sold_price": 32300000,
      "lead_type": {
          "absentee_owner": null,
          "adjustable_loan": null,
          "assumable_loan": null,
          "auction": false,
          "bank_owned": false,
          "cash_buyer": false,
          "empty_nester": null,
          "flipped_property": false,
          "free_and_clear": true,
          "high_equity": true,
          "low_equity": false,
          "negative_equity": false,
          "intrafamily_transfer": false,
          "mls_active": false,
          "mls_pending": false,
          "mls_failed": false,
          "mls_sold": false,
          "out_of_state_owner": true,
          "preforeclosure": true,
          "preprobate": false,
          "private_lender": false,
          "tired_landlord": false,
          "vacant_home": false,
          "vacant_lot": false,
          "zombie_property": false,
          "code_violation": false,
          "lien_tax": false,
          "lien_misc": false,
          "divorce": false,
          "bankruptcy": false,
          "abandoned_homes": false,
          "tax_dodgers": false,
          "ultra_liens": false,
          "ultra_violations": false,
          "bargain_properties": true,
          "desperate_landlords": false,
          "cash_flow_rentals": false,
          "creative_financing": false,
          "hidden_gems_mls": false,
          "sub_to_mls": false,
          "sub_to_off_market": false
      },
      "living_area_sf": 16536,
      "lot_size_acres": "26.16",
      "lot_size_sf": 1139530,
      "mls_attom_last_status": null,
      "mls_attom_last_status_date": null,
      "mls_attom_price": null,
      "mls_first_photo_url": null,
      "mls_list_date": null,
      "mls_list_price": null,
      "mls_list_price_per_sf": null,
      "mls_sold_date": null,
      "mls_sold_price": null,
      "mls_sold_price_per_sf": null,
      "owner_name": [
          "TUCKER EQUITIES LLC",
          "MH TUCKER LLC"
      ],
      "owner_mailing_address": {
          "owners_mailing_address": "211 BOULEVARD OF AMERICAS STE 204",
          "owners_mailing_city": "LAKEWOOD",
          "owners_mailing_state": "NJ",
          "owners_mailing_zip": "08701",
          "owners_mailing_zip4": "4777",
          "owners_mail_privacy": null
      },
      "owner_occupied": false,
      "months_of_ownership": 55,
      "years_of_ownership": 5,
      "pool": "Yes",
      "pool_area_sf": 1100,
      "pool_type": "Type Not Specified",
      "property_type": "MFH_5_PLUS",
      "tax_assessed_values": {
          "year_assessed": 2025,
          "total": 17391520,
          "improvements": 15132560,
          "land": 2258960,
          "improvements_percentage": 87,
          "previous_total": 4687360
      },
      "trust_owned": null,
      "units": 276,
      "year_built": 1972,
      "listhub": null,
      "scrapedAt": "2025-12-24T20:55:51.587Z",
      "originalSearchUrl": "https://propwire.com/search?filters=%7B%22locations%22%3A%5B%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22AL%22%2C%22title%22%3A%22Alabama%2C%20USA%22%2C%22stateName%22%3A%22Alabama%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22GA%22%2C%22title%22%3A%22Georgia%2C%20USA%22%2C%22stateName%22%3A%22Georgia%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22FL%22%2C%22title%22%3A%22Florida%2C%20USA%22%2C%22stateName%22%3A%22Florida%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22SC%22%2C%22title%22%3A%22South%20Carolina%2C%20USA%22%2C%22stateName%22%3A%22South%20Carolina%22%7D%2C%7B%22searchType%22%3A%22T%22%2C%22state%22%3A%22NC%22%2C%22title%22%3A%22North%20Carolina%2C%20USA%22%2C%22stateName%22%3A%22North%20Carolina%22%7D%5D%2C%22lead_type%22%3A%5B%22preforeclosure%22%5D%2C%22property_type%22%3A%5B%22commercial%22%2C%22mfh_5_plus%22%5D%2C%22estimated_value%22%3A%7B%22min%22%3A3000000%7D%7D"
  }
}
```

#### Field Descriptions

##### General Listing Information

- **days\_on\_market**: Number of days the property has been listed on the market (null if not currently listed).
- **id**: Unique internal identifier for the property listing.
- **last\_sold\_date**: The date when the property was most recently sold.
- **last\_sold\_price**: The sale price from the most recent transaction.
- **current\_mortgages**: Information about active mortgages currently tied to the property.
- **listhub**: Data related to ListHub syndication (if applicable).
- **mls\_history**: Historical record of MLS listings for the property.
- **images**:
  - **urls**: An array of URLs pointing to property photos.
- **scrapedAt**: Timestamp indicating when the data was extracted by the scraper.
- **originalSearchUrl**: The specific Propwire URL used to discover this property.

##### Equity & Valuation

- **equity\_details**:
  - **estimated\_equity**: The calculated dollar amount of equity (Value minus Debt).
  - **estimated\_equity\_percentage**: The percentage of equity relative to the property's estimated value.
  - **estimated\_value**: The current estimated market value of the property.
  - **estimated\_price\_per\_sf**: Estimated value divided by the building's square footage.
  - **estimated\_zip\_price\_per\_sf**: Average price per square foot for the property's specific zip code.

##### Lead Information

- **lead\_type**: An array of motivated seller categories (e.g., `FREE_AND_CLEAR`, `HIGH_EQUITY`, `OUT_OF_STATE_OWNER`, `PREFORECLOSURE`).
- **lead\_type\_details**: Specific metadata or notes regarding the lead classification. When the Core API returns `null`, the actor normalizes it to `[]` for consistency.
- **skip\_trace**: Extra Core API field when available. Contains Propwire's skip-trace style contact payload or `null` when unavailable.

##### Foreclosure Details

- **foreclosure\_details**:
  - **active**: Boolean indicating if a foreclosure process is currently in progress.
  - **auction\_date / auction\_time**: Scheduled date and time for the public auction.
  - **auction\_location / auction\_courthouse**: Physical venue for the auction.
  - **borrower\_name**: Name of the borrower(s) listed on the foreclosure notice.
  - **lender\_name**: The financial institution or party initiating the foreclosure.
  - **default\_amount**: The total amount the borrower is in default.
  - **foreclosure\_id**: Unique identifier for the foreclosure record.
  - **foreclosure\_type**: Classification of the foreclosure (e.g., JUDICIAL, NON-JUDICIAL).
  - **notice\_type / notice\_type\_code**: The legal document filed (e.g., NOTICE OF TRUSTEE SALE).
  - **opening\_bid**: The starting price set for the auction.
  - **original\_loan\_amount**: The principal amount of the loan in default.
  - **recording\_date**: Date the foreclosure notice was officially recorded.
  - **trustee\_name / trustee\_phone / trustee\_address**: Contact details for the appointed trustee.

##### Mortgage History

- **mortgage\_history**: A chronological list of mortgage transactions.
  - **transactionid**: Unique ID for the specific mortgage transaction.
  - **deed\_type**: The type of deed associated with the transaction.
  - **transaction\_type**: Nature of the event (e.g., `Transfer`, `Construction Loan`).
  - **recording\_date / document\_date**: Official recording and signing dates.
  - **grantee\_name**: The party receiving the loan or interest.
  - **mortgage\_amount**: The principal amount of the mortgage.
  - **mortgage\_lender\_name**: The name of the lending institution.
  - **mortgage\_loan\_type**: Category of the loan (e.g., `Commercial`, `Building Or Construction`).
  - **mortgage\_term / mortgage\_term\_type**: The duration and unit (e.g., 31 MONTH).

##### Owner Information

- **owner\_details**:
  - **ownership\_length\_in\_months / years**: Total duration the current owner has held the property.
  - **owner\_names**: List of all names on the property title.
  - **owner\_occupied**: Boolean indicating if the owner's mailing address matches the property address.
  - **owner\_type**: Classification of the owner (e.g., `COMPANY`, `INDIVIDUAL`).
  - **owner\_mailing\_address\_details**: Full breakdown of where the owner receives mail, including `carrier_route`, `fips`, and `zip4`.

##### Owner Portfolio

- **owner\_portfolio\_details**:
  - **linked\_properties**: Array of property IDs owned by the same individual or entity.
  - **portfolio\_value**: Total estimated value of all properties in the owner's portfolio.
  - **portfolio\_estimated\_equity**: Total calculated equity across all owned properties.
  - **properties\_owned**: Total number of properties associated with this owner.
  - **properties\_purchased\_last\_6\_months / 12\_months**: Recent acquisition activity.

##### Parcel Details

- **parcel\_details**:
  - **apn / apn\_unformatted**: Assessor's Parcel Number used for tax identification.
  - **land\_use**: Primary designation of the land (e.g., `COMMERCIAL`, `RESIDENTIAL`).
  - **legal\_description**: The formal legal definition of the property boundaries.
  - **lot\_size\_sf / lot\_size\_acres**: Total area of the property's land.
  - **property\_type**: Specific usage code (e.g., `MFH_5_PLUS` for 5+ unit multi-family).
  - **property\_use\_code\_description**: Human-readable description of the use code (e.g., `Garden Apt`).
  - **zoning**: Local government code for permitted land use.
  - **census\_tract / block / group**: Demographic and geographic identifiers.
  - **geolocation**:
    - **latitude / longitude**: Precise GPS coordinates.
    - **geocode\_quality**: Accuracy level of the coordinates (e.g., `Rooftop`).

##### Property Characteristics

- **property\_details**:
  - **address\_details**: Comprehensive address components including `congressional_district` and `fips`.
  - **building\_details**: Physical attributes like `building_area_sf`, `living_area_sf`, `stories`, `units`, and `year_built`.
  - **building\_interior\_details**: Details on `bathrooms`, `bedrooms`, `cooling_type`, `heating_type`, and `fireplace` features.
  - **building\_exterior\_details**: Information on `porch`, `deck`, `patio`, and `balcony` including their square footage.
  - **exterior\_amenities**: Features such as `pool`, `fence`, and their respective types and sizes.
  - **garage\_details**: Information on parking structures and sizes.
  - **other\_structures**: Count and types of additional buildings (e.g., `buildings_count`, `shed`, `cabin`).
  - **utility\_details**: Information on `sewage_type` and `water_source`.

##### Tax Information

- **tax\_details**:
  - **assessment\_year**: The tax year for the following values.
  - **assessed\_total\_value**: The total value assigned by the tax assessor.
  - **assessed\_land\_value / assessed\_improvement\_value**: Breakdown of value between land and structures.
  - **market\_total\_value**: The assessor's estimate of actual market value.
  - **tax\_billed\_amount**: The total property tax amount charged for the year.
  - **tax\_exemptions**: Boolean flags for `senior`, `veteran`, `disabled`, etc.

##### Transfer History

- **transfer\_history**: Record of all recorded ownership changes.
  - **arms\_length\_transaction**: Boolean indicating a market-value sale between unrelated parties.
  - **deed\_type**: The legal instrument used for the transfer (e.g., `GRANT DEED`, `QUIT CLAIM DEED`).
  - **transfer\_amount**: The price paid for the property in that transaction.
  - **grantor\_name / grantee\_name**: The seller and buyer for each historical transfer.

##### Basic Info Summary

- **basicInfo**: A simplified object containing the most frequently used data points for quick access, including core address details, bedrooms/bathrooms summary, and a detailed `lead_type` boolean checklist for all possible Propwire lead categories.

***

### Benefits of the Propwire Scraper

- Automates real estate lead generation, saving hours of manual research.
- Provides detailed, accurate, and structured data for property investment.
- Smart detection of search results and detail pages for optimal scraping.
- Reliable performance with proxy integration for anonymity.

***

### Why Choose the Propwire Scraper?

The Propwire Scraper is an indispensable tool for real estate investors, wholesalers, and market analysts. It streamlines deal discovery by delivering high-quality, actionable data directly from Propwire, enabling better investment decisions and saving time.

***

### Explore More Scrapers

If you found the Propwire Scraper useful, check out other powerful scrapers and actors at [memo23's Apify profile](https://apify.com/memo23). We offer a wide range of tools to enhance your web scraping and automation needs.

***

### Support

- For issues or feature requests, please use the [Issues](https://console.apify.com/actors/ftbw0YFo17iTQ2qjv/issues) section of this actor.
- For further assistance, contact the author:
  - Author's website: <https://muhamed-didovic.github.io/>
  - Email: <muhamed.didovic@gmail.com>

***

### Additional Services

- Request customization or a full dataset: <muhamed.didovic@gmail.com>
- Need other platforms scraped? Contact <muhamed.didovic@gmail.com>
- For API services of this scraper, reach out to <muhamed.didovic@gmail.com>

***

### 🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the [Apify MCP server](https://mcp.apify.com) or the Apify API (actor: `memo23/propwire-leads-scraper`).

**Purpose:** Extract Propwire.com off-market real estate leads — one row per property with owner, equity, foreclosure, mortgage/transfer history and portfolio data; the differentiator is three interchangeable input modes (plain addresses, Propwire URLs, or state/lead-type/value filters).

**Minimal input:**

```json
{ "startUrls": [{ "url": "https://propwire.com/realestate/4055-Britt-Rd/51608674/property-details" }], "maxItems": 50 }
```

Filter-search variant (leave `startUrls` empty so it does not win precedence): `{ "startUrls": [], "searchStates": ["FL"], "searchLeadTypes": ["preforeclosure"], "maxItems": 50 }`

**Output:** one row per property — id, last\_sold\_date, last\_sold\_price, lead\_type, skip\_trace, equity\_details {estimated\_equity, estimated\_equity\_percentage, estimated\_value}, foreclosure\_details {active, auction\_date, auction\_location, borrower\_name, lender\_name, notice\_type, recording\_date}, mortgage\_history \[{transaction\_type, recording\_date, grantee\_name, mortgage\_amount, mortgage\_lender\_name}], owner\_details {owner\_names, owner\_type, ownership\_length\_in\_years, owner\_mailing\_address\_details {address, city, state, zip}}, owner\_portfolio\_details {properties\_owned, portfolio\_value, portfolio\_estimated\_equity, linked\_properties}, parcel\_details {apn, land\_use, lot\_size\_sf, property\_type, geolocation {latitude, longitude}}, property\_details {address\_details {address, city, state, zip, county}, building\_details {building\_area\_sf}}.

**Behaviors an agent should know:**

- Mode precedence (most specific wins): `addresses` overrides `startUrls`, which overrides the filter-search fields (`searchStates`/`searchLeadTypes`/`searchPropertyTypes`/`searchEstimatedValueMin`). `startUrls` ships a default URL, so to use filter-search you must pass `startUrls: []`.
- Keep `filters.locations` inside each URL, and `searchStates`, to ≤ 10 entries — large multi-state searches often return HTTP 500 from Propwire's Core API. Split into multiple runs for wider geography.
- Always set `maxItems` (default 10000; 0 = unlimited) to bound run size and cost.
- Free Apify accounts are capped at 10 properties and 1 start URL; paid accounts are unlimited.
- Optional opt-in add-ons (default off): `enrichEmails` adds contactEmail/contactWebsite/emailEnrichment (billed per email found, never for misses); `marketAnalysis` appends `rowType: "marketAnalysis"` rows (billed $0.15 per area, cached, max 8 areas/run).
- Pay-per-event billing — see the Pricing tab on the actor page.

***

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Propwire, its parent company, or any of its affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available Propwire.com property pages — no authenticated endpoints, paid features, or content behind the Propwire login wall. Users are responsible for ensuring their use complies with Propwire's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.

***

### SEO Keywords

propwire scraper, scrape propwire, propwire.com scraper, propwire API, Apify propwire, real estate leads scraper, off-market property scraper, property owner data scraper, foreclosure leads scraper, pre-foreclosure data, skip tracing data, real estate lead generation, property owner lookup, motivated seller leads, equity data export, mortgage history data, real estate investor data, property records scraper, off-market real estate intelligence, wholesaling leads data

# Actor input Schema

## `startUrls` (type: `array`):

Propwire search URLs (`/search?filters=…`) or property detail URLs. **`www.propwire.com`** is rewritten to **`propwire.com`**, and **`/properties?filters=…`** to **`/search?filters=…`** so token extraction works (raw `/properties` often returns 404 to bots). Zip-only `searchType: Z` locations missing `state` get **`state` / `stateName` / `title` filled for Florida** when the 5-digit ZIP matches known FL prefixes; other states need those fields in the URL (copy from the site). Leave every URL empty to build from filters below. **Recommended hard cap:** ≤**10** items in `filters.locations` per URL (larger lists often fail on the Core API).

**Empty by default on purpose.** A pre-filled URL here would be submitted by anyone who opens the form without touching it, and a Start URL suppresses the **Search by filters** section — so an untouched form used to run a search nobody asked for. Leave this empty to use the filter section below, or paste a URL copied from propwire.com. Example of the expected shape (the site emits it URL-encoded; paste it exactly as copied):

`https://propwire.com/search?filters={"locations":[{"searchType":"T","state":"FL","title":"Florida, USA","stateName":"Florida"}],"lead_type":["preforeclosure"],"property_type":["commercial"]}`

## `addresses` (type: `array`):

Free-text addresses or APN strings, one per line. Example: `101 Crawfords Corner Rd, Holmdel, NJ 07733`. APNs accepted in any format the Propwire search bar accepts (e.g. `31-2-0072-00`). **Leave empty unless you want address mode** — any value here overrides Start URLs and the filter section.

## `addressMatchMode` (type: `string`):

How to handle addresses where Propwire returns several autocomplete matches (different parcels at the same address). `first` mirrors what tapping the top suggestion does in the UI; `all` scrapes every match so you can dedupe by APN downstream.

## `searchStates` (type: `array`):

US state codes. **Required** when Start URLs has no URL. Default `FL` is an example—change or add states. Matches Propwire `locations` with `searchType` **T** (state-wide). **You can select at most 10 states** here — the same Core API limit applies; for wider coverage, run multiple actor jobs or use several Start URLs with smaller state lists.

## `searchLeadTypes` (type: `array`):

Same options as Propwire’s Lead Types menu; each selected value is one `lead_type` token. Propwire may block mixing **Premium** and regular leads in one search—use a Start URL from the site if the API rejects a combination.

## `searchPropertyTypes` (type: `array`):

Matches Propwire’s Property Types dropdown: each selected value is sent as one entry in `property_type`. If a type fails to filter, copy a Start URL from the site and compare `filters` JSON — API tokens can change.

## `searchEstimatedValueMin` (type: `integer`):

Maps to `estimated_value.min`. Default **3000000** is an example minimum ($3M); clear the field in the console if you do not want a floor.

## `searchEstimatedValueMax` (type: `integer`):

Maps to `estimated_value.max`. Leave empty unless you need a ceiling (optional).

## `maxItems` (type: `integer`):

Maximum number of listings to scrape per run. Set to 0 for unlimited.

## `maxConcurrency` (type: `integer`):

Maximum number of pages that can be processed at the same time.

## `minConcurrency` (type: `integer`):

Minimum number of pages that will be processed at the same time.

## `maxRequestRetries` (type: `integer`):

Number of times the crawler will retry a failed request before giving up.

## `proxy` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#proxy-configuration' target='_blank' rel='noopener'>Proxy configuration</a> in README.

## `enrichEmails` (type: `boolean`):

If enabled, finds a contact email for each result from its own website (or by discovering it from the name). Adds contactEmail + contactWebsite columns plus a detailed emailEnrichment object. Billed per contact email found; only charged when an email is returned, never for misses.

## `marketAnalysis` (type: `boolean`):

If enabled, appends a `rowType: "marketAnalysis"` row per area found in your results (up to 8 areas per run, largest first). Billed per area row delivered via the `market-analysis` event; never charged when analysis fails or signal is too thin.

## Actor input object example

```json
{
  "addressMatchMode": "first",
  "searchStates": [
    "FL"
  ],
  "searchLeadTypes": [
    "preforeclosure"
  ],
  "searchPropertyTypes": [
    "commercial",
    "mfh_5_plus"
  ],
  "searchEstimatedValueMin": 3000000,
  "maxItems": 10000,
  "maxConcurrency": 100,
  "minConcurrency": 1,
  "maxRequestRetries": 100,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "enrichEmails": false,
  "marketAnalysis": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/propwire-leads-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    } }

# Run the Actor and wait for it to finish
run = client.actor("memo23/propwire-leads-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call memo23/propwire-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/propwire-leads-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VEfbNWGtAdw8gk4Ln/builds/NRyEQANB3EdgT2piX/openapi.json
