US Franchise Registration & FDD Leads Scraper
Pricing
from $5.50 / 1,000 franchise registration records
US Franchise Registration & FDD Leads Scraper
Search any US franchisor or brand and get its official state franchise filings with every FDD (Franchise Disclosure Document) as a PDF link, by year and version, plus status, file numbers and a lead score. Minnesota CARDS + Wisconsin DFI. Independent tool, not affiliated with any state regulator.
Pricing
from $5.50 / 1,000 franchise registration records
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
0.052 hours
Issues response
6 days ago
Last modified
Categories
Share
US Franchise Registration & FDD Leads Scraper — Franchisors, Brands & FDD Documents
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by US state franchise registries or any government body. All trademarks mentioned are the property of their respective owners. "US state franchise registries" is referenced only to describe the public data source this Actor collects from.
Search any franchisor or brand (for example "Atwell Suites", "Pizza Ranch" or "Holiday Hospitality Franchising") and get its official state franchise-registration filings with every Franchise Disclosure Document (FDD) as a direct PDF link, by filing date, version (clean or marked) and year. Or browse the newest registrations as franchise-development leads with status, file numbers, GTM intent signals and a 0–100 lead score.
Data comes straight from the official regulators: Minnesota Commerce CARDS (every franchise filing with its PDF) and Wisconsin DFI (registration status, expiry dates and the filing contact, whenever its search can be read - see Coverage). No login, no browser, one unified schema.
A franchise registration (or a renewal) is a franchisor actively selling franchises right now. The FDD it files is the document every prospective franchisee reads: fees, Item 19 financial performance, outlet counts, litigation and the franchise agreement.
What you get
- Brand or franchisor search – a brand works on its own: "Atwell Suites" finds Holiday Hospitality Franchising, LLC with only its Atwell Suites filings. Search several names in one run with
searchTerms. - Every FDD, by period –
fddDocumentslists each FDD with its filing date, year, version (clean,marked,clean+marked), file number, size and PDF link;latestFddUrlis the newest complete one. SetfilingYearFrom/filingYearToto get one period only. - All filings – applications, orders of registration and renewal, amendments, exemptions, cancellations, deficiency notices, each with its PDF link (
registrations[].documents). - Status – Registered, On file, Exempt (large-franchisor exemption), Cancelled, Withdrawn, with an
isActiveflag. - Lead fields – file numbers, filing years, GTM signals (new registration, renewal, multi-state, FDD available) and a lead score; Wisconsin adds the filing contact, address, officer and expiry date when its search is reachable (see Coverage).
Find a brand's FDDs for a period
Input:
{"searchTerms": ["Atwell Suites", "Le Meridien"],"filingYearFrom": 2023,"filingYearTo": 2024,"onlyWithFdd": true}
Python (official apify-client), downloading every FDD PDF:
import pathlib, reimport requestsfrom apify_client import ApifyClientclient = ApifyClient("MY_APIFY_TOKEN")run = client.actor("scrapesage/us-franchise-registrations-scraper").call(run_input={"searchTerms": ["Atwell Suites", "Le Meridien"],"filingYearFrom": 2023,"filingYearTo": 2024,"onlyWithFdd": True,})dataset_id = run.default_dataset_id # apify-client 3.x; on 1.x / 2.x use run["defaultDatasetId"]# The Minnesota file server answers 403 to requests without a browser User-Agent,# so send one when you download the PDFs.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0) Gecko/20100101 Firefox/143.0"}out = pathlib.Path("fdds")out.mkdir(exist_ok=True)for item in client.dataset(dataset_id).iterate_items():for fdd in item["fddDocuments"]:name = re.sub(r"[^\w.-]+", "_", f'{item["primaryBrand"]}_{fdd["receivedDate"]}_{fdd["version"]}_{fdd["documentId"]}') + ".pdf"pdf = requests.get(fdd["url"], headers=headers, timeout=180)pdf.raise_for_status()(out / name).write_bytes(pdf.content)print("saved", name)
Why this franchise scraper?
Most franchise actors scrape one state in isolation and return a flat list of filings. This one searches by brand or franchisor, groups every filing under the franchisor, labels the FDDs and keeps the whole filing history in one record.
| Data | Single-state scrapers | This actor |
|---|---|---|
| Search by brand / trade name (not only the legal entity) | rarely | ✅ |
| One record per franchisor, every filing inside | ❌ raw filings | ✅ |
| FDD PDFs with filing date, version and size | partial | ✅ |
| Period filter (filing years) | partial | ✅ |
| Registration status incl. exemptions | partial | ✅ |
| Multiple states in one schema | ❌ one state each | ✅ MN + WI |
| Filing contact (name, email, phone) | ❌ | Wisconsin filings, when its search is reachable |
| GTM intent signals + lead score | ❌ | ✅ |
| Monitor mode — only new franchisors since the last run | ❌ | ✅ |
Use cases
- FDD research & due diligence – pull a brand's FDDs year by year for fees, Item 19 financial performance, outlet counts and agreement changes.
- Franchise-development lead generation – franchisors that just registered or renewed are actively recruiting franchisees and buying services: brokers, consultants, lead-gen, PR, FDD/legal, financing, site selection and suppliers.
- Competitive & market intelligence – watch who enters Minnesota, which brands renew, cancel or move to an exemption, and read their FDDs.
- M&A & investment sourcing – emerging franchisors and their filing history.
- CRM enrichment & monitoring – schedule runs in monitor mode to feed only newly registered franchisors into your pipeline.
Input
- franchisorName – one franchisor or brand. Matches the legal franchisor name OR any brand / trade name. Leave blank to browse the newest registrations.
- searchTerms – several franchisors or brands in one run; each record says which it matched (
matchedSearchTerms). - brandName – keep only one brand's filings (brand names only), e.g. with franchisor "Holiday Hospitality" and brand "Atwell".
- nameMatch –
words(default: every word as a whole word, any order, so "Spark" does not return Sparkle or Mister Sparky),contains(anywhere in the name, like the registry's own search) orexact. Accents, case, punctuation and Inc/LLC never matter. - filingYearFrom / filingYearTo – the period. A name search covers every year unless you set it; a browse defaults to the current year. Filings outside the period are left out of each record.
- onlyWithFdd – only franchisors with at least one FDD in the period.
- states –
MNand/orWI(default both). - mnDocumentType – only Minnesota filings of one document type (pick-list).
- statusFilter / activeOnly – keep chosen statuses, or only active registrations (registered, on file or exempt).
- newRegistrationsOnly / registeredWithinDays – only franchisors that filed recently.
- expiringWithinDays / hasContactInfo / fetchContactDetails – Wisconsin expiry dates and filing contacts (need WI).
- consolidateByFranchisor (default true) – one record per franchisor; off = one per franchisor per state.
- maxResults / sortBy – how many franchisor records (each record is one charge) and their order (
newestorleadScore). An API call with no search, filter or maxResults returns a 25-record sample. - monitorMode / monitorKey – emit only franchisors not delivered by earlier runs with the same key (great with Schedules).
Output
One record per franchisor. A real record from a search for "Atwell Suites" (lists shortened):
{"franchisorName": "Holiday Hospitality Franchising, LLC","primaryBrand": "Atwell Suites","brandNames": ["Atwell Suites"],"registeredStates": ["MN"],"status": "Exempt","isActive": true,"latestRegistrationDate": "2026-02-27","earliestRegistrationDate": "2019-09-18","fddCount": 12,"latestFddUrl": "https://cards.web.commerce.state.mn.us/documents/%7B001ABD90-0000-C218-B347-FF25B1B149E9%7D/download?documentClass=FRANCHISE_REGISTRATIONS&contentSequence=0","latestFddDate": "2024-06-28","latestFddVersion": "marked","fddDocuments": [{"state": "MN","documentId": "31999-202406-02","label": "Marked FDD","version": "marked","labelSource": "documentType","brands": ["ATWELL SUITES"],"year": "2024","receivedDate": "2024-06-28","fileNumber": "9105","fileName": "31999-202406-02.pdf","sizeBytes": 13631488,"url": "https://cards.web.commerce.state.mn.us/documents/%7B001ABD90-0000-C218-B347-FF25B1B149E9%7D/download?documentClass=FRANCHISE_REGISTRATIONS&contentSequence=0"},{"state": "MN","documentId": "27306-202303-04","label": "Clean FDD response","version": "clean","labelSource": "notes","brands": ["Atwell Suites"],"year": "2023","receivedDate": "2023-03-29","fileNumber": "9105","url": "https://cards.web.commerce.state.mn.us/documents/%7B70D7E187-0000-CC23-BDAF-F25446C06F8F%7D/download?documentClass=FRANCHISE_REGISTRATIONS&contentSequence=0"}],"fddDocumentUrls": ["https://cards.web.commerce.state.mn.us/documents/%7B001ABD90-0000-C218-B347-FF25B1B149E9%7D/download?documentClass=FRANCHISE_REGISTRATIONS&contentSequence=0"],"filingYears": [2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019],"documentTypes": ["Franchise Exemption Effectiveness", "Order of Cancellation", "Marked FDD", "Order of Renewed Registration w Amendment"],"fileNumbers": ["11626", "9105"],"registrations": [{"state": "MN","status": "Exempt","latestFilingDate": "2026-02-27","documents": [{ "documentId": "35437-202602-03", "type": "Franchise Exemption Effectiveness", "notes": "Order of Exemption", "year": "2026", "receivedDate": "2026-02-27", "url": "https://cards.web.commerce.state.mn.us/documents/…" }],"sourceUrl": "https://cards.web.commerce.state.mn.us/franchise-registrations?doSearch=true&franchiseName=Atwell+Suites"}],"matchedSearchTerms": ["Atwell Suites"],"gtmSignals": ["activeRegistration", "renewal", "fddAvailable"],"leadScore": 54,"sources": ["Minnesota"],"scrapedAt": "2026-10-08T16:39:48.093Z"}
FDD fields. version is clean, marked (changes highlighted; a small marked file can be only the changed pages), clean+marked (one PDF with both) or unspecified. labelSource says where the label came from: Minnesota's document type, its notes column, or fileSize – an older filing Minnesota left unlabelled but whose PDF is FDD-sized. Those are listed in fddDocuments so no FDD is missed, but they are not used for latestFddUrl or fddDocumentUrls, because a few are other large filings (an exemption request with FDD exhibits, for example). sizeBytes is the size the registry lists (rounded).
Wisconsin records add businessAddress, contactName, contactEmail, contactPhone, contactFax, officerName, officerTitle, organizationType, statesApplicationFiled and expirationDate. When Wisconsin could not be read, sourcesUnavailable is ["WI"] and those fields are null.
Coverage
- Minnesota publishes every franchise filing since about 2010 with its PDF. FDDs are labelled in most packages; older ones are often filed as "Other", which is why
fddDocumentsalso checks the notes and the file size. - Large-franchisor exemptions. Some big franchisors (large hotel groups, for example) hold a Minnesota exemption: they file under the company name, sometimes with a generic brand label, and do not file every brand's FDD. If a brand returns nothing, search the franchisor's name (for example "Hilton" or "Marriott") to see what it filed.
- Wisconsin is searched by name (it has no browse listing). Its public search currently puts results behind a browser security check; while it does, Wisconsin status, expiry dates and filing contacts are not included, the run says so on its status line, and the Minnesota data is delivered in full.
How much does it cost to scrape US state franchise registries?
This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:
- Franchise registration record - One franchisor lead record from official state franchise regulators: the franchisor and its brand(s), registration status, effective/expiration dates, FDD disclosure-document links, file numbers, business address, attorney/contact name with email & phone, multi-state registration footprint, GTM intent signals and a derived 0-100 lead score.
The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches. A search that matches nothing, or a run stopped by a filter, is not billed.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run daily/weekly with
monitorModeto capture only newly registered or renewed franchisors. - Webhooks — trigger CRM import, Slack alert, or an email sequence the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/us-franchise-registrations-scraper').call({states: ['MN'],newRegistrationsOnly: true,registeredWithinDays: 90,onlyWithFdd: true,maxResults: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} franchisors`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new franchisor leads straight into your CRM.
- Slack — get notified when a monitored search finds new registrations.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find the Atwell Suites FDDs filed in 2023 and 2024 and list their links" and let it run this scraper.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More US B2B data & lead-gen scrapers from scrapesage
Build a complete US business-intelligence and lead-gen stack from official sources:
- US Business Formation Scraper — newly registered LLCs & corporations (new-business intent).
- US UCC Filings Scraper — UCC-1 secured-loan filings: business borrowers, lenders & collateral.
- SBA Loan Leads Scraper — 7(a) & 504 financed small businesses (financing intent).
- PPP Loan Data Scraper — 11.5M+ PPP loans with firmographics & owner demographics.
- US Property Records Scraper — parcels & owner leads with mailing addresses.
- US Contractor License Scraper — licensed contractors from state boards.
- US Professional License Scraper — licensed professionals across state agencies.
- US Auto Dealer Scraper — licensed dealers, repair & body shops.
- Nonprofit & IRS 990 Scraper — tax-exempt orgs & decision-maker leads.
- SEC Form D Funding Scraper — private-placement & startup-funding leads.
Tips
- One brand, every FDD:
franchisorName: "Atwell Suites"with no years returns the whole filing history; addfilingYearFrom/filingYearTofor one period. - A multi-brand franchisor, one brand: franchisor "Holiday Hospitality" +
brandName"Atwell". - Several brands at once: put them in
searchTerms; the run's status line names any search that found nothing. - Freshest leads: leave the name blank, keep the current year,
sortBy: "newest", optionallyonlyWithFdd. - Partial names: "Atwell" finds "Atwell Suites"; to match inside words ("Spark" → "Sparkle") set
nameMatchtocontains. - No proxy needed: Minnesota answers directly; if its rate limit is reached, the run switches IP or waits on its own.
FAQ
Which states are covered? Minnesota (Commerce CARDS) and Wisconsin (DFI). The per-state design is built to add California, Indiana, Washington, Maryland and the other registration states; request priorities on the Issues tab.
What is an FDD? The Franchise Disclosure Document – the disclosure every franchisor must give prospective franchisees: fees, initial investment, Item 19 financial performance, outlet counts, litigation and the franchise agreement. Minnesota keeps each filed version as a PDF, and this actor links every one.
Why does my download script get HTTP 403 on the PDF links? The Minnesota file server refuses requests that do not send a browser User-Agent (Python's requests, curl and wget defaults are refused). Send a browser User-Agent header as in the Python example above and the same link downloads.
I searched a well-known brand and got nothing. Why? Either the brand is not filed in the selected states, or the franchisor holds a Minnesota large-franchisor exemption and files under the company name (sometimes with a generic brand label). Search the franchisor's name, try fewer words, or set nameMatch to contains. A search that finds nothing is not billed.
Are the Wisconsin contacts included? When Wisconsin's search can be read, yes: the filing contact (often the franchise attorney) with email, phone and address, plus the officer and expiry date. Its public search currently sits behind a browser security check; while it does, those fields stay empty, sourcesUnavailable shows WI, and the run says so.
How do I get only newly registered franchisors? Turn on monitorMode and run on a Schedule; each run emits only franchisors not delivered before with the same monitorKey.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically every run via the Google Drive integration. The FDD documents view shows the latest FDD per franchisor.
Is scraping this data legal? It collects publicly available government records only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA where personal data is involved) and each regulator's terms.
Data & lawful use
The source is an official public register, published so that anyone can consult it. Records can name individuals (franchise filing contacts, company officers and agents for service of process named on registrations), so the output may contain personal data even though it is public. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis, honour access and deletion requests, and respect the register's own reuse conditions, which can restrict marketing or commercial use.
Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by US state franchise registries or any government body. All trademarks mentioned are the property of their respective owners.
"US state franchise registries" is referenced only in a descriptive, nominative sense - to identify the public data source this Actor collects from. This Actor is not an official product or service of US state franchise registries and is not authorised or certified by it. It collects only publicly available records; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the source's own terms of use or reuse conditions.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests — especially additional states — are welcome; this actor is actively maintained.