Equity Crowdfunding Leads Scraper icon

Business data

Equity Crowdfunding Leads Scraper

Collapse the three biggest US equity-crowdfunding platforms — Wefunder, Republic and StartEngine — into one flat founder-lead dataset: company, tagline, founder names, region, target and raised USD, investor count, pre-money valuation and derived funding stage. Wefunder alone lists thousands of currently-raising companies, and today a buyer has to hand-visit three sites with no shared schema.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Three equity-crowdfunding platforms, one schema. This Wefunder scraper — and the Republic and StartEngine scrapers bundled alongside it — collapses three separate platforms into a single normalized equity crowdfunding leads dataset:

1. Wefunderwefunder.com (primary source; full founder + tagline + raise progress + valuation payload via the internal JSON API the Wefunder SPA itself calls) 2. Republicrepublic.com (secondary; slug + company name from trending carousel + JSON-LD breadcrumb) 3. StartEnginestartengine.com (secondary; slug + company name from offering sitemap; financials nullable in v1 — detail pages are JS-gated)

What we handle for you

  • Three platforms, one schema — drop straight into your CRM, spreadsheet, or BI tool with no per-source normalization.
  • Wefunder primary path — full founder + tagline + raise progress + valuation per row via the internal JSON API the Wefunder SPA itself calls.
  • Pre-money valuation parsing — Wefunder's $62.1M-style shorthand auto-converted to a numeric USD float.
  • Per-source isolation — one source going down does not abort the run; the remaining sources still produce data and stream results.
  • Pydantic v2 validation — both input and dataset rows are model-validated; invalid input fails fast with a clear error before any network call.
  • Filter knobs — restrict by source list, funding status (active / funded / all), industry substring, or hard row cap per source.
  • Exponential backoff on 429 / 503 with Retry-After honored; up to 5 attempts per page.
  • We rotate browser fingerprints — curl-cffi impersonation (Chrome 131 / Chrome 124 / Firefox 147) so the platforms see real-browser TLS handshakes, not Python.
  • We rotate residential proxies through Apify Proxy on every block — fresh session ID, fresh exit IP.
  • You pay only for results that land. No data pushed to the dataset means no result-row charges.

Use cases

  • VC scout pipelines — schedule weekly runs, enrich with LinkedIn lookups on founders[], build a "first dollar in" tracker for sub-seed deals currently raising on Wefunder.
  • SDR founder outreach — filter by industry substring (e.g. "fintech", "climate", "AI"), drop founders into your email tool, reach them before a Series A bump.
  • Competitive intelligence — track which sectors are over-raising vs under-raising quarter-over-quarter; spot whitespace before incumbents do.
  • Crowdfunding leaderboards — publish a public site ranking the fastest-growing campaigns this week; update daily on a scheduled run.
  • Cap-table benchmarks — pre-money valuation distribution by sector at the Reg CF stage, cleanly covered by Wefunder's terms.nb field.
  • Form C deep dives — pair this Actor with sec-edgar-filings-scraper to follow the slug from Wefunder back to the canonical Form C / Form C-AR PDF on EDGAR for revenue, expense, and SAFE term extraction.
  • Equity crowdfunding data API replacement — no Crunchbase contract, no manual exports. One Apify run returns the same structured equity crowdfunding data an API subscription would, on pay-per-result pricing with no contract.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
