BetaList Scraper icon

BetaList Scraper

Scrape BetaList.com startup profiles with founder and contact enrichment. Extract startup names, taglines, descriptions, topics, regions, images,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

BetaList Scraper at a glance

BetaList Scraper is a ready-to-run Apify actor from abotapi for collecting lead generation data. Its documented output includes name, change type (incremental mode), tagline, betalist url and website, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.25 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Lead Generation, Jobs, Automation
Pricing
$2.00 per 1,000 results (Free plan), from $1.25 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
21 options

Scrape BetaList.com startup profiles with founder and contact enrichment. Extract startup names, taglines, descriptions, topics, regions, images, websites, social links, public emails, phone numbers, and founder details.

What BetaList Scraper can do

  • Two ways to source. Search by keyword, topic, region or the latest feed, or paste exact BetaList links, including a single startup page.
  • Full startup profile. Name, tagline, description, topics, regions, feature date, screenshots and logo, plus the resolved company website behind BetaList's own redirect link.
  • Contacts on demand. Turn on contact enrichment to pull public emails, phone numbers and social profile links (LinkedIn, X, Facebook, Instagram, YouTube, GitHub and more) straight from the startup's own site.
  • Filters that matter. Boosted-only, and a feature-date window to keep only startups launched in a given range.
  • Deep, budgeted collection. Walk as many result pages as you choose per source, capped by Max startups so cost stays predictable.
  • Built for monitoring. Incremental mode tracks the same search over time and returns only what's new or changed, and Resume continues one interrupted run without paying twice.

Choose what to collect

These inputs let you configure BetaList Scraper - Startup Profiles, Founders & Contacts. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose how to source startups. 'search' discovers startups from keywords, topics, regions or the latest feed. 'url' collects the exact BetaList pages you paste.

Choices: search, url

queriesarrayKeywords to search on BetaList (e.g. 'fintech', 'ai agents'). Each keyword becomes a search feed. Only applies when mode = search.
topicstringA BetaList topic to collect. Accepts a topic name (e.g. 'Artificial Intelligence'), slug (e.g. 'artificial-intelligence') or full browse path (e.g. 'ai/artificial-intelligence'). A topic that BetaList does not serve fails the run with a clear error. Only applies when mode = search.
regionstringA BetaList region name or slug to collect (e.g. 'california', 'California' or 'united-states'). A region that BetaList does not serve fails the run with a clear error. Only applies when mode = search.
boostedOnlybooleanKeep only startups flagged as Boosted on BetaList. Applies in both modes.
featuredAfterstringKeep only startups featured on or after this date (YYYY-MM-DD). Requires 'Fetch detail pages' since the feature date lives on the profile page.
featuredBeforestringKeep only startups featured on or before this date (YYYY-MM-DD). Requires 'Fetch detail pages'.
Show 14 more inputs
More input fields
InputWhat it controls
urlsarrayOne or more BetaList URLs to collect. Supported: the latest feed, search result pages, topic/browse pages, region pages, and individual startup pages. Filter fields are ignored for startup URLs; results continue from the page number in the pasted URL. Topic pages (/topics/...) are resolved to their canonical /browse/... page before ?page=N is applied. Index pages (/browse, /browse/, /regions) list no startups and are skipped with a warning. Only applies when mode = url.
fetchDetailsbooleanOpen each startup profile page to enrich records with the full description, topics, regions, feature date, screenshots and the resolved website. Adds an extra request per startup.
getContactsbooleanVisit each startup's own website to collect public contact signals: emails, phone numbers and social profile links (LinkedIn, X, Facebook, Instagram, YouTube and more). Adds extra requests per startup.
maxItemsintegerMaximum number of startups to save across the whole run. Set 0 for unlimited (stops at Max pages). This is the main limit.
maxPagesintegerSafety ceiling on how many pages to walk per search/URL source. 0 (default) uses the built-in limit of 200 pages per source; any positive value is used as given. The run normally stops at Max startups first.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large collection without returning or charging for startups already collected there. Use this after an interrupted run. For recurring monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns all matching startups as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED startups. Turn on "Emit unchanged" or "Emit expired" only when you also want those startups returned (and billed). State is kept separately per mode/keywords/topic/region/URLs/filters/detail-fetch setup; use State key when you want to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringName this monitoring campaign explicitly so Incremental mode's saved state survives input tweaks that don't change what you're tracking, or so two different setups deliberately share one baseline. Leave blank to auto-derive the key from mode, keywords/topic/region/URLs, filters and Fetch detail pages.
emitUnchangedbooleanIncremental mode only. When off (default), a startup identical to the last run is suppressed, not returned and not billed. Turn on to return (and pay for) every unchanged startup too, e.g. to keep a full mirror of the search.
emitExpiredbooleanIncremental mode only. When on, a startup previously tracked but no longer found is returned once with changeType EXPIRED (and billed like any other row). Only fires after a complete, uncapped scan with no Resume in effect, a partial run never marks live startups expired.
ignoreFieldsForChangesarrayIncremental mode only. Field names (use a dot for nested fields, e.g. source.scraped_time) that must NOT count as a change. Ignored fields stay in the output; they just no longer turn a startup into UPDATED or appear in changedFields. These are always ignored: the scrape time, the randomized similar_startups list and the alias fields product_name, long_description, website and featured_date (copies of name, description, website_url and featured_at, which are tracked).
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify then Settings then API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

