BetaList Startup Listings Scraper avatar

BetaList Startup Listings Scraper

Pricing

from $2.16 / 1,000 item processeds

Go to Apify Store
BetaList Startup Listings Scraper

BetaList Startup Listings Scraper

Export current BetaList startups and supplied public startup pages with descriptions, topics, maker display names, website links and featured dates for recurring launch research.

Pricing

from $2.16 / 1,000 item processeds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Export current BetaList startups for recurring launch research, product discovery, and market mapping. Collect the current home-page startup cards with public detail enrichment, or supply specific BetaList startup URLs.

The output includes startup names, taglines, descriptions, topics, maker display names, public website destinations, featured dates, and source URLs. No login, cookies, or proxy setup is required.

Who is it for?

  • Investors creating a repeatable shortlist of recently featured products.
  • Founders researching adjacent products and positioning.
  • Analysts building topic-based market maps from public launch descriptions.
  • Newsletter researchers reviewing startup launches before editorial selection.

Why use this scraper?

Get one structured row per unique startup without manually copying its profile. Public details are included in the startup record, not separately charged as enrichment. The Actor reads the website destination from BetaList's public redirect without crawling that external website.

This is a bounded snapshot, not an exhaustive historical database. Store prior exports yourself if you need longitudinal comparisons.

Get started

  1. Open the Actor input.
  2. Leave Startup detail URLs empty to use the current home page.
  3. Set Maximum startups per run, such as 10.
  4. Run the Actor and inspect the startup dataset.
  5. Export JSON, CSV, or Excel from Apify, or retrieve dataset items through the API.

Input parameters

ParameterDefaultBehavior
startUrls[]Optional public detail URLs. An empty array discovers current home-page cards; a nonempty array disables discovery.
maxItems10Global maximum unique startup records, integer 1–100.

Only canonical https://betalist.com/startups/<slug> detail URLs are accepted. Query strings, fragments, credentials, other domains, browse pages, and /visit inputs are rejected.

URLs are deduplicated before applying the global limit. Current-page discovery can contain fewer startups than the requested maximum. There is no zero/unlimited option, keyword filter, topic filter, or archive pagination.

Example inputs

Current snapshot:

{"startUrls": [], "maxItems": 10}

Specific startup profile:

{
"startUrls": [{"url": "https://betalist.com/startups/brixcanvas"}],
"maxItems": 1
}

The sample URL is public source data and may change or disappear over time.

Extracted data

FieldMeaning
slugIdentifier from the canonical startup URL.
urlPublic BetaList profile URL.
nameStartup display name.
taglineHeading subtitle on the public profile.
descriptionPublic description paragraphs, or null when missing.
topicsTopic labels, or an empty array.
makersPublic maker display names only, or an empty array.
websitePublic website destination with query and fragment removed, or null.
featuredDateDisplayed featured date in YYYY-MM-DD format, or null.
scrapedAtCollection timestamp in UTC.

Output example

This reduced excerpt reflects a real public profile; the dataset contains all fields listed above.

{
"slug": "brixcanvas",
"url": "https://betalist.com/startups/brixcanvas",
"name": "BrixCanvas",
"tagline": "Turn a conversation into an editable website",
"topics": ["Event Management", "Online Reservations", "E-Commerce Platforms", "Website Builder", "Membership Management"],
"website": "https://brixcanvas.com/",
"featuredDate": "2026-10-24"
}

How much does it cost to scrape BetaList startups?

Pricing is pay per event: a $0.0005 start fee per run plus one item event per saved startup. Topics, descriptions, maker names, and website metadata have no separate event charge.

Apify planPer startup
FREE$0.00414
BRONZE$0.0036
SILVER$0.002808
GOLD$0.00216
PLATINUM$0.00216
DIAMOND$0.00216

Spend tiers follow Apify's qualifying aggregate monthly Store spend, not a private per-Actor bulk schedule. These examples are estimates, not guaranteed invoices.

At BRONZE, one startup costs $0.0041 including the start fee; 10 cost $0.0365; 100 cost $0.3605 if the source supplies that many. You pay for actual saved results, not the requested maximum. The start fee can apply even when a valid run later fails upstream. Consult the pricing tab for the active price and configure an appropriate maximum charge.

Coverage and limitations

