# Flippa Scraper (`solidcode/flippa-scraper`) Actor

\[💰 $0.5 / 1K] Extract detailed data from Flippa.com digital asset listings — financials, traffic metrics, valuation multiples, verification badges, and sale status for websites, SaaS, apps, and domains.

- **URL**: https://apify.com/solidcode/flippa-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 11 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Flippa Listings Scraper

Extract detailed listing data from Flippa.com — the world's largest marketplace for buying and selling websites, SaaS businesses, apps, domains, and eCommerce stores. Get financial metrics, traffic data, verification badges, sale status, and **50+ data fields** for every listing. Built for acquisition buyers, brokers and market analysts who need Flippa's whole board in a spreadsheet instead of clicking through it card by card.

### Why This Scraper?

- **11 financial metrics per listing** — monthly revenue, annual revenue, TTM revenue, monthly profit, annual profit, profit margin, monthly expenses, revenue multiple, profit multiple, asking price and original price
- **9 property types in one dropdown** — Website, SaaS, eCommerce, App, Domain Only, AI Apps & Tools, Content Site, Marketplace and Service Business, with no URL query strings to hand-build
- **Price drop detection** — every reduced listing carries its original price, its current price and the exact drop percentage, so motivated sellers surface instantly
- **Three independent quality signals** — verified revenue, verified traffic and the Super Seller badge, plus the named source each figure came from (Google Analytics, Shopify, Stripe, PayPal, QuickBooks, Amazon Seller)
- **Sold prices, not just asking prices** — switch Listing Status to Sold and export completed Flippa sales with their final price and bid count
- **Auction fields that stay valid** — bid count, an ISO-8601 end date, and a stable sale label ("Asking Price", "Starting Price", "Highest Bid" or "Sold") instead of an on-page countdown that is wrong an hour after export
- **No promo rows, no repeats** — Flippa's "early access" ad block and repeated listings are stripped out, so every row you pay for is a listing you asked for
- **Three input styles, combinable in one run** — paste search URLs from your browser, drop in specific listing URLs, or use the dropdowns
- **From $0.42 per 1,000 listings** — among the lowest prices on Apify for marketplace data

### Use Cases

**Investment Research & Due Diligence**

- Screen thousands of digital assets by revenue, profit margin, and valuation multiples
- Compare asking prices across similar property types and categories
- Track price drops to find motivated sellers and negotiation opportunities

**Market Intelligence**

- Analyze SaaS, eCommerce, and content site valuations over time
- Benchmark revenue multiples and profit multiples by industry and property type
- Monitor listing volume and pricing trends across asset categories

**Deal Sourcing & Brokerage**

- Build a pipeline of listings matching specific investment criteria
- Identify verified, high-quality listings with strong financials
- Track auction activity, bid counts, and time-to-sale patterns

**Competitive Analysis**

- Discover what types of digital businesses are selling and at what prices
- Analyze monetization methods, platforms, and site ages across listings
- Study which categories attract the most bids and watchers

### Getting Started

#### Browse All Active Listings

The simplest way to start — no URLs needed. Just set how many results you want:

```json
{
    "maxResults": 100
}
```

#### Filter by Property Type

Find specific types of digital assets:

```json
{
    "propertyType": "saas",
    "status": "open",
    "maxResults": 200
}
```

#### Use a Flippa Search URL

Apply filters on Flippa.com in your browser, then paste the URL exactly as it appears in the address bar:

```json
{
    "searchUrls": [
        "https://flippa.com/search?filter[property_type]=saas&filter[status]=open&filter[price][max]=50000"
    ],
    "maxResults": 500
}
```

#### Scrape Specific Listings

Provide direct listing URLs to get full data for specific assets:

```json
{
    "listingUrls": [
        "https://flippa.com/12345678",
        "https://flippa.com/87654321"
    ]
}
```

#### Combine Everything

Mix search URLs, listing URLs, and filters in a single run:

```json
{
    "searchUrls": ["https://flippa.com/buy/sitetype/saas"],
    "listingUrls": ["https://flippa.com/12345678"],
    "propertyType": "ecommerce",
    "status": "won",
    "maxResults": 1000
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchUrls` | string\[] | `[]` | Flippa search or category page URLs. Apply filters on Flippa.com first, then copy the URL from your browser |
| `listingUrls` | string\[] | `[]` | Direct URLs to specific Flippa listings (e.g., `https://flippa.com/12345678`) |

#### Filters & Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum number of listings to extract. Set to 0 for no limit |
| `propertyType` | string | All Types | Filter by asset type: Website, SaaS, eCommerce, App, Domain Only, AI Apps & Tools, Content Site, Marketplace, or Service Business |
| `status` | string | Active Listings | Choose Active Listings, Sold Listings, or All Listings |

### Output

Each listing contains up to 50+ structured fields. Here's an example:

