Franchise Direct Scraper — Franchise List & Investment Data
Pricing
from $4.00 / 1,000 franchise record scrapeds
Franchise Direct Scraper — Franchise List & Investment Data
Export a franchise list from Franchise Direct with category, franchise fee, minimum cash and investment range for investors and brokers. USD 5 per 1,000.
Pricing
from $4.00 / 1,000 franchise record scrapeds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Features
Share
Franchise Direct Scraper turns public Franchise Direct category, ranking and profile pages into a franchise list with brand name, category, franchise fee, minimum cash required, total investment range, available locations and training notes. It is built for franchise investors, brokers, consultants and market researchers, and costs USD 5 per 1,000 franchise records on the FREE tier (USD 4 per 1,000 on GOLD).
It reads only public pages on franchisedirect.com. It does not log in, submit "Request Information" forms or collect franchisor contact details, and it is not affiliated with Franchise Direct.
What data does Franchise Direct Scraper return?
One dataset row per franchise profile. A value is null (or an empty list) when the profile does not show it; nothing is estimated.
| Field | What it contains |
|---|---|
name | Franchise brand name from the profile heading |
category | Franchise Direct category, for example Food Franchises |
franchiseFee | Initial franchise fee in USD, as a number |
minimumCash | Minimum cash or liquid capital required, in USD |
totalInvestmentMin, totalInvestmentMax | Low and high end of the total investment range, in USD |
investmentText | The original investment text from the page, kept for checking the parsed numbers |
availableLocations | The profile's "Available Locations" statement, kept verbatim as one list entry |
businessType, training | Business type (for example Franchise) and the "Training Provided" value (for example Yes) |
tagline, description | The profile's summary text |
profileUrl, sourceUrl | The profile URL and the page it was read from |
rank, nativeCountry | Ranking position and country of origin from a ranking page such as the Top 100; null for category and profile pages |
imageUrl | The franchise's logo or share image |
territory | Kept in the schema; empty on current profile pages |
scrapedAt | Collection time (ISO 8601) |
In the 2026-10-27 check of the Food Franchises category, all 13 records had a name, category, description and minimum cash, and 10 of 13 had a franchise fee and an investment range.
How do I export a franchise list with fees and investment ranges?
Paste one or more Franchise Direct URLs, set a record cap, and run. The Actor finds the profile links on each page, opens every profile, and saves one row per franchise.
- Start URLs: a category page such as
https://www.franchisedirect.com/foodfranchises/14, the Top 100 rankinghttps://www.franchisedirect.com/top100globalfranchises/rankings, a search-result page, or individual profile URLs. - Maximum Franchise Records: 1–1,000, default 20. Start with 20 to check the fields you need.
- Include Public Profile Details: on by default. Turn it off for a fast list of names and profile URLs only (no fees or investment figures).
- Download the dataset as CSV, JSON or Excel, or read it through the API.
Food and restaurant franchises with full profile details:
{"startUrls": [{ "url": "https://www.franchisedirect.com/foodfranchises/14" }],"maxItems": 50,"includeProfileDetails": true}
Two specific brands:
{"startUrls": [{ "url": "https://www.franchisedirect.com/food-franchises/kilwins" },{ "url": "https://www.franchisedirect.com/food-franchises/h-h-bagels/" }],"maxItems": 2}
A run summary is saved under the OUTPUT key: records saved, pages processed, records charged, the stop reason and any warnings, such as a page where no profile links were found.
When should I use it, and when not?
Use it when you want a spreadsheet of franchise opportunities from Franchise Direct with their published fees, cash requirements and investment ranges, for shortlisting, broker research or market sizing.
Use another Actor when:
- You want the same kind of franchise list from Vetted Biz, with industry, founding year, investment range, minimum cash and franchise fee: Vetted Biz Franchise Data Scraper.
- You want existing franchise units or businesses for sale, with asking prices: Franchise Resale Scraper or BizBuySell Scraper.
- You need official state franchise registrations or public franchise document links: Wisconsin Franchise Search Scraper or Minnesota Franchise Registrations Scraper.
Use it from an AI assistant
Franchise Direct Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/franchise-direct-scraper, then ask, for example: "List 20 food franchises from Franchise Direct with their franchise fee, minimum cash and total investment range."
Run it with the API
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/franchise-direct-scraper').call({startUrls: [{ url: 'https://www.franchisedirect.com/top100globalfranchises/rankings' }],maxItems: 25,includeProfileDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((f) => `${f.name} | fee ${f.franchiseFee} | cash ${f.minimumCash}`));
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("muhammadafzal/franchise-direct-scraper").call(run_input={"startUrls": [{"url": "https://www.franchisedirect.com/foodfranchises/14"}],"maxItems": 20,})for franchise in client.dataset(run.default_dataset_id).iterate_items():print(franchise["name"], franchise["totalInvestmentMin"], franchise["totalInvestmentMax"])
What does the output look like?
Two records from the 2026-10-27 Food Franchises run (descriptions shortened):
[{"name": "H&H Bagels","profileUrl": "https://www.franchisedirect.com/food-franchises/h-h-bagels/","sourceUrl": "https://www.franchisedirect.com/food-franchises/h-h-bagels/","category": "Food Franchises","rank": null,"tagline": "Bring an iconic New York City bagel brand to your market with H&H Bagels...","minimumCash": 250000,"franchiseFee": 40000,"totalInvestmentMin": 635000,"totalInvestmentMax": 950000,"investmentText": "$635,000 - $950,000","availableLocations": ["Multi-unit opportunities available throughout the US, EXCLUDING: FL, MT, UT."],"businessType": "Franchise","training": "Yes","nativeCountry": null,"territory": null,"imageUrl": "https://franchisedirect-40-prod-ops.s3.amazonaws.com/4f/d4/2abcdd7b4a51803f41b0b8c7ba32/hh-logo.png","scrapedAt": "2026-10-27T07:40:12.435Z"},{"name": "Graze Craze","profileUrl": "https://www.franchisedirect.com/food-franchises/graze-craze/","category": "Food Franchises","minimumCash": 50000,"franchiseFee": 49500,"totalInvestmentMin": 150000,"totalInvestmentMax": 175000,"investmentText": "$150,000 - $175,000","availableLocations": ["Single, multi-unit, area developer opportunities available throughout the United States. Excluding AK."],"training": "Yes","scrapedAt": "2026-10-27T07:40:18.732Z"}]
Pricing: how much does franchise data cost?
Franchise Direct Scraper uses pay-per-event pricing. Platform usage is included in the event prices.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Franchise record scraped (one dataset row) | USD 0.005001 | USD 0.004875 | USD 0.00475 | USD 0.004 | USD 0.004 |
| Actor start, per started GB of allocated memory | USD 0.006251 | USD 0.006094 | USD 0.005938 | USD 0.005 | USD 0.005 |
Runs use 512 MB by default, so one start event is charged per run. Worked totals on the FREE tier:
- 20 records (the default cap): 20 × USD 0.005001 + USD 0.006251 = USD 0.1063
- 500 records: 500 × USD 0.005001 + USD 0.006251 = USD 2.5068
Each unique franchise is charged once, after its record is saved. Landing, article and other non-profile pages are never saved or charged, and a page that yields no franchises charges nothing beyond the start event. You can set a maximum cost per run in Apify Console.
How long does a run take, and what are the limits?
- Speed: the 2026-10-27 check saved 13 records from one category page in about 39 seconds, with 3 parallel requests.
- Coverage per page: the Actor follows the franchise cards listed on each page you supply (13 on the Food Franchises page on 2026-10-27, below the cap of 20), so add more category URLs for a bigger list. Sub-category links on a category page are not followed; paste them as start URLs if you want them.
- Profile detection: a page becomes a record only when it shows Franchise Direct's profile fact or financial tables, so landing and article pages are skipped.
- Ranking entries: on the Top 100 page, some entries link to a franchise's FDD summary page instead of a profile. Those rows keep
rank,name,nativeCountryandcategoryfrom the ranking, with fees and investmentnull(2 of the top 3 on 2026-10-27). - Empty fields:
territoryis not shown on current profile pages. Fees and investment ranges are present only when the brand publishes them. - Parsed numbers: dollar amounts are parsed from the profile's financial table; check
investmentTextbefore relying on a figure. - Data access is handled by the Actor; there are no proxy settings to configure.
FAQ
Is this Actor affiliated with Franchise Direct?
No. It is an independent tool that reads publicly accessible Franchise Direct pages.
Can I export the Franchise Direct Top 100 ranking?
Yes. Use the ranking URL as a start URL. Each row carries its rank, country of origin and industry, and the Actor adds profile details when the ranking links to a profile page.
Why are some franchise fees or investment ranges empty?
Brands decide what their profile shows. In the 2026-10-27 check, 10 of 13 food profiles listed a franchise fee. A null means the page did not show it.
Does it return franchisor contact details or emails?
No. It does not submit lead forms and does not collect contact details.
Can I get Franchise Disclosure Document (FDD) data?
No. It returns what Franchise Direct profiles display. For state registrations and links to public franchise documents, use the Wisconsin or Minnesota Actor listed above.
Can I scrape the whole franchise directory?
You can run several category URLs in one run, up to 1,000 records. Start with a small cap and add categories as needed.
Is the data current?
Every run reads the live pages, so the data is as current as Franchise Direct's profiles on the day you run it.
Related Actors
Franchise and small-business research tools from the same developer:
- Vetted Biz Franchise Data Scraper for Vetted Biz franchise listings
- Franchise Resale Scraper for franchise units for sale
- Wisconsin Franchise Search Scraper and Minnesota Franchise Registrations Scraper for state registrations and franchise documents
- Google Maps Scraper for mapping existing franchise locations
Legal and compliance
Franchise Direct Scraper collects information that franchisors publish on public Franchise Direct profile pages. It does not log in, submit forms or bypass access controls. Follow Franchise Direct's terms and applicable laws, and treat the figures as a starting point: confirm them with the franchisor and the Franchise Disclosure Document before investing. This is not financial or legal advice.
Last verified: 2026-10-27