The discovery route uses only current startup rows on the BetaList home page. Promoted rows may appear among those cards. It does not traverse the archive or promise all launches, all categories, historical completeness, private contacts, or engagement metrics.

Public maker names are not verified founder identities. Featured dates describe BetaList's displayed feature date, not incorporation or funding dates. Website URLs are destinations reported by BetaList; they are not verified by visiting the target site.

Reliability and failures

Requests are sequential and time-bounded. Transient network errors, HTTP 429, and server errors receive at most two additional attempts with backoff. Unsupported responses, missing startup headings, mismatched canonical pages, and unrecognizable listing markup fail explicitly rather than returning a false empty success.

If a later startup fails, previously saved rows may remain in the dataset. Treat a failed run's output as partial. The SUMMARY key-value record is written only after a successful collection and records requests, retries, bytes, discovered URLs, mode, and saved count.

Integrations

Use an Apify Schedule for periodic snapshots, then join exports on slug or url in your own database. Compare descriptions and topic arrays to identify changed positioning; the Actor itself does not issue change alerts.

Send dataset exports to Google Sheets, a BI tool, or a warehouse using Apify integrations. Keep source URLs in downstream reports so an analyst can inspect the public evidence before making decisions.

API usage

Use your own Apify token through an environment variable. Do not paste credentials into input.

curl -X POST "https://api.apify.com/v2/acts/automation-lab~betalist-startup-listings/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"maxItems":10}'

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/betalist-startup-listings').call({ maxItems: 10 });
const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 10 });
console.log(items);

Python:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/betalist-startup-listings').call(run_input={'maxItems': 10})
print(client.dataset(run['defaultDatasetId']).list_items(limit=10).items)

Use with MCP

Select the stable Actor-specific endpoint:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/betalist-startup-listings"

For Claude Desktop, Cursor, and VS Code clients supporting remote HTTP MCP:

{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/betalist-startup-listings"}}}

Configure authentication according to your client. Example prompts: “Collect 10 current BetaList startups and summarize the topics with source links.” Or: “Extract this public BetaList startup URL and show its description and website.”

Discover actual tool names and arguments with scoped tools/list; selection also supplies run/data tools, not just one Actor tool. Discovery is read-only. For an authorized run, start once and retain the run ID and storage IDs; they are metadata, not rows. If nonterminal, follow the same run with bounded 2/4/8-second backoff capped at 10 seconds and a 120-second deadline. Choose a client timeout longer than the server wait plus transport margin. On timeout, recover the known run rather than start another; if its ID is unknown, report uncertainty.

After success, read bounded dataset pages with explicit fields, limit and offset. For example, admit pages of 20 rows, at most 100 source rows and 64 KiB of serialized UTF-8 content into model context. Enforce byte limits host-side, disclose omitted oversized rows, and report continuation offsets and truncation. If your client cannot enforce that ceiling, do not claim a hard byte guarantee. Full exports stay in storage outside model context. At deadline, report pending and stop polling; failed-run rows are partial. Client discovery/caching capabilities differ; no numeric token-saving guarantee is implied.

Legality, responsible use and privacy

Use public startup information responsibly and comply with applicable laws, source terms, and data-protection obligations. Public availability is not permission for unsolicited outreach or unrestricted republication. This Actor does not retrieve private emails, phone numbers, accounts, or login-protected pages and is not affiliated with BetaList.

No AI provider is used at runtime. Run datasets, logs, and key-value records follow your Apify storage retention settings; you can delete those stores through Apify. There is no persistent Actor-global cache. For help, open an issue on the Actor's Apify page.

Failed operations send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed; reports are retained for 30 days.

FAQ and troubleshooting

Why are there fewer rows than maxItems? The home page is finite, duplicates are removed, and an explicit URL list may contain fewer unique URLs. maxItems is an upper bound, not a coverage promise.

Can I scrape categories or the full archive? Not with this Actor. Supply known public startup detail URLs or use current-home-page discovery.

Why did a URL fail? Check that it is a canonical public startup page. Deleted pages, challenges, upstream errors, or source markup changes fail explicitly. Do not treat partial rows from a failed run as a complete export.

Can I obtain contact details or startup traction? No. Only the documented public profile fields are included.

This is a standalone BetaList launch corpus. Other startup directories represent distinct launch sources, not additional BetaList or funding coverage. Combine exports in your own pipeline only when those differences fit your research question.