Franchise Resale Scraper — Listings & Prices
Pricing
from $20.00 / 1,000 franchise resale listing returneds
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
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
3
Monthly active users
9 days ago
Last modified
Categories
Features
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
| Field | Description |
|---|---|
title, franchiseBrand, industry | Public listing identity and categorization |
location, city, stateOrProvince, country | Publicly displayed location, with conservative parsed components |
askingPrice, currency, priceText | Published price as original text and a normalized value when unambiguous |
summary, description, publishedFacts | Public marketing text and publicly labeled business facts |
imageUrl, listingUrl, sourceUrl | Public image and auditable source links |
scrapedAt | UTC 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):
| Event | FREE | BRONZE | SILVER | GOLD / PLATINUM / DIAMOND | When it is charged |
|---|---|---|---|---|---|
franchise-resale-listing | $0.03 | $0.03 | $0.03 | $0.02 | Once for each unique, schema-valid public resale listing written to the dataset |
apify-actor-start | $0.005 | $0.005 | $0.005 | $0.005 | Once 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