# Realtor Agent Leads Scraper

Find and compare real estate agents by location, price range, language, and other filters. Collect structured public profile data—including contact details, brokerage, experience, specialties, listing

- Template page: [https://www.octoparse.com/template/realtor-agent-leads-scraper](https://www.octoparse.com/template/realtor-agent-leads-scraper)
- Categories: Lead Generation
- Status: `PUBLISHED`
- Run mode: `CLOUD`

## Pricing

Current price: **$0.01/1,000 lines**. Billing is based on output rows; an Octoparse subscription may be required.

## What is an Octoparse template?

An Octoparse template is a ready-to-use scraping workflow with predefined inputs and structured outputs. Use the exact parameter keys below; do not invent parameters.

## Overview

This ready-to-use template collects structured data from web pages.

## Output

The current workflow extracts 46 fields, including `activeListings`, `agentLicense`, `annualPriceMax`, `annualPriceMin`, `areasServed`, `bio`, `brokerName`, `collectedAt`, `designations`, `experienceFirstMonth`, `experienceFirstYear`, `facebook`, `fax`, `fullName`, `instagram`, `isPaid`, `isRealtor`, `languages`, `lastListingDate`, `lastSoldDate`, `licenseState`, `linkedin`, `officeAddress`, `officeCity`, `officeName`, `officeNumber`, `officePostalCode`, `officeState`, `officeWebsite`, `phoneNumber`, `photoUrl`, `priceRange`, `profilePageUrl`, `recentSales`, `recommendations`, `reviewCount`, `reviewScore`, `searchLocation`, `servicesBuyer`, `servicesSeller`, `specialties`, `tiktok`, `title`, `twitter`, `website`, `youtube`.

## Use Cases

- Use structured results for research, comparison, and monitoring.
- Collect rows without building the extraction workflow from scratch.
- Combine results with other templates for downstream enrichment.
- Review a representative result before starting a large batch.

## Why Octoparse

- **No coding required:** complete Search Locations (Up to 1000), PageSize, Intent and start the template in cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### Search Locations (Up to 1000)

Required. Enter one search location per line using either a 5-digit ZIP code or the City, ST format. Multiple locations use the same filters and are processed sequentially. Invalid or unsupported formats will stop the task and return an input validation error. Constraints: minItems=1; maxItems=1000.

### PageSize

Optional. Maximum pages to collect per location. Each page contains up to 20 agents. For example, 5 pages collect up to 100 agents. If left blank, the scraper collects up to 1,000 pages per location and stops earlier when no more results are available.

### Intent

Optional. Choose whether to find agents serving buyers, sellers, or both. Callable values are the `const` keys in JSON `oneOf`, not the option titles.

### Min price

Optional. Minimum property price in USD. Enter numbers only, without $ or commas. Leave blank for no minimum.

### Max price

Optional. Maximum property price in USD. Enter numbers only, without $ or commas. Leave blank for no maximum.

### Language

Optional. Filter agents by language. Choose “Choose a language” for no language restriction. Callable values are the `const` keys in JSON `oneOf`, not the option titles.

### Agent type

Optional. Include all matching agents or only agents identified as REALTORS®. Callable values are the `const` keys in JSON `oneOf`, not the option titles.

### Sort

Optional. Choose the result order. This affects which agents are collected first. Callable values are the `const` keys in JSON `oneOf`, not the option titles.

## How to Use

# Realtor Agent Leads Scraper – Usage Guide

Collect Realtor.com agent profiles by location with optional filters. Output includes agent details, brokerage info, contact data, and profile URLs.

## Input Fields

| Parameter | Required | Description |
|-----------|----------|-------------|
| **Search Locations** | Yes | ZIP codes or city/state (e.g., `10010`, `Los Angeles, CA`). One per line or import from file. |
| **PageSize** | No | Number of result pages per location (each page up to 20 profiles). Default 1 (up to 20). Actual totals may be lower. |
| **Intent** | No | E.g., `Buy`. |
| **Min price** | No | Minimum price filter (e.g., `50000`). |
| **Max price** | No | Maximum price filter (e.g., `100000`). |
| **Language** | No | Language filter. `Choose a language` applies no filter. |
| **Agent type** | No | Defaults to `All agents`. |
| **Sort** | No | Defaults to `Relevant agents`. |

## Step-by-Step Workflow

1. **Open the template** – Click **Try it!** on the Realtor Agent Leads Scraper template.

2. **Enter search locations** – Fill **Search Locations** with one or more ZIP codes or city/state combinations. Use **Import from file** for a prepared list.

3. **Set filters** – Configure **PageSize** and any optional filters (intent, price, language, agent type, sort) for your target audience.

4. **Run the scraper** – Click **Start**, choose a run mode, and monitor until it finishes.

5. **Export results** – After the task completes, check collected data in Data Preview, then export in your preferred format.

## Important Notes

- The template collects data from public Realtor.com agent profiles. Field availability varies by profile.
- **PageSize** controls result pages requested per location. Each page can return up to 20 profiles, but actual totals may be lower due to filters, source availability, or duplicates.
- Source-site changes, rate limits, access restrictions, or network conditions may affect a run.
- Review Realtor.com’s terms and applicable privacy/marketing laws before collecting, contacting, or using agent data.

## Tips

- Start with one location and a small **PageSize** to verify filter behavior.
- Use ZIP codes for narrow local searches; city/state combinations for broader markets.
- Split large location lists into separate runs for easier market comparison and campaign attribution.
- Keep `searchLocation`, `profilePageUrl`, and `collectedAt` in exports when refreshing or merging lead lists.
- Blank values indicate the field was unavailable from the source profile, not a negative result.

## Limitations

Results depend on what the source site exposes at run time. Fields may be empty when a source page does not provide a value. The template enforces the input limits shown above.

## Tips

Use specific, valid inputs and review a representative result before starting a large batch. Remove duplicate inputs when repeated records are not needed.

## FAQ

### What do I need to enter?

Use the exact inputs and limits listed above.

### What data does this template return?

See Output Schema below; availability can vary by source record.

### How is usage billed?

See the Pricing section above for current pricing and billing details.

## Related Templates

- [Recruit Agent Job Listing Scraper](https://www.octoparse.com/template/recruit-agent-listing)
- [Realtor Scraper](https://www.octoparse.com/template/realtor-scraper)
- [Google Maps Leads Scraper](https://www.octoparse.com/template/google-maps-scraper-store-details-by-keyword)
- [Kompass Leads Scraper (for Germany)](https://www.octoparse.com/template/kompass-leads-scraper)
- [Kununu.com Leads Scraper](https://www.octoparse.com/template/kununucom-leads-scraper)

## Input Schema

```json
{
  "title": "Realtor Agent Leads Scraper input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "search_Locations": {
      "title": "Search Locations (Up to 1000)",
      "description": "Enter one search location per line using either a 5-digit ZIP code or the City, ST format. Multiple locations use the same filters and are processed sequentially. Invalid or unsupported formats will stop the task and return an input validation error.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 1000,
      "x-octoparse": {
        "apiEnabled": true
      }
    },
    "pageSize": {
      "title": "PageSize",
      "description": "Maximum pages to collect per location. Each page contains up to 20 agents. For example, 5 pages collect up to 100 agents. If left blank, the scraper collects up to 1,000 pages per location and stops earlier when no more results are available.",
      "type": "integer",
      "x-octoparse": {
        "apiEnabled": false
      }
    },
    "intent": {
      "title": "Intent",
      "description": "Choose whether to find agents serving buyers, sellers, or both.",
      "type": "string",
      "oneOf": [
        {
          "title": "BUYER",
          "const": "Buy"
        },
        {
          "title": "SELLER",
          "const": "Sell"
        },
        {
          "title": "BOTH",
          "const": "Both"
        }
      ],
      "x-octoparse": {
        "apiEnabled": false
      }
    },
    "min_price": {
      "title": "Min price",
      "description": "Minimum property price in USD. Enter numbers only, without $ or commas. Leave blank for no minimum.",
      "type": "integer",
      "x-octoparse": {
        "apiEnabled": false
      }
    },
    "max_price": {
      "title": "Max price",
      "description": "Maximum property price in USD. Enter numbers only, without $ or commas. Leave blank for no maximum.",
      "type": "integer",
      "x-octoparse": {
        "apiEnabled": false
      }
    },
    "language": {
      "title": "Language",
      "description": "Filter agents by language. Choose “Choose a language” for no language restriction.",
      "type": "string",
      "oneOf": [
        {
          "title": "ANY_LANGUAGE",
          "const": "Choose a language"
        },
        {
          "title": "afrikaans",
          "const": "Afrikaans"
        },
        {
          "title": "albanian",
          "const": "Albanian"
        },
        {
          "title": "arabic",
          "const": "Arabic"
        },
        {
          "title": "armenian",
          "const": "Armenian"
        },
        {
          "title": "asl",
          "const": "ASL American Sign textuage"
        },
        {
          "title": "bengali",
          "const": "Bengali"
        },
        {
          "title": "bosnian",
          "const": "Bosnian"
        },
        {
          "title": "bulgarian",
          "const": "Bulgarian"
        },
        {
          "title": "chinese",
          "const": "Chinese"
        },
        {
          "title": "croatian",
          "const": "Croatian"
        },
        {
          "title": "czech",
          "const": "Czech/Slovak"
        },
        {
          "title": "danish",
          "const": "Danish"
        },
        {
          "title": "dutch",
          "const": "Dutch"
        },
        {
          "title": "estonian",
          "const": "Estonian"
        },
        {
          "title": "farsi",
          "const": "Farsi"
        },
        {
          "title": "filipino",
          "const": "Filipino"
        },
        {
          "title": "finnish",
          "const": "Finnish"
        },
        {
          "title": "french",
          "const": "French"
        },
        {
          "title": "gaelic",
          "const": "Gaelic"
        },
        {
          "title": "georgian",
          "const": "Georgian"
        },
        {
          "title": "german",
          "const": "German"
        },
        {
          "title": "greek",
          "const": "Greek"
        },
        {
          "title": "hawaiian",
          "const": "Hawaiian"
        },
        {
          "title": "hebrew",
          "const": "Hebrew"
        },
        {
          "title": "hindi",
          "const": "Hindi"
        },
        {
          "title": "hungarian",
          "const": "Hungarian"
        },
        {
          "title": "indonesian",
          "const": "Indonesian"
        },
        {
          "title": "italian",
          "const": "Italian"
        },
        {
          "title": "japanese",
          "const": "Japanese"
        },
        {
          "title": "korean",
          "const": "Korean"
        },
        {
          "title": "lao",
          "const": "Lao"
        },
        {
          "title": "latvian",
          "const": "Latvian"
        },
        {
          "title": "lithuanian",
          "const": "Lithuanian"
        },
        {
          "title": "malay",
          "const": "Malay"
        },
        {
          "title": "mandarin",
          "const": "Mandarin"
        },
        {
          "title": "nepali",
          "const": "Nepali"
        },
        {
          "title": "norwegian",
          "const": "Norwegian"
        },
        {
          "title": "polish",
          "const": "Polish"
        },
        {
          "title": "portuguese",
          "const": "Portuguese"
        },
        {
          "title": "punjabi",
          "const": "Punjabi"
        },
        {
          "title": "romanian",
          "const": "Romanian"
        },
        {
          "title": "russian",
          "const": "Russian"
        },
        {
          "title": "serbian",
          "const": "Serbian"
        },
        {
          "title": "sindhi",
          "const": "Sindhi"
        },
        {
          "title": "singhalese",
          "const": "Singhalese"
        },
        {
          "title": "slovenian",
          "const": "Slovenian"
        },
        {
          "title": "spanish",
          "const": "Spanish"
        },
        {
          "title": "swahili",
          "const": "Swahili"
        },
        {
          "title": "swedish",
          "const": "Swedish"
        },
        {
          "title": "tagalog",
          "const": "Tagalog"
        },
        {
          "title": "taiwanese",
          "const": "Taiwanese"
        },
        {
          "title": "thai",
          "const": "Thai"
        },
        {
          "title": "turkish",
          "const": "Turkish"
        },
        {
          "title": "ukrainian",
          "const": "Ukrainian"
        },
        {
          "title": "urdu",
          "const": "Urdu"
        },
        {
          "title": "vietnamese",
          "const": "Vietnamese"
        },
        {
          "title": "yugoslavian",
          "const": "Yugoslavian"
        }
      ],
      "x-octoparse": {
        "apiEnabled": false
      }
    },
    "agent_type": {
      "title": "Agent type",
      "description": "Include all matching agents or only agents identified as REALTORS®.",
      "type": "string",
      "oneOf": [
        {
          "title": "ALL_AGENTS",
          "const": "All agents"
        },
        {
          "title": "NRDS_ID_EXISTS",
          "const": "REALTORS® only"
        }
      ],
      "x-octoparse": {
        "apiEnabled": false
      }
    },
    "sort": {
      "title": "Sort",
      "description": "Choose the result order. This affects which agents are collected first.",
      "type": "string",
      "oneOf": [
        {
          "title": "RELEVANT_AGENTS",
          "const": "Relevant agents"
        },
        {
          "title": "RATINGS_REVIEWS",
          "const": "Highest ratings"
        },
        {
          "title": "MOST_SALES",
          "const": "Most sales"
        },
        {
          "title": "TESTIMONIALS_RECOMMENDATIONS",
          "const": "Most testimonials"
        },
        {
          "title": "MOST_RECENT_ACTIVITY",
          "const": "Most recent activity"
        }
      ],
      "x-octoparse": {
        "apiEnabled": false
      }
    }
  },
  "required": [
    "search_Locations"
  ]
}
```

## Input JSON Example

Example 1

```json
{
  "agent_type": "All agents",
  "intent": "Buy",
  "language": "Choose a language",
  "search_Locations": [
    "Los Angeles, CA"
  ],
  "sort": "Relevant agents"
}
```

Example 2

```json
{
  "agent_type": "All agents",
  "intent": "Both",
  "language": "Choose a language",
  "pageSize": 20,
  "search_Locations": [
    "https://www.realtor.com/realestateagents/clearwater_fl/intent-buy/sort-relevantagents/agenttype-all/pg-1"
  ],
  "sort": "Relevant agents"
}
```


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "activeListings": {
      "type": "string",
      "description": ""
    },
    "agentLicense": {
      "type": "string",
      "description": ""
    },
    "annualPriceMax": {
      "type": "string",
      "description": ""
    },
    "annualPriceMin": {
      "type": "string",
      "description": ""
    },
    "areasServed": {
      "type": "string",
      "description": ""
    },
    "bio": {
      "type": "string",
      "description": ""
    },
    "brokerName": {
      "type": "string",
      "description": ""
    },
    "collectedAt": {
      "type": "string",
      "description": ""
    },
    "designations": {
      "type": "string",
      "description": ""
    },
    "experienceFirstMonth": {
      "type": "string",
      "description": ""
    },
    "experienceFirstYear": {
      "type": "string",
      "description": ""
    },
    "facebook": {
      "type": "string",
      "description": ""
    },
    "fax": {
      "type": "string",
      "description": ""
    },
    "fullName": {
      "type": "string",
      "description": ""
    },
    "instagram": {
      "type": "string",
      "description": ""
    },
    "isPaid": {
      "type": "string",
      "description": ""
    },
    "isRealtor": {
      "type": "string",
      "description": ""
    },
    "languages": {
      "type": "string",
      "description": ""
    },
    "lastListingDate": {
      "type": "string",
      "description": ""
    },
    "lastSoldDate": {
      "type": "string",
      "description": ""
    },
    "licenseState": {
      "type": "string",
      "description": ""
    },
    "linkedin": {
      "type": "string",
      "description": ""
    },
    "officeAddress": {
      "type": "string",
      "description": ""
    },
    "officeCity": {
      "type": "string",
      "description": ""
    },
    "officeName": {
      "type": "string",
      "description": ""
    },
    "officeNumber": {
      "type": "string",
      "description": ""
    },
    "officePostalCode": {
      "type": "string",
      "description": ""
    },
    "officeState": {
      "type": "string",
      "description": ""
    },
    "officeWebsite": {
      "type": "string",
      "description": ""
    },
    "phoneNumber": {
      "type": "string",
      "description": ""
    },
    "photoUrl": {
      "type": "string",
      "description": ""
    },
    "priceRange": {
      "type": "string",
      "description": ""
    },
    "profilePageUrl": {
      "type": "string",
      "description": ""
    },
    "recentSales": {
      "type": "string",
      "description": ""
    },
    "recommendations": {
      "type": "string",
      "description": ""
    },
    "reviewCount": {
      "type": "string",
      "description": ""
    },
    "reviewScore": {
      "type": "string",
      "description": ""
    },
    "searchLocation": {
      "type": "string",
      "description": ""
    },
    "servicesBuyer": {
      "type": "string",
      "description": ""
    },
    "servicesSeller": {
      "type": "string",
      "description": ""
    },
    "specialties": {
      "type": "string",
      "description": ""
    },
    "tiktok": {
      "type": "string",
      "description": ""
    },
    "title": {
      "type": "string",
      "description": ""
    },
    "twitter": {
      "type": "string",
      "description": ""
    },
    "website": {
      "type": "string",
      "description": ""
    },
    "youtube": {
      "type": "string",
      "description": ""
    }
  },
  "title": "Realtor Agent Leads Scraper output",
  "description": "Initial output fields derived from the current published implementation. Field descriptions are maintained by Data Center; production field names and types should be refreshed from recent successful runs.",
  "additionalProperties": false
}
```

## Output Example

Example 1

```json
{
  "activeListings": "8",
  "agentLicense": "#01373612",
  "annualPriceMax": "0",
  "annualPriceMin": "0",
  "areasServed": "Chino, Chino Hills, Claremont, Corona, Covina, Diamond Bar, Fontana, Glendora, Jurupa Valley, La Verne, Montclair, Ontario, Pomona, Rancho Cucamonga, Rialto, San Dimas, Upland, Upland, Walnut",
  "bio": "**Brenda Geraci | Keller Williams College Park**\n**24+ Years of Experience | 50–70 Homes Sold Annually**\n\nFor more than 24 years, I’ve helped buyers and sellers successfully navigate the Southern California real estate market, with a strong focus on **Upland, San Dimas, Claremont, La Verne, Rancho Cucamonga, Glendora, Ontario, Fontana, Chino, and Chino Hills**.\n\nWith a consistent track record of closing **50–70 properties annually**, my business is built on experience, strong negotiation, local market knowledge, and a client-first approach. I believe every client deserves personal attention, clear communication, and exceptional service from our first conversation through closing and beyond.\n\n**Specialties:** Luxury Homes • First-Time Buyers • Investment Properties • Probate • Relocation\n\nFor Sellers\n\nI combine local market expertise, strategic pricing, professional marketing, digital exposure, and skilled negotiation to position your property for maximum market value while protecting your equity.\n\n For Buyers\n\nWhether you’re purchasing your first home, moving up, relocating, investing, or searching for a luxury property, I’ll help you identify the right opportunities, understand the market, and negotiate confidently on your behalf.\n\n Local Experience That Matters\n\nI specialize in the **Inland Empire and San Gabriel Valley**, particularly Upland, San Dimas, Claremont, La Verne, Rancho Cucamonga, Glendora, Ontario, Fontana, Chino, and Chino Hills.\n\nMy roots in the communities I serve run deep, including my support of the **San Dimas Saints and Bonita Unified schools**.\n\nMy goal is simple: to provide the experience, communication, and personal service you need to make your next real estate move a successful one.\n\n**Brenda Geraci**\nKeller Williams College Park\nDRE #01373612\n909-917-1473\nbuyandsellwithbrenda@gmail.com ",
  "brokerName": "Keller Williams College Park",
  "collectedAt": "2026-10-19T22:38:46.012011+00:00",
  "designations": "SFR",
  "experienceFirstMonth": "April",
  "experienceFirstYear": "2002",
  "facebook": "https://www.facebook.com/brendageraci.realestate",
  "fax": "",
  "fullName": "Brenda Geraci, Realtor -Keller Williams College Park",
  "instagram": "https://www.instagram.com/buyandsellwithbrenda/",
  "isPaid": "false",
  "isRealtor": "true",
  "languages": "Spanish",
  "lastListingDate": "2026-10-03T01:52:01Z",
  "lastSoldDate": "2026-09-21",
  "licenseState": "CA",
  "linkedin": "",
  "officeAddress": "1945 W 9th Street\nUpland, CA 91786",
  "officeCity": "Upland",
  "officeName": "Keller Williams College Park",
  "officeNumber": "(909) 917-1473",
  "officePostalCode": "91786",
  "officeState": "CA",
  "officeWebsite": "https://www.buyandsellwithbrenda.com",
  "phoneNumber": "(909) 917-1473",
  "photoUrl": "https://ap.rdcpix.com/f877a9382dc5b230008cb16b6ddab9f5a-e2875469548rd-w144_h144.jpg",
  "priceRange": "$0",
  "profilePageUrl": "https://www.realtor.com/realestateagents/56c4d53a89a68901006ddecd",
  "recentSales": "32",
  "recommendations": "99",
  "reviewCount": "100",
  "reviewScore": "5",
  "searchLocation": "Los Angeles, CA",
  "servicesBuyer": "Personalized neighborhood guidance, Access to market insights, Early access to new listings, Persuasive offer proposals, Pre-approval assistance, Other professional network referrals",
  "servicesSeller": "Open houses, Professional photography, Your own website, Postcards and flyers, Virtual tour, Comparative market analysis",
  "specialties": "foreclosures, Selling homes, short sales, Buyer's agent, Seller's agent, Residential, Luxury homes, New homes, Investment properties, Listing agent, Veterans, Military, Relocation, Downsizing, Upsizing, Property management, Single-family homes, Seniors, Acreage",
  "tiktok": "",
  "title": "24 years 6 months of experience",
  "twitter": "https://twitter.com/brendageraci",
  "website": "https://www.buyandsellwithbrenda.com",
  "youtube": "https://www.youtube.com/@Buyandsellwithbrenda"
}
```

Example 2

```json
{
  "activeListings": "7",
  "agentLicense": "#3427721",
  "annualPriceMax": "899000",
  "annualPriceMin": "85000",
  "areasServed": "Clearwater, Dunedin, Lakewood Ranch, Odessa, Palm Harbor, Riverview, Sarasota, St. Petersburg, Tampa, Tampa, Tampa, Tampa, Tampa, Tampa, Tampa, Tampa, Wesley Chapel, Westchase",
  "bio": "As a Texas-born, Tennessee-raised, and now proud South Tampa resident, I bring a unique blend of Southern charm, strong negotiation skills, and a true passion for helping people achieve their real estate goals. With years of experience in the Tampa Bay market, I specialize in luxury homes and waterfront properties, backed by the global reach of Coldwell Banker and membership and Certified Luxury Marketing Agent and a member of the Institute for Luxury Home Marketing.\n\nMy clients describe me as approachable, detail-oriented, and relentless in advocating for their best interests. I provide a true white-glove experience—from pricing strategy and luxury marketing to negotiation and closing—ensuring my clients feel confident and cared for every step of the way.",
  "brokerName": "Coldwell Banker Realty",
  "collectedAt": "2026-10-19T15:03:11.45348+00:00",
  "designations": "",
  "experienceFirstMonth": "October",
  "experienceFirstYear": "2018",
  "facebook": "https://www.facebook.com/KRLuxuryCollective/",
  "fax": "(813) 254-9745",
  "fullName": "Kimberly Russian",
  "instagram": "https://www.instagram.com/krluxurycollective/",
  "isPaid": "true",
  "isRealtor": "true",
  "languages": "English",
  "lastListingDate": "2026-08-10T00:14:33Z",
  "lastSoldDate": "2026-07-02",
  "licenseState": "FL",
  "linkedin": "https://www.linkedin.com/in/krluxurycollective/",
  "officeAddress": "615 Channelside Dr Ste 101\nTampa, FL 33602",
  "officeCity": "Tampa",
  "officeName": "Coldwell Banker Realty",
  "officeNumber": "(813) 253-2444",
  "officePostalCode": "33602",
  "officeState": "FL",
  "officeWebsite": "https://www.coldwellbankerhomes.com//fl/tampa/office/south-tampa/oid_1152/",
  "phoneNumber": "(813) 753-7664",
  "photoUrl": "https://storage.googleapis.com/upnest1/upload/realtor/1427263058_c573461c-5dc6-4006-8b47-5e620a5b7b4a.jpeg",
  "priceRange": "$85k - $899k",
  "profilePageUrl": "https://www.realtor.com/realestateagents/5cbf87b94450b400121b3f50",
  "recentSales": "10",
  "recommendations": "10",
  "reviewCount": "14",
  "reviewScore": "5",
  "searchLocation": "https://www.realtor.com/realestateagents/clearwater_fl/intent-buy/sort-relevantagents/agenttype-all/pg-1",
  "servicesBuyer": "Personalized neighborhood guidance, Access to market insights, Early access to new listings, Persuasive offer proposals, Home inspection support, Pre-approval assistance, Lender referrals, Other professional network referrals",
  "servicesSeller": "Open houses, Professional photography, Home staging, Your own website, Postcards and flyers, Virtual tour, Comparative market analysis",
  "specialties": "Commercial, Residental, Investment, Listing Agent, Buyers Agent, Sellers Agent, Negotiator, New construction, Vacation homes, Waterfront, Luxury homes, Investment properties, Investors, Veterans, Military, Downsizing, Upsizing, Home staging, Buyer’s agent, Professional photography",
  "tiktok": "https://www.tiktok.com/@krluxurycollective",
  "title": "8 years of experience",
  "twitter": "https://x.com/KRLuxHomes",
  "website": "http://www.KRLuxuryCollective.com",
  "youtube": "https://www.youtube.com/@KRLuxuryCollective/videos"
}
```

## API

`POST https://openapi.octoparse.com/api/agentTools/executeTask`

This is the OpenAPI Agent Tools `executeTask` endpoint. Authenticate with a Bearer token.

Request body:

`templateName` is the template slug; `parameters` is a JSON object string whose keys match Input Schema; `taskName`, `idempotencyKey`, and `maxCollectedRows` are optional.

Obtain a token:

```http
POST https://openapi.octoparse.com/token
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD",
  "grant_type": "password"
}
```

Use `data.access_token` as `Authorization: Bearer <token>`. After starting, poll `getTaskStatus` and export with `exportData`.

```json
{
  "templateName": "realtor-agent-leads-scraper",
  "taskName": "Realtor Agent Leads Scraper",
  "parameters": "{\"agent_type\":\"All agents\",\"intent\":\"Buy\",\"language\":\"Choose a language\",\"search_Locations\":[\"Los Angeles, CA\"],\"sort\":\"Relevant agents\"}"
}
```

## Python Example

```python
import json
import requests

OPENAPI_BASE = "https://openapi.octoparse.com"
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"

parameters = json.loads("{\"agent_type\":\"All agents\",\"intent\":\"Buy\",\"language\":\"Choose a language\",\"search_Locations\":[\"Los Angeles, CA\"],\"sort\":\"Relevant agents\"}")

response = requests.post(
    f"{OPENAPI_BASE}/api/agentTools/executeTask",
    headers={
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json",
    },
    json={
        "templateName": "realtor-agent-leads-scraper",
        "taskName": "Realtor Agent Leads Scraper",
        "parameters": json.dumps(parameters, ensure_ascii=False),
    },
    timeout=60,
)
print(response.status_code)
print(response.json())
```

## HTTP/cURL Example

```bash
curl -X POST "https://openapi.octoparse.com/api/agentTools/executeTask" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "templateName": "realtor-agent-leads-scraper",
  "taskName": "Realtor Agent Leads Scraper",
  "parameters": "{\"agent_type\":\"All agents\",\"intent\":\"Buy\",\"language\":\"Choose a language\",\"search_Locations\":[\"Los Angeles, CA\"],\"sort\":\"Relevant agents\"}"
}
JSON
```

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `realtor-agent-leads-scraper`, inspect its inputs, create a cloud task with the exact Input Schema keys, and export JSON results.

## Machine-readable Resources

- [Template contract](https://www.octoparse.com/templates/realtor-agent-leads-scraper.json)
- [Manifest](https://www.octoparse.com/templates/realtor-agent-leads-scraper-manifest.json)
