ActorStack.dev
E-commerceLead generationv0.1.3updated 30 September 2026

Empire Flippers Scraper — Businesses for Sale & Sold Deals

The sold deals are the comparables. The P&L comes with them.

Online businesses listed on Empire Flippers — For Sale, Pending Sold and Sold — with asking price, monthly and annual multiple, average monthly profit, revenue and expenses, and the 12-month P&L and traffic series. Fill rates are published per listing status, because a Sold listing and a For Sale listing carry very different amounts of data.

oswaldocarabano/empire-flippers-scraper

input.json
{
  "listingStatuses": ["Sold"],
  "monetization": "SaaS",
  "maxPrice": 200000,
  "sortBy": "newest",
  "maxItems": 100
}
Version
v0.1.3
Memory
512 MB
Browser
none
Proxy
None needed; fallback only

Short answer

The Empire Flippers Scraper exports the online businesses listed on empireflippers.com — For Sale, Pending Sold and Sold — with asking price, monthly and annual multiple, average monthly net profit, revenue and expenses, the 12-month P&L series and, where Empire Flippers publishes it, the monthly traffic series. Measured on the whole catalogue of 2,877 listings on 23 September 2026, asking price was filled on 99.9% of rows and the monthly P&L series on 99.8%, while traffic channels appeared on 4.8%. A Sold row carries the final asking price rather than a negotiated sale price. Pricing is $4.50 per 1,000 listings, and the whole catalogue is 15 requests of 200 listings each.

Key points

  • The Empire Flippers catalogue held 2,877 listings on 23 September 2026: 180 For Sale, 23 Pending Sold and 2,674 Sold, with no listing in two states.
  • A Sold listing carries the final asking price and the financials it was listed with, so Empire Flippers comparables measure asking multiples rather than negotiated sale prices.
  • The monthly multiple equalled asking price divided by average monthly net profit, to within one, on 2,877 of 2,877 listings measured on 23 September 2026.
  • Empire Flippers fill rates depend on listing status: business registration country was filled on 100% of 180 For Sale listings and 15.0% of 2,674 Sold ones.
  • Traffic channels were published for 36.7% of 180 For Sale listings and 2.5% of 2,674 Sold listings, so a traffic-mix study of sold deals rests on a small subset.
  • Empire Flippers keeps sellers anonymous, and none of the 2,877 listings measured on 23 September 2026 exposed a personal email address or phone number.
  • The Empire Flippers Scraper offers only filters verified to narrow the result; six API parameters that the source silently ignores were left out of the input.
On this page11 sections

What it does

Online businesses listed on Empire Flippers — For Sale, Pending Sold and Sold — with asking price, monthly and annual multiple, average monthly profit, revenue and expenses, and the 12-month P&L and traffic series. Fill rates are published per listing status, because a Sold listing and a For Sale listing carry very different amounts of data.

output — one row
{
  "listing_number": 97317,
  "title": "$29.8K Per Month eCommerce Business in the Art Niche",
  "status": "For Sale",
  "price": 215015,
  "currency": "USD",
  "avg_monthly_net_profit": 8532,
  "avg_monthly_revenue": 29773,
  "monthly_multiple": 25,
  "annual_multiple": 2.1,
  "profit_margin_pct": 29,
  "niches": ["Art", "Apparel & Accessories", "Lifestyle"],
  "monetizations": ["eCommerce", "Amazon FBM"],
  "business_age_years": 12.3,
  "monthly_financials": [
    { "month": "2025-09", "net_profit": 126.91, "revenue": 30745.77, "expenses": 30618.86 }
  ],
  "monthly_traffic": [
    {
      "month": "2025-09",
      "page_views": 179668,
      "unique_users": 26406,
      "traffic_channels": [
        { "channel": "Paid Social", "unique_users": 13871, "page_views": 105005, "users_pct": 52.53 }
      ]
    }
  ],
  "url": "https://empireflippers.com/listing/97317/"
}

Why this one

Sold deals, not only what is on the market