```json
{
    "id": "12345678",
    "url": "https://flippa.com/12345678",
    "displayName": "projecttool.io",
    "title": "Profitable SaaS Platform - Project Management Tool",
    "summary": "Established SaaS with 500+ paying customers and 85% gross margin",
    "propertyType": "SaaS",
    "category": "Internet",
    "primaryPlatform": "Custom Built",
    "propertyName": "projecttool.io",
    "monetization": "Subscription",
    "siteAge": "3 years",
    "businessLocation": "United States",
    "price": 150000,
    "priceFormatted": "USD $150,000",
    "originalPrice": 175000,
    "priceDrop": true,
    "priceDropPercent": 14,
    "currency": "USD $",
    "monthlyRevenue": 12500,
    "annualRevenue": 150000,
    "ttmRevenue": 145000,
    "monthlyProfit": 9400,
    "annualProfit": 112800,
    "profitMargin": 75.2,
    "monthlyExpenses": 3100,
    "revenueMultiple": 1.0,
    "profitMultiple": 1.33,
    "uniqueVisitorsPerMonth": 45000,
    "annualOrganicTraffic": 380000,
    "authorityScore": 32,
    "saleMethod": "classified",
    "saleMethodTitle": "Asking Price",
    "status": "open",
    "bidCount": 5,
    "endDate": "2026-09-18T00:00:00Z",
    "underOffer": false,
    "openToOffer": true,
    "isVerified": true,
    "hasVerifiedTraffic": true,
    "hasVerifiedRevenue": true,
    "isSuperSeller": false,
    "isBrokerSeller": false,
    "isEditorsChoice": true,
    "isSponsored": false,
    "isConfidential": false,
    "isManagedByFlippa": false,
    "isReadyMade": false,
    "isDomainOnly": false,
    "equitySalePercent": "100",
    "verifications": [
        {"provider": "google_analytics", "description": "Traffic verified via Google Analytics"}
    ],
    "integrations": ["google_analytics", "stripe"],
    "searchUrl": "https://flippa.com/buy/sitetype/saas",
    "scrapedAt": "2026-08-10T10:30:00.000Z"
}
```

#### Field Reference

**Core listing details**

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique listing identifier |
| `url` | string | Direct URL to the listing page |
| `displayName` | string | The best label for the listing, filled on every row: the property name, or the headline when the name is hidden behind an NDA. Use it as the identifying column in spreadsheets and dashboards |
| `title` | string | Listing headline |
| `summary` | string | Short description of the listing |
| `propertyType` | string | Asset type (SaaS, eCommerce, Website, App, etc.) |
| `category` | string | Industry category (Internet, Business, etc.) |
| `primaryPlatform` | string | Platform the asset is built on (WordPress, Shopify, Custom Built, etc.), where the seller provides it |
| `propertyName` | string | Name or domain of the property. Empty on confidential listings, where the seller's identity is hidden until you sign an NDA — `isConfidential` is `true` on those, and `displayName` still identifies the row |
| `monetization` | string | Revenue method (Subscription, Ads, Affiliate, eCommerce, etc.) |
| `siteAge` | string | How long the site has existed (e.g., "3 years") |
| `businessLocation` | string | Business location (e.g., "United States") |
| `equitySalePercent` | string | Percentage of equity being sold |

**Pricing**

| Field | Type | Description |
|-------|------|-------------|
| `price` | number | Current asking or sale price |
| `priceFormatted` | string | Formatted price with currency (e.g., "USD $150,000") |
| `originalPrice` | number | Original price before any reduction |
| `priceDrop` | boolean | Whether the price has been reduced |
| `priceDropPercent` | number | Percentage of price reduction |
| `currency` | string | Currency label (e.g., "USD $") |

**Financials & valuation**

| Field | Type | Description |
|-------|------|-------------|
| `monthlyRevenue` | number | Average monthly revenue |
| `annualRevenue` | number | Annual revenue (monthly x 12) |
| `ttmRevenue` | number | Trailing twelve months revenue |
| `monthlyProfit` | number | Average monthly net profit |
| `annualProfit` | number | Annual net profit (monthly x 12) |
| `profitMargin` | number | Profit margin as a percentage |
| `monthlyExpenses` | number | Average monthly expenses |
| `revenueMultiple` | number | Valuation multiple based on revenue |
| `profitMultiple` | number | Valuation multiple based on profit |

**Traffic**

| Field | Type | Description |
|-------|------|-------------|
| `uniqueVisitorsPerMonth` | number | Monthly unique visitors |
| `annualOrganicTraffic` | number | Annual organic search traffic |
| `authorityScore` | number | SEO authority score |

**Sale status & auction**

| Field | Type | Description |
|-------|------|-------------|
| `saleMethod` | string | Sale method ("auction" or "classified") |
| `saleMethodTitle` | string | Stable sale label: "Asking Price", "Starting Price", "Highest Bid" or "Sold" |
| `status` | string | Listing status ("open" or "won") |
| `bidCount` | number | Number of bids placed |
| `endDate` | string | Listing end date (ISO 8601) |
| `underOffer` | boolean | Whether an offer is pending |
| `openToOffer` | boolean | Whether the seller accepts offers |

