Franchise Resale Scraper — Listings & Prices avatar

Franchise Resale Scraper — Listings & Prices

Pricing

from $20.00 / 1,000 franchise resale listing returneds

Go to Apify Store
Franchise Resale Scraper — Listings & Prices

Franchise Resale Scraper — Listings & Prices

Extract public FranchiseRESALES.com resale listings for acquisition sourcing. Returns one listing per row with brand, location, asking price, description, image, and source URL.

Pricing

from $20.00 / 1,000 franchise resale listing returneds

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

9 days ago

Last modified

Categories

Features

Limited permissions

Share

Franchise Resale Scraper — Listings, Brands & Prices

Collect structured, public franchise-resale listings from FranchiseRESALES.com for acquisition sourcing, market research, and franchise-broker workflows. Each dataset row represents one public resale listing, with its asking price, location, public description, image, and source URL.

This Actor is purpose-built for the FranchiseRESALES.com marketplace. It is not a cross-marketplace business-for-sale scraper, a seller-contact extractor, or a tool for submitting enquiries and forms.

What it returns

FieldDescription
title, franchiseBrand, industryPublic listing identity and categorization
location, city, stateOrProvince, countryPublicly displayed location, with conservative parsed components
askingPrice, currency, priceTextPublished price as original text and a normalized value when unambiguous
summary, description, publishedFactsPublic marketing text and publicly labeled business facts
imageUrl, listingUrl, sourceUrlPublic image and auditable source links
scrapedAtUTC extraction timestamp

Unavailable fields are null; this Actor does not estimate prices, revenue, brand identity, or private contact information.

When to use it

Use it to export current FranchiseRESALES.com opportunities, create a watchlist of public listings, compare advertised asking prices, or load structured opportunities into an internal research tool.

Do not use it to collect non-public seller details, submit contact forms, bypass access controls, or make an acquisition decision without independent financial and legal due diligence. For franchise opportunities that are not existing resales, use a new-franchise directory scraper instead.

Input

The default input starts from the marketplace’s public resale search page. Each search URL contributes the listings on its first results page (about 10); add direct listing URLs to collect more, up to maxResults.

{
"startUrls": [{ "url": "https://www.franchiseresales.com/find-a-resale/" }],
"maxResults": 20,
"proxyCountry": "US"
}

You can also pass one or more direct public listing URLs. maxResults is a strict cap on unique dataset rows and billable listing events. The Actor always visits each public detail page because marketplace search cards do not reliably expose a listing title or core facts.

proxyCountry selects the residential exit country and defaults to US; use CA when a Canadian session is needed. Hosted runs use an owner-managed residential access route, while local runs connect directly. This is not a search-location filter.

Output example

{
"listingUrl": "https://www.franchiseresales.com/example-listing/",
"sourceUrl": "https://www.franchiseresales.com/find-a-resale/",
"title": "Anytime Fitness Club - Prime Location",
"franchiseBrand": "Anytime Fitness",
"location": "Scottsdale, Arizona",
"city": "Scottsdale",
"stateOrProvince": "Arizona",
"country": "United States",
"askingPrice": 350000,
"currency": "USD",
"priceText": "$350,000",
"summary": "Top-performing gym in a high-growth area.",
"description": "Established fitness club with recurring membership revenue.",
"industry": "Fitness",
"imageUrl": "https://www.franchiseresales.com/wp-content/uploads/example.jpg",
"publishedFacts": { "Annual Revenue": "$500,000" },
"scrapedAt": "2026-08-09T12:00:00.000Z"
}

The terminal OUTPUT key contains the number of records, billed result events, start events, the stop reason, failed requests, cost cap, and warnings. It distinguishes a valid empty search from an access failure.

Pricing

This Actor uses pay-per-event pricing. Live Apify Store event prices (USD):

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMONDWhen it is charged
franchise-resale-listing$0.03$0.03$0.03$0.02Once for each unique, schema-valid public resale listing written to the dataset
apify-actor-start$0.005$0.005$0.005$0.005Once per run per GB of memory (default 512 MB, so one event)

Example on the FREE tier: 10 listings cost $0.30 in listing events plus $0.005 for the start. A listing is charged only after it is written, and the run stops before writing a listing that the run's maximum charge cannot cover. Apify platform usage for the run is included in these prices.

FAQ

Which URLs can I use? The public search page https://www.franchiseresales.com/find-a-resale/ or any public listing page on franchiseresales.com.

How many listings does one run return? Up to maxResults (1–100). A search URL yields the listings on its first results page (about 10); add listing URLs for more.

Does it collect seller contact details? No. It returns only public listing data: title, brand, industry, location, asking price, description, published facts and image.

Am I charged when the site blocks the run? No listing events are charged. A run where every request fails ends as failed; only the start event applies.

What does proxyCountry change? Only the exit country of the run's connection (US or CA). It does not filter listings by location.

Reliability and limits

The marketplace may use Cloudflare or change its public HTML. The Actor uses a bounded, sticky residential session when it runs on Apify and makes no more than 20 requests per minute. If all requests are blocked, it fails honestly with an access diagnostic and returns no fabricated rows or result charges. If a valid search page has no matching public cards, it completes with an EMPTY summary and a warning.

The parser is intentionally conservative. It preserves original price text beside normalized money, keeps optional fields nullable, and leaves ambiguous city or country components unset. Always retain sourceUrl and review the original listing before relying on any financial field.

API and agent use

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('your-username/franchise-resale-scraper').call({
startUrls: [{ url: 'https://www.franchiseresales.com/find-a-resale/' }],
maxResults: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

For an agent workflow, provide the exact public page or listing URL and a small result cap. The returned data is one stable listing entity per item; the run-level OUTPUT summary is the place to check for access warnings or an empty search.

Compliance

Only collect publicly available data for lawful purposes and comply with FranchiseRESALES.com’s terms, applicable privacy laws, and reasonable request rates. The Actor is independent and is not affiliated with or endorsed by FranchiseRESALES.com.

Last verified: 2026-10-27