Flippa Business Listings Scraper
Pricing
from $0.48 / 1,000 item extracteds
Flippa Business Listings Scraper
Export public Flippa online-business listings with prices, revenue, profit, traffic, category, sale status, verification signals, and source URLs.
Pricing
from $0.48 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
4
Monthly active users
8 days ago
Last modified
Categories
Share
Export public Flippa online-business listings for acquisition sourcing, valuation research, and recurring market monitoring.
The Actor turns Flippa search results into typed dataset rows with asking price, monthly revenue and profit, traffic signals, asset type, category, sale status, multiples, verification flags, and the canonical listing URL.
It works with guided filters or existing flippa.com/search URLs. No Flippa login or private seller data is required.
What can this Flippa scraper do?
- Search open or recently sold Flippa listings.
- Cover websites, SaaS, ecommerce stores, Amazon businesses, apps, domains, and other supported asset types.
- Filter by price and public monthly profit.
- Request verified-revenue or verified-traffic listings.
- Preserve filters from a supplied Flippa search URL.
- Follow result pages until
maxItemsis reached. - Deduplicate listings by stable Flippa listing ID.
- Export structured JSON, CSV, Excel, XML, RSS, or Parquet through Apify datasets.
- Support scheduled runs for recurring acquisition pipelines.
The Actor reads public server-rendered search cards and anonymous listing pages instead of using Flippa's authenticated API. This keeps the default workflow HTTP-only. Public detail enrichment restores metrics that are no longer present in search cards; account-gated data is never accessed.
Who is it for?
Acquisition entrepreneurs
Build a shortlist of online businesses that match budget, profit, category, and verification requirements.
Search funds and brokers
Collect a repeatable feed of public digital-business opportunities and compare asking prices or valuation multiples.
Market analysts
Study category mix, revenue, profit, traffic, and pricing across current or recently sold listings.
Data and automation teams
Send stable listing IDs and source URLs to a spreadsheet, warehouse, CRM, webhook, or change-detection pipeline.
What data does it extract?
| Field group | Example fields |
|---|---|
| Identity | listingId, listingUrl, title, summary |
| Classification | propertyType, category, monetization |
| Price | price, displayPrice, originalPrice, priceDropped |
| Financials | monthlyRevenue, monthlyProfit, trailingTwelveMonthRevenue |
| Subscription metrics | profitMarginPercent, activeSubscribers, churnPercent |
| Traffic | monthlyUniqueVisitors, annualOrganicTraffic, verifiedTraffic |
| Sale state | status, saleMethod, bidCount, openToOffers, underOffer |
| Valuation | profitMultiple, revenueMultiple |
| Verification | verifiedRevenue, verifiedTraffic, manuallyVetted |
| Seller context | sellerLocation, superSeller, brokerSeller |
| Provenance | sourceSearchUrl, scrapedAt |
Values are returned only when Flippa displays them publicly in search results or anonymous listing pages. Confidential listings can therefore contain null financial or traffic fields. Financial values are requested in USD; rounded search values are retained when no exact public USD detail value is available. Signed losses and zero are preserved; foreign-currency displays are not converted or relabeled. Public Profit Margin and Overall Churn are percentage points (37 means 37%), and Total Active Subscribers is a count. These metrics are nullable, are never inferred from rounded financials, and do not establish a churn time period.
How to scrape Flippa listings
- Open the Actor in Apify Console.
- Keep the default business types or choose narrower asset types.
- Select Open or Recently sold.
- Add price, profit, or verification filters if needed.
- Set the maximum number of listings.
- Click Start.
- Open the Dataset tab to preview or export the records.
- Save the task and add a schedule for recurring monitoring.
A useful first run is:
{"propertyTypes": ["website", "saas", "ecommerce_store"],"status": "open","sortBy": "most_relevant","maxItems": 20,"proxyConfiguration": { "useApifyProxy": false }}
Input parameters
| Input | Type | Default | Purpose |
|---|---|---|---|
startUrls | array | empty | Public flippa.com/search URLs whose filters should be reused |
propertyTypes | string array | website, SaaS, ecommerce | Asset types to request |
status | string | open | open or recently sold (won) listings |
saleMethods | string array | all | Auction and/or classified listings |
minPrice | number | empty | Minimum displayed price in USD |
maxPrice | number | empty | Maximum displayed price in USD |
minMonthlyProfit | number | empty | Minimum public average monthly profit |
maxMonthlyProfit | number | empty | Maximum public average monthly profit |
verifiedRevenueOnly | boolean | false | Request listings marked with verified revenue |
verifiedTrafficOnly | boolean | false | Request listings marked with verified traffic |
sortBy | string | most_relevant | Relevance or newest-first ordering |
maxItems | integer | 100 | Maximum unique records, from 1 to 10,000 |
proxyConfiguration | object | disabled | Optional Apify Proxy settings |
When both startUrls and guided filters are supplied, explicitly supplied guided filters override matching URL parameters (including array-form filters). Omitted asset types, status, and sort preserve the URL's filters; the table's runtime defaults apply when no URL is supplied. Saved tasks that already contain guided values continue to use them.
Asset types are matched exactly after normalizing public Flippa labels to schema identifiers. Sold results require observed sale evidence; open, unknown-status, and first-access cards cannot inherit won from a search URL. Unrelated promoted cards are filtered out before counting toward the global maxItems limit.
Only public Flippa search URLs are accepted. Individual listing, login, account, and private API URLs fail with a clear input error.
Output example
A current public result is normalized like this:
{"listingId": "12857417","listingUrl": "https://flippa.com/12857417","title": "Profitable B2B SaaS for fitness coaches","propertyType": "saas","category": "Health and Beauty","monetization": "Services & Subscriptions","price": 436829,"displayPrice": "USD $436,829","monthlyRevenue": 16671,"monthlyProfit": 13202,"profitMarginPercent": null,"activeSubscribers": null,"churnPercent": null,"monthlyUniqueVisitors": 511,"verifiedRevenue": false,"verifiedTraffic": true,"profitMultiple": 2.8,"revenueMultiple": 2.2,"status": "open","saleMethod": "classified","sellerLocation": "France","sourceSearchUrl": "https://flippa.com/search?filter%5Bproperty_type%5D=saas","scrapedAt": "2026-08-31T20:25:03.094Z"}
For example, an anonymous public detail page observed during development reported Profit Margin 37%, Total Active Subscribers 26,396 and Overall Churn 60%; these export as 37, 26396 and 60 when still displayed. Missing or gated metrics remain null.
Titles and metrics change as sellers update listings. Treat the example as a shape demonstration, not a promise that this listing remains available.
How much does it cost to extract Flippa business listings?
Pay-per-event pricing has two parts:
- Start: $0.005 once per run.
- Item: one event for each unique listing saved.
Current item tiers are:
| Plan | Price per listing |
|---|---|
| Free | $0.00092 |
| Bronze | $0.00080 |
| Silver | $0.000624 |
| Gold | $0.00048 |
| Platinum | $0.00032 |
| Diamond | $0.000224 |
At the Bronze tier, 20 listings cost about $0.021 including the start event. One hundred listings cost about $0.085. One thousand listings cost about $0.805.
Failed requests and duplicates are not charged as item events. Apify platform usage may be billed separately according to your plan and proxy settings.
Build an acquisition sourcing workflow
A practical recurring workflow is:
- Create one task for each target segment, such as SaaS or ecommerce.
- Apply budget and monthly-profit thresholds.
- Schedule each task daily or weekly.
- Use
listingIdas the stable key in your destination. - Compare
price,status, and financial fields with the prior run. - Notify an analyst when a new listing or price change appears.
The Actor emits snapshots. It does not maintain history or send alerts itself; use Apify schedules, webhooks, and your destination to implement those steps.
Monitor recently sold business comps
Set status to won and sortBy to most_recent to collect public recently sold records.
{"propertyTypes": ["website", "ecommerce_store"],"status": "won","sortBy": "most_recent","maxItems": 25}
Sold listings can help build directional comparable sets. They are not formal valuations, and some public fields may be hidden or unavailable.
Use a Flippa search URL
Copy a filtered URL from Flippa and provide it in startUrls:
{"startUrls": [{ "url": "https://flippa.com/search?filter%5Bproperty_type%5D=saas&filter%5Bstatus%5D=open" }],"minMonthlyProfit": 500,"maxItems": 50}
For example, saleMethods: ["classified"] overrides both filter[sale_method]=auction and filter[sale_method][]=auction in a supplied URL. Omit saleMethods to preserve the URL's sale methods. Currency is always normalized to USD without discarding other query filters.
The Actor preserves supported query filters, applies explicit input filters, and follows Flippa's public next-page links. Legacy page[number] URLs remain supported.
Export and integrations
Every run writes to the default Apify dataset. From the Dataset tab you can:
- download JSON, CSV, Excel, XML, RSS, or Parquet;
- call the dataset API from a data pipeline;
- connect Google Sheets through an Apify integration;
- trigger a webhook after a successful run;
- send rows to Make, Zapier, n8n, or a custom service;
- load snapshots into BigQuery, Snowflake, Postgres, or another warehouse.
Use listingId for upserts and scrapedAt for snapshot timing.
Run through the Apify API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~flippa-business-listings-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"propertyTypes":["saas"],"status":"open","maxItems":20}'
To wait for the run and retrieve output in one request, use the synchronous dataset-items endpoint supported by the Apify API.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/flippa-business-listings-scraper').call({propertyTypes: ['saas'],status: 'open',minMonthlyProfit: 500,maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/flippa-business-listings-scraper').call(run_input={'propertyTypes': ['website', 'ecommerce_store'],'status': 'won','sortBy': 'most_recent','maxItems': 25,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor-scoped Apify MCP endpoint to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/flippa-business-listings-scraper"
For Claude Desktop, Cursor, or VS Code, add this MCP JSON configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/flippa-business-listings-scraper"}}}
Example prompts:
- “Use the Flippa Business Listings Scraper to return 20 open SaaS listings with at least $500 monthly profit.”
- “Collect the newest 25 recently sold website and ecommerce listings, then summarize price and profit multiples.”
- “Export verified-traffic Flippa businesses below $100,000 and group them by category.”
Reliability and retries
The Actor supports Flippa's current public server-rendered search cards and its legacy embedded search state.
- Direct HTTP is the default and never enables a paid proxy implicitly.
- Request starts are spaced by at least one second, with run-local cookies and coherent headers. Healthy direct and proxy cookie identities expire after 30 requests. Each direct HTTP 429 retires the cookie identity and switches between two direct transports, including later blocks during long pagination runs. This does not change the direct egress IP or guarantee recovery from source-wide rate limits.
- Transient rate limits, network failures, and server errors receive at most three attempts per page. Rate limits use 5/10-second backoff with jitter and honor
Retry-Afterup to 30 seconds; longer cooldowns fail honestly rather than retrying early. - Optional proxy mode reuses healthy sessions for up to 30 requests and retires the whole session/cookie identity on retry. It does not use the direct fallback.
- Exhausted requests include bounded diagnostic facts (search/detail phase, transport, attempt and request counts, HTTP status and a cooldown category), never raw cookies, headers or response bodies.
- Challenge pages, invalid state, and unsupported URLs fail loudly instead of returning misleading empty datasets.
- Pagination stops at source exhaustion or
maxItems. - Records are deduplicated across multiple search URLs.
The default timeout is five minutes. Serial request pacing and detail enrichment mean large limits (up to 10,000) can require substantially longer; increase the run timeout for large exports or split searches into tasks. maxItems is an upper bound, not a promise to finish within the default timeout.
If Flippa changes its public search state, a run can fail until the parser is updated.
Is it legal to scrape Flippa business listings?
This Actor extracts public marketplace information visible without signing in.
- It does not bypass NDAs, subscriptions, accounts, or confidential-detail gates.
- Confidential listings may expose only the limited fields Flippa shows publicly.
- It does not provide seller emails, private documents, or due-diligence materials.
- Data can change between runs and should be verified on the canonical listing page.
- High-frequency collection may trigger source rate limits.
- Respect Flippa's terms, robots guidance, applicable laws, and personal-data obligations.
You are responsible for your collection frequency, storage, and downstream use.
Troubleshooting
Why are some revenue or traffic fields null?
Flippa does not display every metric for every public result. Confidential listings and unverified seller submissions often omit fields. Null means unavailable in the public search result, not zero.
Why did my run return no records?
Review the combined asset, status, price, profit, and verification filters. Try the same URL in a browser and relax one threshold at a time.
Why did the Actor reject my URL?
Only flippa.com/search URLs are supported. Use the guided filters for broad discovery. Individual listing and account pages are intentionally rejected.
Should I enable a proxy?
Usually no. Direct mode is the supported default. Enable an Apify Proxy only when your environment requires it or direct requests receive a source challenge.
FAQ
Does it require a Flippa account?
No. The Actor reads only public search-result data.
Can it scrape individual listing details?
Individual listing URLs are not accepted as input. For each search result, the Actor reads anonymous public listing details to enrich available fields. It never enters confidential or account-gated detail flows.
Can it monitor changes?
Yes, as part of an Apify workflow. Schedule recurring task runs and compare snapshots by listingId. The Actor itself does not retain history or send alerts.
Does maxItems apply to each URL?
No. It is the total unique-record limit across all supplied search URLs.
Are monetary fields always USD?
The normalized numeric price reflects the USD value displayed by the public Flippa search result. Keep displayPrice for the exact source-formatted label.
Is this an official Flippa product?
No. This is an independent Actor and is not affiliated with or endorsed by Flippa.
Related automation-lab Actors
For wider acquisition sourcing, combine this Actor with other public business-marketplace datasets from the automation-lab portfolio in Apify Store. Keep each source in a separate task, then normalize stable IDs, prices, revenue, profit, and source URLs in your downstream pipeline.
Data handling and dependencies
No AI models or external enrichment services are used. Scraping requests go to public Flippa pages and, when explicitly enabled, Apify Proxy. Failed operations also send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed; diagnostic reports are retained for 30 days. Apify hosts runtime, logs, and the run's default dataset; these services follow Apify's terms and your storage settings. Proxy and runtime usage are included in the Actor's operating costs; no off-platform fees or accounts are required.
Output contains public business metrics, listing descriptions, asset URLs, and country-level seller location. Seller contact details, account credentials, private documents, and raw HTML are not saved. Logs contain operational counts and public request URLs, not response bodies or credentials. The Actor keeps no persistent cross-run cache or browsing profiles. Datasets and logs remain in Apify storage under your retention settings until deleted; delete run storage in Console or through the Apify API when no longer needed. Downstream exports have their own retention and deletion requirements.
The Actor uses Apify's standard end-user terms. Flippa is named only to identify the independent data source; no affiliation or endorsement is claimed.
Support
If a run fails, include the run URL, sanitized input, and the failing search URL in an Apify issue. Do not include credentials, private seller documents, or personal information.