Dealroom Startup & Market Map Scraper avatar

Dealroom Startup & Market Map Scraper

Pricing

from $1.00 / 1,000 company intelligence records

Go to Apify Store
Dealroom Startup & Market Map Scraper

Dealroom Startup & Market Map Scraper

Scrape Dealroom.net market maps, company lookup results, live signals, and newly founded startup records. Supports Dealroom URLs, company names, market-map ids, sorting, capped runs, rich normalized company fields, and optional MCP connector export.

Pricing

from $1.00 / 1,000 company intelligence records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

6

Monthly active users

9 hours ago

Last modified

Share

Dealroom Scraper: Startup, Funding and Market-Map Intelligence

Dealroom Scraper turns Dealroom into a clean startup and funding intelligence feed. Search public market maps, pull every company inside one, resolve company names to their Dealroom profile links, follow pasted Dealroom links, watch live funding signals, or track just-founded startups, all normalized into one company record shape with industries, funding, founders, locations and social links. Export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Six ways to collect company data. Search market maps by keyword, pull every company inside one, resolve company names, paste Dealroom links, watch live funding signals, or track just-founded startups. No need to build feed URLs by hand.
  • One normalized record shape. Every mode returns the same company envelope: identity, market and product profile, growth and traction, funding, investors, locations, web and social presence, plus the complete public source object so nothing is lost.
  • Predictable, capped runs. Max items defaults to a finite 20, so a first run never surprises you. Set it to 0 to remove the cap entirely.
  • Resume big pulls for free. Paste a previous run or dataset id and the next run skips everything already collected there, so you never pay twice.
  • Built for schedules. Incremental mode returns only new, updated and reappeared records on recurring runs, and a run that could not fully scan the tracked search skips expiry detection instead of guessing.
  • Optional connector export. Pipe a summary of every saved record into Notion, Linear, Airtable or another Apify actor, as an extra step that never changes the dataset.
  • Drop-in compatible inputs. A limit alias and a reserved maxPages field make it easy to swap in for a similarly shaped scraper without rewriting your integration.

Use Cases

  • VC and startup scouts: monitor Dealroom market maps for new entrants and funding signal changes in a sector.
  • Growth and competitive intelligence teams: resolve named competitors to their Dealroom profile links, and pull market-map companies to track public funding and employee signals over time.
  • Newsletter and media teams: pull just-founded startups and live funding signals to source story leads.
  • Data and research teams: build a normalized company database from one or more market maps for internal analysis.
  • Sales and business development: watch a target account list, by name or by URL, for material changes using incremental mode.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
type"company" (also "marketmap", "company_lookup", "signal" depending on mode)
id118442
url"https://app.dealroom.co/companies/example-ai"
record_id"example-ai"
company_name"Example AI"
company_website"https://example-ai.com"
company_identity.tagline"AI infrastructure for enterprise teams"
company_identity.about"Example AI builds developer tools for..." (just-founded startups and market-map search rows; null in market-map companies, lookup and signal records)
market_and_product_profile.industries[{ "name": "Artificial Intelligence" }]
market_and_product_profile.tags[{ "name": "Seed" }]
market_and_product_profile.lists{ "items": [{ "title": "AI Startups 2025", "id": "53885" }], "total": 1 } (market-map companies mode)
growth_and_traction.employees"11-50" (market-map companies mode)
funding_and_financials.total_funding_enhanced{ "amount": 4200000, "currency": "USD" }
investors_and_ownership.founders[{ "name": "Jane Doe" }]
locations_and_operations.hq_locations[{ "city": "Berlin", "country": "Germany" }]
locations_and_operations.launch_year2022
web_and_social_presence.linkedin_url"https://linkedin.com/company/example-ai" (just-founded startups only)
news_and_signals.news_availabletrue (lookup and company-URL results only, when "Include news metadata" is on and a news page exists; always false for other record types)
news_and_signals.sentiment_availablefalse
source_recordthe untouched public source object for that row
scrape_metadata.source_page_url"https://app.dealroom.co/lists/53885"
scrape_metadata.seed_input_type"marketmap"
scrapedAt"2026-09-28T10:00:00.000Z"

A marketmaps-mode run returns type "marketmap" records instead: one row per public market map, with company_name holding the map's title, url its Dealroom charts link, company_identity.about and tagline both set to the map's description, and market_and_product_profile.lists/lists_ids pointing back at the map itself, while funding, employee and founder fields stay empty. A lookup-mode run returns type "company_lookup" records: just an identity path/name/url match plus news_and_signals.news_available/sentiment_available flags, with no funding, industry or founder data because the public lookup index does not expose it. A liveSignals-mode run returns type "signal" records: id and company_name derived from the signal headline text since the feed has no upstream id, company_identity.tagline holding the short description, locations_and_operations.hq_locations with just a city, funding_and_financials.total_funding_enhanced holding the signal amount, and news_and_signals.signal_type/signal_time describing the event, with no website, industry or founder data.