nameName (text)
changeTypeChange type (incremental mode) (text)
one_linerTagline (text)
urlBetaList URL (link)
website_urlWebsite (link)
boostedBoosted (boolean)
featured_atFeatured (text)
topic_namesTopics (array)
maker_nameMaker (text)
primary_image_urlImage (image)
contactsContacts (object)
idID (number)
Show 7 more fields
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
long_descriptionDescription (text)
regionsRegions (array)
image_urlsImages (array)
maker_linkMaker link (link)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "type": "startup",
  "id": 10000001,
  "url": "https://betalist.com/startups/sample-startup",
  "slug": "sample-startup",
  "name": "Sample Startup",
  "one_liner": "A short one-line pitch for the product",
  "short_description": "A short one-line pitch for the product",
  "description": "Full description text appears here when detail pages are fetched.",
  "visit_url": "https://betalist.com/startups/sample-startup/visit",
  "website_url": "https://sample-startup.example.com",
  "website_domain": "sample-startup.example.com",
  "boosted": false,
  "featured_at": "2026-01-01",
  "featured_date_label": "January 1, 2026",
  "topics": [
    {
      "name": "Artificial Intelligence",
      "slug": "artificial-intelligence",
      "url": "https://betalist.com/browse/ai/artificial-intelligence"
    }
  ],
  "topic_names": [
    "Artificial Intelligence"
  ],
  "makers": [
    {
      "name": "Sample Maker",
      "handle": "samplemaker",
      "url": "https://betalist.com/@samplemaker"
    }
  ],
  "maker_name": "Sample Maker",
  "maker_link": "https://betalist.com/@samplemaker",
  "maker_identifier": "samplemaker",
  "product_name": "Sample Startup",
  "long_description": "Full description text appears here when detail pages are fetched.",
  "website": "https://sample-startup.example.com",
  "featured_date": "2026-01-01",
  "image_urls": [
    "https://images.betalist.com/startup/sample-startup/cover.jpg"
  ],
  "primary_image_url": "https://images.betalist.com/startup/sample-startup/cover.jpg",
  "logo_url": "https://cdn.betalist.com/000000",
  "regions": [
    {
      "name": "California",
      "slug": "california",
      "url": "https://betalist.com/regions/california"
    }
  ],
  "similar_startups": [
    {
      "slug": "another-sample-startup",
      "name": "Another Sample Startup",
      "url": "https://betalist.com/startups/another-sample-startup",
      "tagline": "A related fictional pitch",
      "boosted": false
    }
  ],
  "contacts": {
    "emails": [
      "hello@example.com"
    ],
    "phone_numbers": [
      "+10000000000"
    ],
    "social_media": {
      "linkedin": "https://www.linkedin.com/company/example",
      "twitter": "https://x.com/example"
    }
  },
  "contacts_lookup_url": "https://sample-startup.example.com",
  "source": {
    "betalist_url": "https://betalist.com/startups/sample-startup",
    "seed_value": "https://betalist.com/topics/artificial-intelligence",
    "source_url": "https://betalist.com/startups/sample-startup",
    "scraped_time": "2026-01-01T00:00:00.000Z"
  }
}

Ways to use this data

  • Investors and scouts: track newly launched startups by topic or region to build a fresh deal-sourcing list.
  • Sales and growth teams: build prospect lists with verified websites, emails and social profiles for outbound outreach.
  • Market researchers: map which topics and regions are trending on BetaList over time.
  • Founders and PR teams: monitor competitors' launches, taglines and feature dates.
  • Newsletter and content creators: source fresh startup profiles for roundups and features.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does BetaList Scraper return?

The documented output for BetaList Scraper includes name, change type (incremental mode), tagline, betalist url, website, boosted, featured and topics. Availability of each field depends on the source page and the selected mode.

How much does BetaList Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.25 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed startups on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Later runs then classify each startup as new, updated, unchanged, reappeared or gone against the previous run for that same search, and unchanged ones are not billed unless you ask for them.

What is the difference between Resume and Incremental mode?

Resume continues one specific interrupted run using a pasted run or dataset ID, useful right after a run stopped partway through. Incremental mode is for running the same search again and again, for example daily, and remembers state itself so you only get what changed. They solve different problems and are not meant to be combined on the same tracked search.

Why did my run return fewer startups than expected, or none at all?

BetaList itself shows only the first 60 startups for a keyword search and a single page of recent startups on the latest feed, so those sources cannot return more. If BetaList pages load but the startup list on them cannot be read, the run fails with a message saying so instead of finishing empty. A boosted-only or feature-date filter can legitimately drop every card fetched, which gives a normal successful run with an empty dataset. A single source (a keyword, topic, region or feed) whose requests are all refused is skipped with a warning while other sources continue. If no BetaList page could be loaded at all, the run fails with a connection message (see Plan Requirement) rather than finishing empty. A pasted single startup URL whose page cannot be read (removed or blocked) is skipped with a warning and is not saved or charged. Check the run log for warnings, then try again or choose a residential connection group.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with BetaList Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.