**Verification & badges**

| Field | Type | Description |
|-------|------|-------------|
| `isVerified` | boolean | Listing verified by Flippa |
| `hasVerifiedTraffic` | boolean | Traffic stats are independently verified |
| `hasVerifiedRevenue` | boolean | Financial stats are independently verified |
| `isSuperSeller` | boolean | Seller has Super Seller badge |
| `isBrokerSeller` | boolean | Listed by a broker |
| `isEditorsChoice` | boolean | Editor's Choice pick |
| `isSponsored` | boolean | Sponsored or promoted listing |
| `isConfidential` | boolean | Confidential listing (requires NDA). When `true`, `propertyName` is empty by design — use `displayName` or `title` to identify the business |
| `isManagedByFlippa` | boolean | Managed by Flippa team |
| `isReadyMade` | boolean | Turnkey/starter site |
| `isDomainOnly` | boolean | Domain-only sale |
| `verifications` | array | Verification badges with provider and description |
| `integrations` | array | Connected services (e.g., "google\_analytics", "shopify", "stripe") |

**Run metadata**

| Field | Type | Description |
|-------|------|-------------|
| `searchUrl` | string | The search URL that found this listing |
| `scrapedAt` | string | Timestamp of when data was collected (ISO 8601) |

### Tips for Best Results

- **Start with filters** — Use the Property Type and Listing Status dropdowns instead of hand-building URL query strings
- **Use search URLs for the filters the dropdowns don't cover** — Flippa's own search supports price range, site age, keyword search, top-level domain and auction-only. Set them on flippa.com, then copy the URL. Flippa has no revenue or profit range filter, so collect the listings and sort on `monthlyRevenue` or `monthlyProfit` in your export instead
- **Copy the URL exactly as Flippa wrote it** — hand-editing a filter into something Flippa doesn't recognise makes it return a handful of unrelated listings instead of an error. The run log warns you when that happens, so check it if a run comes back much smaller than expected
- **Combine inputs** — Mix search URLs for broad discovery with direct listing URLs for specific assets you're tracking
- **Check verification flags** — Sort your results by `isVerified`, `hasVerifiedRevenue` and `hasVerifiedTraffic` to focus on higher-quality listings
- **Monitor price drops** — Use the `priceDrop` and `priceDropPercent` fields to find motivated sellers
- **Track a whole vertical over time** — run the same Property Type on a schedule and compare `profitMultiple` and `revenueMultiple` week to week. That is how you spot a category repricing before the asking prices catch up

### Pricing

**From $0.42 per 1,000 listings** — among the lowest prices on Apify for marketplace data. Bronze, Silver and Gold subscribers pay progressively less; the table shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.05 | $0.048 | $0.044 | $0.042 |
| 1,000 | $0.50 | $0.48 | $0.44 | $0.42 |
| 10,000 | $5.00 | $4.80 | $4.40 | $4.20 |
| 100,000 | $50.00 | $48.00 | $44.00 | $42.00 |

A "result" is any listing row in the output dataset. Platform fees (compute, storage) are additional and depend on your Apify plan.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Custom API integrations
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate investment research, market intelligence, and business analysis. Users are responsible for complying with applicable laws and Flippa's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose.

# Actor input Schema

## `searchUrls` (type: `array`):

Paste Flippa search or category page URLs here. Apply filters on Flippa.com first, then copy the URL from your browser. Example: https://flippa.com/buy/sitetype/saas

## `listingUrls` (type: `array`):

Direct URLs to specific Flippa listings. Example: https://flippa.com/12345678

## `maxResults` (type: `integer`):

Maximum number of listings to extract. Set to 0 for no limit. Recommended: 100-1000 to keep costs reasonable.

## `propertyType` (type: `string`):

Filter by the type of digital asset. Leave on 'All Types' to include everything.

## `status` (type: `string`):

Choose whether to collect active listings, sold listings, or both.

## `proxyConfiguration` (type: `object`):

Proxy settings for reliable data collection. The default settings work for most cases.

## Actor input object example

```json
{
  "searchUrls": [],
  "listingUrls": [],
  "maxResults": 100,
  "status": "open",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped listings with key financial and status fields.

## `detail` (type: `string`):

All extracted fields for each listing.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchUrls": [],
    "listingUrls": [],
    "maxResults": 100,
    "propertyType": "",
    "status": "open",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/flippa-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchUrls": [],
    "listingUrls": [],
    "maxResults": 100,
    "propertyType": "",
    "status": "open",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/flippa-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchUrls": [],
  "listingUrls": [],
  "maxResults": 100,
  "propertyType": "",
  "status": "open",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call solidcode/flippa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solidcode/flippa-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ceVIrmNjsTWqZZWmJ/builds/Fkmb85NwX1R0wyN4s/openapi.json