How to Use

  1. Pick a mode: search market maps, pull every company in one market map, look up companies by name, paste Dealroom URLs, watch live funding signals, or track just-founded startups.
  2. Fill in the fields for that mode: search query, market-map ids, company names, or start URLs.
  3. Set Max items to control run size and cost, and switch news or sentiment enrichment on if you want those signals.
  4. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.

Search market maps by keyword:

{
"mode": "marketmaps",
"searchQuery": "climate tech",
"maxItems": 20
}

Every company inside one market map, sorted by funding:

{
"mode": "marketmap",
"marketmapIds": ["landscape-53885"],
"sortBy": "funding",
"maxItems": 100
}

Look up specific companies by name:

{
"mode": "lookup",
"companyNames": ["OpenAI", "Anthropic"],
"includeNews": true,
"includeSentiment": true
}

Paste Dealroom links (company, list, or landscape):

{
"mode": "urls",
"startUrls": [
"https://app.dealroom.co/lists/53885",
"https://app.dealroom.co/companies/openai"
],
"maxItems": 10
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/dealroom-co-scraper").call(run_input={"mode": "marketmap", "marketmapIds": ["landscape-53885"]})
for company in client.dataset(run["defaultDatasetId"]).iterate_items():
print(company["company_name"], company["url"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/dealroom-co-scraper').call({ mode: 'marketmap', marketmapIds: ['landscape-53885'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one specific interrupted run: paste its run or dataset id and this run appends only records not already collected there, so you don't pay twice.
  • Incremental mode (incrementalMode) is for scheduling the same search again and again. State is kept per mode, search, market-map ids, company names, sort order and enrichment toggles (raising Max items or adding a connector never starts a new baseline). Each record is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED, or EXPIRED. EXPIRED is produced only after a run that proved a complete scan of the tracked search: no source was skipped, no source returned an unexpected shape, Max items did not cut the run short, and Resume was not used in the same run. REAPPEARED only occurs for a record an earlier run marked EXPIRED, so it requires Emit expired to have been on. stateKey names or shares the stored state; leaving it empty derives one automatically from the search settings. With Incremental mode off, output is exactly as before.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. If the picker is empty, you haven't authorized a connector yet.
  3. For Notion, also set notionParentPageUrl to the page where records should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip. If a connector's data is not found or is not connected to your account, that connector is skipped with a warning and the dataset is unaffected.

Input Parameters

ParameterTypeDefaultDescription
modestringmarketmapsCollection mode: search market maps, market-map companies, company name lookup, Dealroom URLs, live funding signals, or just-founded startups.
startUrlsarraynone (prefill: two example Dealroom URLs)Dealroom company, list, or landscape URLs (urls mode). Company URLs resolve through the public lookup index; list and landscape URLs collect market-map companies.
searchQuerystringnone (prefill: "AI")Search term for public market-map discovery (marketmaps mode).
marketmapIdsarray["landscape-53885"]Market-map ids or Dealroom list URLs (marketmap mode).
companyNamesarray["OpenAI", "Anthropic"]Company names to resolve through the public lookup index (lookup mode).
includeNewsbooleantrueAdds the news_available flag to each saved record. The enrichment fee applies only to a record that actually gains a real signal, not merely for having this on.
includeSentimentbooleantrueAdds the sentiment_available flag to each saved record. Same enrichment-fee rule as above.
sortBystringsourceSort saved rows: source order, company name A-Z, newest launch year first, or highest funding first.
maxItemsinteger20Maximum rows to save. 0 removes the cap; the selected public source may still return fewer rows than requested.
limitintegernoneCompatibility alias for competitor-style inputs. Only applies when Max items is left at its default of 20; an explicitly different Max items value always wins.
maxPagesinteger0 (unused)Reserved for competitor-input compatibility. Every mode fetches each target in a single request, so there is no page walk to bound. The run stops at Max items regardless of this field.
pageSizeinteger50Page size requested from the source feed. Used only in marketmaps (search) and liveSignals mode.
mcpConnectorsarraynoneOptional: send a summary of each saved record to apps you authorized under Integrations (Notion, Linear, Airtable, Apify).
notionParentPageUrlstringnoneNotion connector only: page under which records are created.
maxNotifyListingsinteger50Cap on records written to each connector per run. Does not affect the dataset.
proxyConfigurationobjectApify datacenter proxy, no groupsAccepted for compatibility. Requests currently go directly to Dealroom's public endpoints, so this setting does not change how data is fetched.
resumeFromRunIdstringnoneContinue one specific interrupted run: paste its run or dataset id and this run appends only records not already collected there.
incrementalModebooleanfalseTurn on for recurring monitoring of the same search. Classifies each record NEW, UPDATED, UNCHANGED, REAPPEARED, or EXPIRED against saved state.
stateKeystringnone (auto-derived from mode/search/filter settings)Name a monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs.
emitUnchangedbooleanfalseAlso return, and bill, records that have not changed since the last incremental-mode run.
emitExpiredbooleanfalseAlso return, and bill, records that were tracked before but are no longer found, marked EXPIRED. Only produced after a run that fully scanned the tracked search.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"type": "company",
"id": 118442,
"url": "https://app.dealroom.co/companies/example-ai",
"record_id": "example-ai",
"company_name": "Example AI",
"company_website": "https://example-ai.com",
"scrape_metadata": {
"source_page_url": "https://app.dealroom.co/lists/53885",
"seed_identifier": "landscape-53885",
"seed_input_type": "marketmap",
"seed_input_value": "https://app.dealroom.co/lists/53885",
"results_page_index": 1,
"result_index": 4,
"extraction_method": "public_feed",
"scraped_time": 1780000000
},
"company_identity": {
"name": "Example AI",
"tagline": "AI infrastructure for enterprise teams",
"about": null,
"path": "example-ai",
"website_url": "https://example-ai.com",
"listing_page": "https://app.dealroom.co/companies/example-ai"
},
"market_and_product_profile": {
"industries": [{ "name": "Artificial Intelligence" }],
"tags": [{ "name": "Seed" }],
"lists": { "items": [{ "title": "AI Startups 2025", "id": "53885", "type": "marketmap", "is_public": true }], "total": 1 },
"lists_ids": ["53885"]
},
"growth_and_traction": {
"employees": "11-50",
"employees_latest": null,
"traffic": { "visitors": null, "sources": [], "top_countries": [] }
},
"funding_and_financials": {
"total_funding_enhanced": { "amount": 4200000, "currency": "USD" },
"investments": [],
"revenues": []
},
"investors_and_ownership": {
"founders": [{ "name": "Jane Doe" }],
"investors": { "items": [], "total": 0 }
},
"locations_and_operations": {
"hq_locations": [{ "city": "Berlin", "country": "Germany" }],
"launch_year": 2022,
"growth_stage": null,
"company_status": null
},
"web_and_social_presence": {
"linkedin_url": null,
"twitter_url": null,
"facebook_url": null,
"instagram_handle": null
},
"news_and_signals": {
"news_available": false,
"sentiment_available": false,
"signal_type": null,
"signal_time": null
},
"source_record": {
"id": 118442,
"name": "Example AI",
"tagline": "AI infrastructure for enterprise teams"
},
"scrapedAt": "2026-09-28T10:00:00.000Z"
}

Plan Requirement

Dealroom's public endpoints are fetched directly, so no special proxy setup is needed. If you see repeated source errors, wait and re-run later, or lower Max items.

FAQ

How much does it cost?

This actor is pay per event: a small one-time run fee, a fee per saved record, and an optional enrichment fee that is only charged for a record that actually gained a real news or sentiment signal, never merely for having the toggle switched on. The Pricing tab on the actor page shows the current rates. Use Max items to cap the cost of any run.

This actor collects only publicly available startup and funding information. You are responsible for how you use it: follow Dealroom's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Company facts such as funding amounts and founding years are generally factual, but descriptions and other editorial content may be subject to third-party rights.

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

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only NEW and UPDATED records (plus REAPPEARED if you also use Emit expired) for that saved search, and unchanged records are not returned or billed unless you turn on Emit unchanged.

Why did my run return no EXPIRED records even with Emit expired on?

EXPIRED records are only produced after a run that proved it scanned the entire tracked search: no source was skipped, no source returned an unexpected shape, Max items did not cut the run short, and Resume from a previous run was not used. If any of those happened, the run logs why expiry detection was skipped and leaves the previous state untouched so the next scheduled run can try again.

Why did my run fail instead of returning an empty dataset?

Only two situations fail the run outright: a Resume from a previous run id that this Apify account cannot read, and turning on Incremental mode together with Resume when that state key already has saved records (remove Resume, or use a different State key). Every other problem, such as a source that could not be reached or returned an unexpected shape, is logged as a warning and the run still succeeds, returning whatever could be collected, which may be an empty dataset.

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 a summary of results into Notion, Linear or Airtable.

πŸ”— Want more e-commerce data?

Pair this actor with these related scrapers from the same team:

πŸ“‡ BetaList Scraper
Scrape BetaList.com startup profiles with founder and contact enrichment. Extract startup...
🏷️ 2dehands & 2ememain
Scrape classifieds from 2dehands.be and 2ememain.be by keyword, filters, or URLs. Returns...
πŸ“‡ Yellow Pages AU
From $1/1K. Scrape business listings from Yellow Pages Australia by type and location...
🧩 Yandex Maps Scraper / ΠŸΠ°Ρ€ΡΠ΅Ρ€ ЯндСкс ΠšΠ°Ρ€Ρ‚
Scrape businesses and places from Yandex Maps by search term or URL for research, leads...
πŸ’Ό Gupy Jobs Scraper
Scrape public jobs from Gupy.io by keyword, state, city, workplace type, job type...
πŸ›’ The Warehouse NZ Scraper
Scrape The Warehouse New Zealand search results, category pages, and direct product URLs...

πŸ‘‰ Browse all abotapi scrapers

πŸ’¬ Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • πŸ› οΈ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.