For Sale listings are 180 of the 2,877 rows Empire Flippers serves. The other 2,674 are Sold deals with their final asking price, multiple and twelve months of P&L — which is what a valuation comparable actually needs. The Empire Flippers Scraper reads all three statuses and shares the row budget fairly between the statuses you pick.

Fill rates published per status

An all-listings average hides the shape of the data. Risks are filled on 97.2% of For Sale listings and 59.3% of Sold ones; the monthly traffic series on 36.7% of For Sale and 77.9% of Sold. The Empire Flippers Scraper documents both columns, measured over the whole 2,877-listing catalogue, so a buyer can see which questions the sold history can answer.

Filters that change the result

Every filter was tested against the live source with a negative control: a parameter that does not exist returned the full 2,877, and so did six real-looking ones such as `country=US` and `price_min`. Those six are not in the input. A filter that silently returns everything is worse than no filter, because the run looks correct and is not.

A flat monthly output for spreadsheets

The 12-month P&L and traffic series are nested inside each listing row. Setting `outputType` to `monthlyMetrics` delivers them flat instead — one row per business-month with net profit, revenue, expenses, page views, users and traffic channels — priced at $0.0005 per row rather than as a listing.

Use cases

  • Build a valuation comparables set from Sold deals, by niche and monetization, with the multiple and monthly profit each one was listed at.
  • Watch new For Sale listings by niche, price or profit with `sortBy: newest` on a schedule, and diff by `listing_id`.
  • Study asking multiples by monetization model — Amazon FBA, SaaS, content, eCommerce — across 2,674 sold listings.
  • Load the 12-month P&L series into a spreadsheet with `outputType: monthlyMetrics` to compare revenue and margin trajectories.
  • Screen Amazon businesses by SKU count, TACoS and COGS where the listing publishes them.

Input

Every field has a default, and the defaults are deliberately small so a first run is cheap enough to inspect before you commit to a sweep. This table mirrors the Actor's own input schema field for field.

FieldDefaultWhat it does
listingStatusesstring[]["For Sale"]Listing statusFor Sale (180 on 23 Sep 2026), Pending Sold (23) and Sold (2,674). Pick several and the row budget is shared fairly between them; Sold deals are the valuation comparables.
maxItemsinteger200Maximum rowsHard cap, 1 to 5,000. With `monthlyMetrics` a row is one business-month, about 12 per business.
monetizationstring—MonetizationOne of 21 models, from Display Advertising (865 listings) to Subscription-Box (2). Verified: every returned row carries it.
nichestring—NicheOne of Empire Flippers' 59 niches, such as Home (473) or Health & Fitness (231).
platformstring—Site platformWordPress, Amazon, Shopify, YouTube, HTML or Other.
countrystring—CountryTwo-letter ISO code of the business audience. 68% of listings that have a country are US.
minPrice / maxPriceinteger—Asking price range (USD)Verified against the live source: `listing_price_from=100000` returned 1,426 listings, all of them at or above it.
minMonthlyProfit / maxMonthlyProfitinteger—Average monthly net profit range (USD)Filters on average monthly net profit, the figure the multiple is computed from.
keywordstring—KeywordThe marketplace's own free-text search. URL- or HTML-shaped values are rejected because the origin firewall answers them with 403.
sortBystringdefaultSort bydefault, newest, price_high, price_low or profit_high — only orderings verified to change the result.
outputTypestringlistingsOutput typepersonal data`listings` for one rich row per business, `monthlyMetrics` for one flat row per business-month, charged at $0.0005 each.
includeTechStackbooleanfalseAdd tech stackpersonal dataOne extra request per listing; charged only when a tech stack is found, which was 16.7% of For Sale and 0% of Sold listings sampled.
includePrivateSellerContactbooleanfalseKeep contact details that may belong to a personpersonal dataOff by default: personal-looking emails and any phone number in free text are redacted. Role mailboxes are always kept.
maxCacheAgeDaysinteger0Reuse cached pages up to (days)0 always reads live data. Cached rows say so in `from_cache` and `data_age_hours`.
proxyConfigurationobjectnoneProxyNot needed: the source answers datacentre IPs directly. Used only as a fallback.

