Lead Generation

Build Prospect Lists
From Any Directory

Business directories render their listing pages in the browser and put challenge pages in front of automated clients. FineData reads public listings reliably — and keeps you on the right side of the line on personal data.

The Lead Data Problem

Building high-quality prospect lists requires extracting data from directories, company websites, and professional platforms. These sources actively fight automation.

Listing Pages Expect A Browser

General and industry directories are built for real browsers, so a bare HTTP client tends to receive an interstitial rather than the listing.

Challenge Pages Mid-Run

Directories often present a challenge page part-way through a run, which stalls a pipeline that has no way to work through it.

Dynamic Content Loading

Company details — trading name, address, categories, opening hours — are often loaded lazily via JavaScript rather than being present in the initial HTML.

Rate Limiting

Building a comprehensive prospect database requires thousands of requests. Without proper proxy rotation, you'll hit rate limits fast.

How FineData Solves It

Full-browser rendering, residential exit IPs and inline challenge handling. Read public business listings without maintaining scraping infrastructure yourself.

Stealth Rendering Modes

Pages are driven through the Chrome DevTools Protocol in a real browser rather than a patched automation stack, which is why directory pages return their full content.

Challenges Handled Inline

A challenge that appears mid-request is handled in the same API call, so there is no second service to integrate. A request that fails to return the page is not billed.

Residential Proxies

Requests route through real residential IPs, so they arrive as ordinary traffic from visitors. Session IDs keep the same IP across multiple requests for multi-page flows.

Extract Business Data at Scale

One API call with stealth mode enabled. FineData handles the proxy rotation, fingerprint management, and CAPTCHA solving so you can focus on data extraction logic.

Nodriver mode for zero WebDriver detection footprint

Sticky sessions maintain the same IP across multi-page navigation

Automatic CAPTCHA solving for uninterrupted data collection

lead_scraper.py
import requests

# Read a public business directory listing page
response = requests.post(
    "https://api.finedata.ai/api/v1/scrape",
    headers={"x-api-key": "fd_your_key"},
    json={
        "url": "https://directory.example.com/plumbers/new-york",
        "use_js_render": True,
        "stealth_antibot": True,
        "solve_captcha": True,
        "use_residential": True,
        "session_id": "nyc-plumbers-session",
    }
)

data = response.json()
html = data["content"]

# Parse business listings
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")

for listing in soup.select(".business-card"):
    name = listing.select_one(".biz-name").text
    phone = listing.select_one(".phone").text
    print(f"{name}: {phone}")

The session_id keeps the same proxy IP across requests, useful for paginating through directory listings.

Why Sales Teams Choose FineData

Strongest Rendering Mode

Nodriver technology leaves zero automation fingerprints. Directories can't distinguish your requests from a human browsing.

Auto CAPTCHA Solving

Challenge pages are worked through inside the request, so a run does not sit waiting on a human.

Session Persistence

Sticky sessions maintain the same proxy IP across multiple requests, perfect for paginating through search results.

Clean HTML Output

Get fully rendered HTML ready for parsing with BeautifulSoup, lxml, or any HTML parser of your choice.

Frequently Asked Questions

Is it legal to scrape business directories for leads?
It depends on what you collect and why, and we cannot answer it for your case — nothing here is legal advice. Two things matter in practice. Company-level information published on a public directory (trading name, address, business phone) is a different question from data about a person, and a named individual's email or direct line is personal data under GDPR and CCPA even when it sits on a public page: you need a lawful basis before collecting it, and selling scraped contact lists is prohibited by our Acceptable Use Policy. Second, the target site's own terms still apply. FineData provides the technical capability; the responsibility for lawful use rests with you.
What is Nodriver and when should I use it?
Nodriver uses direct Chrome DevTools Protocol access instead of WebDriver, eliminating all automation markers that bot detection systems look for. Use it when stealth_antibot isn't enough -- typically for sites with the most aggressive bot detection. It costs 6 additional tokens per request (vs 5 for standard JS rendering).
How do sticky sessions work?
Set a session_id string in your request, and all subsequent requests with the same session ID will route through the same proxy IP. This is essential for paginating through directory results, as switching IPs mid-session can trigger bot detection or reset your search context.
Can I use FineData with my existing CRM?
FineData is a scraping API -- it returns raw HTML that you parse and process in your own pipeline. You can integrate it with any CRM, database, or workflow tool. Use our Python, Node.js, or Go SDKs to build a pipeline that scrapes data, parses it, and pushes enriched leads directly into your CRM via its API.

Read this before you build a list

Company-level data from public directories is one thing; data about a person is another. A named individual's email address or direct phone number is personal data under GDPR and CCPA even when it is published openly — you need a lawful basis before collecting it, you must honour opt-outs, and reselling scraped contact lists is prohibited outright by our Acceptable Use Policy. FineData also does not sign in to accounts or pass paywalls, so anything behind a login is out of scope. If your use case is close to the line, ask us first.

Build Better Prospect Lists

Start with free tokens. Extract business data from any directory without managing proxies or solving CAPTCHAs manually.