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

Automatically and efficiently scrape Flippa.com listings

- **URL**: https://apify.com/deltaspider/flippa-scraper.md
- **Developed by:** [delta spider](https://apify.com/deltaspider) (community)
- **Categories:** SEO tools, Automation, Lead generation
- **Features:** Limited permissions
- **Stats:** 24 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 listings

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Research Flippa businesses in one dataset

Build a shortlist of public Flippa listings, compare their published financials, and revisit the same search over time. Export the results to JSON, CSV, or Excel for your own analysis.

### Choose your research workflow

| Goal                        | Run this search                                                      | Use the results to                                            |
| --------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------- |
| Find acquisition candidates | Filter Flippa by business type and price, then paste the search URL. | Compare asking prices, published profit, and listing links.   |
| Compare a market segment    | Use the same filters for a specific niche or asset type.             | Review the financial and traffic figures Flippa makes public. |
| Track a shortlist over time | Schedule the same input in Apify.                                    | Join datasets by listing ID and calculate changes yourself.   |

This is a search-results scraper. Detail-page enrichment, confidential documents, and automatic change alerts are outside its scope.

### From filtered search to spreadsheet

1. Apply your filters on [Flippa search](https://flippa.com/search).
2. Copy the search URL into **Filter by flippa.com/search URL** and set **Max results**.
3. Run the Actor and download the dataset.

Example: collect up to 100 open SaaS listings.

```json
{
  "filter_by_url": "https://flippa.com/search?filter[property_type]=saas&filter[status]=open",
  "max_results": 100
}
```

### Output

Each row is one public search listing, read from the listing card on Flippa's search page. Download results as JSON, CSV, or Excel from the dataset, or retrieve them through the Apify API.

| Field                                                  | What it contains                                                                                            |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| `id`, `listing_url`                                    | Listing ID and Flippa link. Use `id` to compare runs.                                                       |
| `title`, `property_name`                               | Listing tagline and card heading. Brokered listings show type and industry as the heading, not a name.      |
| `property_type`, `category`, `country_name`            | Asset type, industry, and seller location.                                                                  |
| `revenue_average`, `profit_average`                    | Monthly revenue and profit as numbers. Flippa abbreviates these on the card (`USD $16.7K` becomes `16700`). |
| `multiple`, `formatted_age_in_years`                   | Profit multiple and business age as shown.                                                                  |
| `sale_method`, `price`, `currency_label`               | `classified` (asking price) or `auction` (current or starting bid), the amount, and its currency label.     |
| `original_price`, `price_dropped_percent`, `bid_count` | Earlier asking price and reduction, or number of bids, when the card shows them.                            |
| `price_details`                                        | The card's sale terms as text, including price guides, equity stakes, and auction time left.                |
| `verifications`                                        | Names of the data sources Flippa marks as verified.                                                         |
| `listed_by`, `broker_name`, `broker_avatar_url`        | Who listed the business, and the broker when there is one.                                                  |

#### Complete output example

One complete row from a local run on October 1, 2026. Every row has these 22 fields.

```json
{
  "id": "12857417",
  "listing_url": "https://flippa.com/12857417-profitable-b2b-saas-for-fitness-coaches-188k-arr-run-rate-94-gross-margin-growing-20-mom-proprietary-algo-real-moats-multilingual-en-fr-es",
  "title": "Profitable B2B SaaS for fitness coaches | €188k ARR run-rate | 94% gross margin | Growing +20% MoM | Proprietary algo & real MOATs| Multilingual EN/FR/ES",
  "property_name": "SaaS | Health and Beauty",
  "country_name": "France",
  "property_type": "SaaS",
  "category": "Health and Beauty",
  "formatted_age_in_years": "3 years",
  "revenue_average": 16700,
  "profit_average": 13200,
  "multiple": 2.8,
  "sale_method": "classified",
  "price": 436829,
  "original_price": 927250,
  "price_dropped_percent": 53,
  "bid_count": null,
  "currency_label": "USD $",
  "price_details": "Asking price USD $436,829 USD $927,250 Reduced 53%",
  "verifications": ["Google Analytics", "Stripe"],
  "listed_by": "Brokered by Flippa",
  "broker_name": "Antonin Lucas",
  "broker_avatar_url": "https://static2.flippa.com/avatar_4170d75d-c8f8-412f-b6d2-e25ee5126cb7.png"
}
```

A value is null when the card does not show it: `N/A` financials, listings open to offers or sold as an equity stake (no single `price`; see `price_details`), and owner listings without a broker. Negative profit is preserved. Verification labels are passed through from Flippa, not independently audited by this Actor.

**Changed on October 1, 2026.** Flippa retired the search data feed this Actor used to read, so rows now come from the search page itself. Traffic figures, thumbnails, badges, `status`, and the other fields of the earlier 81-field rows are no longer available. `id`, `title`, `price`, `currency_label`, `profit_average`, `revenue_average`, `property_type`, `category`, and `verifications` keep their names; `listing_url` now includes Flippa's title slug, and `verifications` holds display names such as `Stripe` instead of provider codes.

### Pricing

**Before October 7, 2026 at 11:10 UTC:** $10/month rental, plus Apify platform usage.

**From October 7, 2026 at 11:10 UTC:** $1 per 1,000 delivered listings ($0.001 each), on every Apify plan. No startup fee or separate platform-usage charge under the new pricing.

| Listings delivered | Cost under the new pricing |
| ------------------ | -------------------------- |
| 100                | $0.10                      |
| 500                | $0.50                      |
| 1,000              | $1.00                      |
| 10,000             | $10.00                     |

Under event pricing, a run with no delivered listings has no listing charge. Set Apify's maximum total charge to cap event spending. Listings already delivered remain billable if the run later fails. Check the [Pricing tab](https://apify.com/deltaspider/flippa-scraper/pricing) for the applicable terms.

### Limits and common questions

**Does it scrape listing details or confidential financials?** It collects public search results only. It does not visit detail pages or access NDA-protected information.

**Why did I get fewer listings than requested?** `max_results` is a ceiling, not a target. The run stops when it reaches that limit, the available search results, or the spending limit under event pricing. Broad searches have reported a capped total of 10,000; narrower filters help divide the results, but do not guarantee a complete marketplace export.

**Are duplicates removed?** Duplicate listing IDs are skipped within a running process. Separate runs can return the same listings. Search order and listing data can change while a run is in progress.

**Do I need to configure a proxy?** No. There is no proxy input; the Actor connects directly. Flippa can still rate-limit or block requests.

**What happens if a run fails?** Rows already saved remain in the dataset. For a new run, use listing IDs to reconcile overlaps. Avoid resurrecting a partially completed paid run: deduplication state is not restored across restarts.

### Input reference

All four fields are optional. With no search input, the Actor searches open listings across its default business categories, including websites, SaaS, ecommerce, apps, and services.

| Input           | How to use it                                                                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `keyword`       | A search phrase. A nonempty value overrides the keyword in your search URL.                                                                      |
| `filter_by_url` | One HTTPS Flippa search URL with filters, such as `https://flippa.com/search?filter[property_type]=saas`. Listing-detail URLs are not supported. |
| `sorting`       | `most_relevant`, `lowest_price`, `highest_price`, `most_recent`, `ending_soonest`, or `most_profitable`. Omit to keep the URL's sort order.      |
| `max_results`   | A positive integer limiting unique listings saved. The Console suggests 500. Omit from API input for no Actor-imposed result limit.              |

Custom URLs must use `flippa.com/search` or `www.flippa.com/search`. Apply filters on Flippa and copy the resulting search URL; the Actor starts at page 1 and handles pagination. Domain-only listings are not part of the default search.

### API, schedules, and support

Use the [API tab](https://apify.com/deltaspider/flippa-scraper/api) for generated requests and client examples. Schedule runs in Apify to collect repeated snapshots, then compare listing IDs and values in your own workflow. Change detection is not built into this Actor.

Report a problem through the [Issues tab](https://apify.com/deltaspider/flippa-scraper/issues), including the run ID and expected result. This independent Actor is not affiliated with Flippa.

# Actor input Schema

## `keyword` (type: `string`):

Enter a keyword to search for

## `sorting` (type: `string`):

Optional sorting override. Leave blank to preserve the sort in your Flippa search URL.

## `filter_by_url` (type: `string`):

Go to flippa.com/search and choose your custom filter options. Then copy the URL and paste it here.

## `max_results` (type: `integer`):

Select the max results to scrape

## Actor input object example

```json
{
  "max_results": 500
}
```

# 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 = {
    "max_results": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("deltaspider/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 = { "max_results": 500 }

# Run the Actor and wait for it to finish
run = client.actor("deltaspider/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 '{
  "max_results": 500
}' |
apify call deltaspider/flippa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deltaspider/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/tCHGzTySBNKZ5jTJp/builds/eDhXoDyO7BzkKWOK3/openapi.json