Output and fill rates

A field being in the schema is not the same as it having a value. The percentages below were counted on real runs; the sample sizes are in Measurements. Anything not listed here is not promised.

FieldFilledMeaning
pricenumber99.9%Asking price in USD. For Sold listings, the final asking price. Null with `unpriced: true` on 2 listings.
statusstring100%For Sale, Pending Sold or Sold. With `listing_number`, `url`, `first_listed_at` and `days_on_marketplace`.
monthly_multiplenumber99.7%With `annual_multiple` and `multiple_type`. Equal to price over average monthly net profit, within one, on 2,877 of 2,877.
avg_monthly_net_profitnumber99.8%With average monthly revenue and expenses, the annual versions, TTM figures and `profit_margin_pct`.
monthly_financialsobject[]99.8%Month, net profit, revenue and expenses, sorted by month; median 12 months.
net_profit_trend_pctnumber56.8%With `revenue_trend_pct`. 100% of For Sale listings, 53.6% of Sold.
monthly_trafficobject[]74.9%Page views and users per month. Traffic channels inside it on 4.8% of listings overall, 36.7% of For Sale.
nichesstring[]100%With `monetizations`, `platforms` and `primary_*` versions of each.
sitesobject[]100%Up to 26 per listing (median 1). SEMrush authority score inside it on 52.0% of listings.
countrystring74.7%Audience country. 100% of For Sale, 72.7% of Sold.
business_registration_countrystring21%100% of For Sale, 15.0% of Sold.
summarystring100%With `opportunities`, `work_required`, `seller_support` and `reason_for_sale`, as Empire Flippers wrote them.
risksstring61.9%97.2% of For Sale, 59.3% of Sold.
data_providersstring[]26.3%Verified data providers. 94.4% of For Sale, 21.1% of Sold.
seller_interview_urlstring32.3%A public video published by Empire Flippers. 52.2% of For Sale.
amazon_sku_countinteger19.9%With parent ASIN count and brand registry. 47.2% of For Sale; empty for non-Amazon models.
tacos_pctnumber14.4%With `cogs_pct`. 54.4% of For Sale listings.
mrrnumber1%With `churn_pct`, `ltv`, `ltv_cac_ratio`. 34.4% of the 64 SaaS listings; null for other models.
tech_stackstring[]16.7%Only with `includeTechStack`. The rate is of 30 For Sale listings sampled; 0 of 20 Sold.
from_cacheboolean100%With `fetched_at`, `data_age_hours` and `scraped_at`.

Every key is always present. A field that exists but is empty comes back as explicit null, so a parser never has to guess.

Datasets

Different record types go to different datasets, so the main table never carries columns that are blank on most rows.

  • defaultOne row per business (98 fields) with `outputType: listings`, or one row per business-month (21 fields) with `outputType: monthlyMetrics`. One row type per run.billed
  • Error rowsInput errors and pages that could not be read, with the reason.never billed

Pricing

Pay per delivered result. Charges are applied as each row is produced rather than in a lump at the end, so an aborted run bills only for what it actually gave you.

EventPriceNotes
apify-actor-startActor start$0.00001The platform minimum, once per run.
listingListing delivered$0.0045One business for sale, pending or sold, with every financial, the 12-month P&L and traffic series, niches, sites and due-diligence text. Never charged for error rows or duplicates.
monthly-metricMonthly metric row$0.0005Only with `outputType: monthlyMetrics`: one business-month with profit, revenue, expenses, page views, users and traffic channels.
listing-tech-stackTech stack added$0.001Only with `includeTechStack` and only when the listing has a tech stack.

Measurements

Each figure is shown with the method that produced it. A benchmark without a method is a marketing claim wearing a number's clothes.

Catalogue

2,877 listings