sources array no List of platforms to scrape. Valid values: wefunder, republic, startengine. Leave empty to scrape all three (order: wefunder, republic, startengine).
maxPerSource integer no Hard cap on the number of rows returned per source. Default 50; range 1..500.
statusFilter string no Wefunder mapping: active=status_fundraising, funded=status_funded, all=no tag filter. Republic and StartEngine emit only currently-listed slugs (status filter is informational on those sources).
industryFilter string no Optional case-insensitive substring filter applied over each row's tagline or industry. Rows where neither field contains the substring are dropped. Leave empty to disable.
useProxy boolean no Route requests through Apify Proxy (BUYPROXIES94952). Recommended — Wefunder and Republic fingerprint datacenter IPs and may block plain exits.
{
  "sources": [],
  "maxPerSource": 50,
  "statusFilter": "active",
  "useProxy": true
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

sourcecampaign_slugcompany_nametaglineindustrylocationfounderswebsite_urltarget_amount_usdraised_amount_usdnum_investorsvaluation_usdrevenue_usdfunding_stagecampaign_urlscraped_at

{
  "source": "wefunder",
  "campaign_slug": "riserobotics",
  "company_name": "RISE Robotics",
  "tagline": "Electrifying heavy machines",
  "industry": null,
  "location": "MA",
  "founders": [
    "Hiten Sonpal"
  ],
  "website_url": null,
  "target_amount_usd": null,
  "raised_amount_usd": 17448682.0,
  "num_investors": 417,
  "valuation_usd": 62100000.0,
  "revenue_usd": null,
  "funding_stage": "raising",
  "campaign_url": "https://wefunder.com/riserobotics",
  "scraped_at": "2026-05-16T13:40:00.000Z"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Campaign row$0.0050Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • StartEngine detail pages are JavaScript-gated. v1 emits one row per offering slug from the public sitemap-private-offerings.xml with name derived from the slug; live raise progress, valuation, and investor count stay nullable on this source. A v2 Camoufox-backed full-render path is planned.
  • Republic financials are client-rendered. v1 surfaces ~10 trending campaign slugs per run from the SSR shell with company name from the JSON-LD breadcrumb. Raised amount, valuation, and investor count are out of reach without a real browser.
  • Wefunder is the data-rich source. Run Wefunder-only (sources: ["wefunder"]) when you need the most fields per row.
  • Authoritative campaign data only. No SEC EDGAR Form C parsing (use sec-edgar-filings-scraper), no investor identity scraping (privacy), no comment threads or campaign updates.
  • 7-day default-storage retention on the Apify free plan. Schedule runs and export to your own storage for time-series tracking.
  • No historical tracking. Every run is a fresh snapshot. Pipeline runs into BigQuery / S3 / Snowflake to build deltas.

FAQ

Is there a Wefunder API I can use instead?
Wefunder does not publish an official public API. The Wefunder API this Actor uses is the internal JSON endpoint that the Wefunder SPA calls — /-/companies/explore — which returns the full founder + raise progress + valuation payload. We handle the session management, fingerprint rotation, and retry logic so you get clean structured rows without reverse-engineering anything yourself.
Does this work as a Republic startups scraper and a StartEngine scraper too?
Yes. The Actor bundles a Republic startups scraper path (trending campaigns from the SSR carousel) and a StartEngine scraper path (active offering slugs from the public sitemap) alongside the primary Wefunder path. Republic and StartEngine return sparser rows in v1 because their financial data is client-rendered and requires a full browser to unlock — that is on our v2 roadmap.
Can I use this as an equity crowdfunding data API?
Exactly the use case it was built for. Schedule it weekly, export to your storage of choice (S3, BigQuery, Snowflake via Apify integrations), and treat the output as a continuously refreshed equity crowdfunding data feed. No Crunchbase subscription, no manual exports, no per-platform schema mapping.
What is the Wefunder API address and how does the valuation field work?
The Actor calls https://wefunder.com/-/companies/explore (paginated). Wefunder encodes pre-money valuation as dollar-shorthand text ("$62.1M", "$700K", "$1.2B") in the terms.nb field. This Actor parses that shorthand into a numeric USD float in valuation_usd. Malformed values emit null rather than crashing.
What about the Republic.com API and StartEngine API?
Neither platform publishes an official Republic.com API or StartEngine API for campaign data. This Actor uses the authenticated-but-unauthenticated surfaces each platform exposes: Republic's SSR page JSON-LD for company names, and StartEngine's public XML sitemap for offering slugs. Full financial details require a browser render — see Limitations above.
Why only these three platforms?
Wefunder, Republic, and StartEngine are the three largest US equity-crowdfunding portals by total capital deployed. NextSeed, MicroVentures, and LATAM portals are deliberately out of scope for v1 — open a feature request if you need them.
Does this Actor track valuation changes across runs?
No — every run is a fresh snapshot. Schedule runs and export to your own storage to build a time series. Apify's default run-scoped storage is purged after 7 days on the free plan.
Companion Actor?
Yes — sec-edgar-filings-scraper is the natural follow-up for any campaign you want a deep dive on. Take the slug from this Actor, look up the issuer's CIK on EDGAR, and parse the Form C / Form C-AR PDFs for revenue, expense, share count, and SAFE-term detail.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run