Full crawl on 23 September 2026: 180 For Sale, 23 Pending Sold, 2,674 Sold, in 15 pages of 200 with 0 duplicates. Every fill rate on this page is over those rows.

Fields filled per listing

median 71 of 91 data fields

Over the same 2,877 output rows: For Sale median 77 (n = 180), Sold median 70 (n = 2,674), minimum 46, maximum 83.

Multiple consistency

2,877 of 2,877

The monthly multiple equals round(price / average monthly net profit) within one on every listing, and no listing shows a negative profit.

Run time

180 rows in 23 s on Apify

Default input on build 0.1.3 at 512 MB, 23 September 2026. The whole 2,877-listing catalogue took 76 s in a local run.

Rate-limit probe

0 of 50 requests throttled

30 sequential requests and two waves of 10 concurrent ones against the origin in about a minute. Shows no limit at that pace, not that none exists.

Personal contact exposed

0 of 2,877 listings

46 emails found in free text: 45 placeholders of the form …@domain.com and 1 role mailbox. 0 phone numbers.

Tech stack found

16.7% of 30 For Sale, 0 of 20 Sold

Detail-page sample of 50 listings on 23 September 2026. A later run found it on 7 of 40 For Sale listings (17.5%).

What it will not do

Stated plainly so you can judge fit before spending anything.

  • The Actor documents a Sold row's `price` as the final asking price. Treat it as an asking figure: nothing in the output is labelled as the price the business changed hands at.
  • Anything Empire Flippers keeps behind Unlock and its NDA — the business URL, the detailed P&L, access to the seller — is out of reach, because reaching it requires an account and an accepted agreement.
  • The monthly traffic series was filled on 74.9% of 2,877 listings and traffic channels on 4.8%; for For Sale listings both were 36.7% of 180.
  • Model-specific fields are empty for other models: MRR was filled on 34.4% and churn on 40.6% of the 64 SaaS listings, and on about 1% of the catalogue. They are delivered as null, never omitted.
  • The tech stack needs one extra request per listing and was found on 16.7% of 30 For Sale listings sampled and 0 of 20 Sold ones.
  • No rate limit appeared at 50 requests in about a minute. That shows the limit is not reached at that pace, not that none exists.
  • A keyword shaped like a URL or HTML makes the origin firewall answer with a fixed HTTP 403, so such keywords are rejected as an input error before any request is made.

Privacy

  • Empire Flippers keeps sellers anonymous: none of the 145 data paths in the source identifies a seller, and 0 of 2,877 listings exposed a personal contact on 23 September 2026.
  • As a safeguard, any email that looks personal and any phone number in free text is redacted unless `includePrivateSellerContact` is set to true. Business role mailboxes such as support@ are kept.
  • The seller interview link, present on 32.3% of listings, is a public video Empire Flippers itself publishes.
  • Removal requests: privacy@actorstack.dev

See also the data removal process.

Frequently asked questions

Is the Sold price what the business actually sold for?
The Empire Flippers Scraper documents a Sold row's price as the final asking price, together with the financials the business was listed with. Treat it as an asking figure: no field in the output is labelled as the negotiated price the business changed hands at.
Does the Empire Flippers Scraper need an account?
No. The Actor reads only what the public marketplace shows any visitor, with no login, no cookies and no browser. Information behind Empire Flippers' Unlock and NDA step is out of reach by design.
Why are the traffic fields often empty?
Empire Flippers publishes the monthly traffic series for 74.9% of its 2,877 listings and the traffic-channel breakdown for 4.8%. For listings currently For Sale, both were published on 36.7% of 180.
How much does the whole catalogue cost?
At $0.0045 per listing, all 2,877 listings measured on 23 September 2026 come to about $12.95 plus the start event. The default run returned all 180 For Sale listings on 23 September 2026, for about $0.81.
Can I get only new listings?
Yes. Set `sortBy` to `newest` with a small `maxItems` and schedule the run, then diff the results by `listing_id` to see what was added since the last one.

Guides for this Actor