ParseForge Scrapers

Franchise Disclosure Documents Scraper

parseforge/franchise-disclosure-documents-scraper

Business

Search every US state franchise registry that publishes FDD filings in one run: California DFPI, Wisconsin DFI, Minnesota CARDS, Virginia SCC and the NASAA depository states. Returns filings, dates, status, document links, FDD PDFs, Item 19 data and fee and investment ranges.

Run this scraper See the API call
Total users
12
Monthly active
2
Total runs
990
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the Franchise Disclosure Documents Scraper return?

ParseForge

FDD Database Scraper: State Franchise Registration and Disclosure Document Search

Search the US state franchise registries that publish franchise disclosure document filings, all in one run: a search for "McDonald's" across ten states returned filings from California, Wisconsin, Minnesota, Virginia and North Dakota in 22 seconds. Every row carries the franchisor, brand, file number, filing type, dates, status and the link the state publishes. No login, no API key, no state-by-state portal hopping. Export to CSV, JSON, Excel, or XML.

Only a handful of states run a public franchise database, and each one hides it behind a different search form: California DFPI has a Solr index, Wisconsin DFI an ASP.NET form, Minnesota CARDS a document library, Virginia SCC an OData service, and New York, Maryland, Illinois, North Dakota, South Dakota and Rhode Island file through the NASAA Electronic Filing Depository. This Actor queries all of them with one franchise name and returns one fixed schema, with the FDD PDF and its Item 19 numbers as optional add-ons.

Who uses it What they scrape franchise disclosure documents for
Franchise buyers Compare the initial fee, total investment and Item 19 earnings of every brand on a shortlist.
Franchise brokers and consultants Check which brands are registered and current in the states a client wants to open in.
Competitive intelligence teams Track renewals, amendments and exemptions filing by filing, quarter over quarter.
Franchise attorneys Pull the filed disclosure documents and their effective and expiration dates for due diligence.
Data and lead teams Build a franchisor list with contacts, registered agents and multi-state footprints.

What it does

This Actor searches the public franchise registries of ten states in one run and returns one row per filing, registration or filed document.

  • ๐Ÿ”Ž One search, ten registries: California DFPI, Wisconsin DFI, Minnesota CARDS, Virginia SCC, and New York, Maryland, Illinois, North Dakota, South Dakota and Rhode Island through the NASAA depository.
  • ๐Ÿงพ Filing level detail: file number, filing type, filed, effective and expiration dates, registration status, enforcement flags and the state's own link.
  • ๐Ÿ“„ The disclosure document itself: download the FDD PDF the state published and keep a copy with the run.
  • ๐Ÿ“Š Item 19 and the fee tables: read the initial franchise fee, total investment range, Item 19 financial performance representation and Item 20 outlet counts straight out of the PDF.
  • ๐Ÿข Franchisor details: address, filing contact, registered agent and the list of states the franchisor filed in.
  • ๐Ÿ’ฐ Fee and investment profile: royalty, ad fund, transfer fee, term, territory and the Item 7 investment table for the brand.
  • ๐ŸŽš๏ธ Filters that run before billing: state, status, filing type, document type, year and date range.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with franchise disclosure document data

๐Ÿ“‹ Check a brand's registration status in every state at once.

A broker searches one brand name and sees, in one table, that it is registered in Wisconsin until April 2027, exempt in Virginia, and filing exemption renewals in North Dakota.

๐Ÿ’ต Compare startup costs across a shortlist.

An investor turns on the FDD add-ons for five brands and gets the initial franchise fee, the total investment range and the Item 19 average unit volume from the documents the states hold.

๐Ÿ” Track renewals and amendments.

A competitive intelligence team runs the same names monthly with a date range and diffs the new filings: renewals, post-effective amendments and exemption notices as the states record them.

๐Ÿ“š Build a franchisor contact file.

A lead team collects the franchisor address, filing contact and registered agent for every brand registered in a state, with the file numbers that prove it.

Why choose this scraper

What you get
Ten registries, one schema California, Wisconsin, Minnesota, Virginia and the six NASAA depository states in the same columns, deduplicated per run.
The filings, not a directory Rows come from the state's own database, with its file numbers, dates and status, not from a franchise marketing site.
The PDF and what is inside it Download the filed disclosure document and get the Item 5 fee, Item 7 investment range, Item 19 representation and Item 20 outlet counts.
Filters before billing State, status, filing type, document type, year and date range are applied before a row is written, so you do not pay for rows you filter out.
Old inputs keep working searchQuery, startUrl, maxItems and maxConcurrency from the previous version are still read as they were.
Pay only for what you turn on Franchisor details, document lists, FDD PDFs, Item 19 extraction and the cost profile are separate add-ons, off by default.

How it compares

Most franchise Actors cover one state or one directory. The only other multi-state option covers two states. If you only ever need Wisconsin or Minnesota filings, the single-state Actors listed at the end are cheaper per row; this one exists for the case where you need every state that publishes anything, plus the document itself.

Feature ParseForge scrapesage/us-franchise-registrations-scraper automation-lab/wisconsin-franchise-disclosure-filings silentshadow55/fdd-item19-actor
State registries covered 10 2 (MN, WI) 1 (WI) 1 (MN)
Filing dates and status Yes Yes Yes No
FDD PDF copy stored with the run Yes No No Yes
Item 19 extracted from the PDF Yes No No Yes
Item 5 fee and Item 7 investment range Yes No No No
Franchisor contact and registered agent Yes Yes No No
Price per 1,000 results $17.34 $10.00 $7.83 $600.00

What a franchise filing looks like

One real row from the verified run, with the FDD add-ons turned on:

{
  "state": "ND",
  "stateName": "North Dakota",
  "source": "NASAA EFD",
  "registryUrl": "https://www.nasaaefd.org/Franchise/Search",
  "franchisor": "McDonald's USA, LLC",
  "brand": "McDonald's",
  "fileNumber": "FR0292",
  "recordId": "EFD-439183-38233-2023-12-22",
  "recordType": "Registration",
  "filingType": "Exemption Amendment",
  "filingSubtype": "N/A",
  "documentType": "N/A",
  "documentTitle": "N/A",
  "filingYear": "2023",
  "filingDate": "N/A",
  "effectiveDate": "2023-12-22",
  "expirationDate": "2024-05-10",
  "status": "Registered",
  "statusGroup": "Active",
  "documentUrl": "https://www.nasaaefd.org/Franchise/ViewNotices?EFDID=439183&RegistrationId=38233&isRegistered=true",
  "hasDocumentOnFile": "Yes",
  "documentFileName": "N/A",
  "documentAddedOn": "N/A",
  "enforcementCases": "N/A",
  "publicActions": "N/A",
  "offeringType": "N/A",
  "notes": "Reviewed by Bailey Doll (badoll@nd.gov)",
  "efdId": "439183",
  "sourceUrl": "https://www.nasaaefd.org/Franchise/439183/McDonalds",
  "matchedQuery": "McDonald's",
  "fddPdfStoredUrl": "https://api.apify.com/v2/key-value-stores/qNXPiBKuhNMEmY8zs/records/fdd-EFD-439183-38233-2023-12-22",
  "fddPdfSizeBytes": 6645987,
  "fddPageCount": 414,
  "fddIssuanceDate": "2023-05-01",
  "fddInitialFeeUsd": 45000,
  "fddTotalInvestmentMinUsd": 1469000,
  "fddTotalInvestmentMaxUsd": 2503000,
  "fddItem19Provided": "Yes",
  "fddOutletsYear": "2022",
  "scrapedAt": "2026-09-17T18:56:17.604Z"
}

Fields a state does not publish come back as N/A, and fields it publishes but left empty come back as Not Disclosed, so the columns are the same for every state.

Configure the run

Type a franchise or franchisor name in searchQuery, or add several to searchQueries. Leave both empty to browse the registries without a name: California returns its filings, Minnesota the current year, Virginia its whole table, and Wisconsin its active registrations. Narrow with states, status, filingType, documentType, year, dateFrom and dateTo, and turn on the add-on blocks only when you need them. startUrls accepts a Wisconsin detail page, a NASAA EFD franchise page, a California DFPI detail page or a Franchise Direct FDD summary page.

Every state that holds a filing for one brand:

{ "searchQuery": "Anytime Fitness", "maxItems": 200 }

Active registrations filed in 2025 and 2026 in two states, with the franchisor contact:

{ "searchQueries": ["pizza"], "states": ["WI", "MN"], "status": "active", "dateFrom": "2025-01-01", "includeFranchisorDetails": true, "maxItems": 500 }

The disclosure documents themselves, with the fee and Item 19 numbers read out of them:

{ "searchQuery": "Subway", "states": ["MN", "ND", "NY"], "documentType": "Clean FDD", "downloadFddPdf": true, "extractFddFinancials": true, "maxItems": 25 }

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Franchise Disclosure Documents Scraper.
  3. Type a franchise name in searchQuery, pick the states you care about, tick any add-on blocks, and click Start.
  4. Export the rows as CSV, Excel, JSON or XML from the Dataset tab, and pick up the stored FDD PDFs from the Key-value store tab.

Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to the state franchise registries through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/franchise-disclosure-documents-scraper"

Then prompt it in plain language:

  • "Which states hold a current franchise registration for Anytime Fitness, and when does each one expire?"
  • "Pull the latest Minnesota Clean FDD for Subway and tell me the initial franchise fee and the Item 19 numbers."
  • "List every franchise filing made in Wisconsin and Minnesota since January, with the franchisor contact."

Copy this into ChatGPT, Claude, or Cursor to start:

Use the Apify Actor "parseforge/franchise-disclosure-documents-scraper" to search US state franchise registries. Input: { "searchQuery": "<franchise name>", "states": ["CA","WI","MN","VA","NY","MD","IL","ND","SD","RI"], "status": "<all|active|expired|pending|closed>", "downloadFddPdf": <true|false>, "extractFddFinancials": <true|false>, "maxItems": <n> }. Rows come back with state, franchisor, brand, fileNumber, filingType, effectiveDate, expirationDate, status, documentUrl and sourceUrl. Call it with the ApifyClient and my APIFY_TOKEN.

Troubleshooting

Why am I getting no results?

The registries match on the name they hold, which is the legal name or the trade name, not the marketing name. Search a distinctive fragment such as Anytime Fitness or McDonald rather than a full legal name with punctuation, and check that the states you selected actually register franchises.

Why fewer Wisconsin rows than I expected?

Wisconsin caps a single search at 200 filings and its Cloudflare rules refuse some networks. When the search form refuses the run, the Actor falls back to the state's public active filings list, which carries the franchisor name, the expiration date and the status but no file number, and says so in the row's notes.

Why is a field empty?

N/A means the state does not publish that field at all, and Not Disclosed means it publishes it but left it blank for this record. Minnesota, for instance, publishes documents without a registration status, so status is N/A there.

Why did a filter drop a whole state?

Filters only keep rows that carry the field. A status filter drops Minnesota rows because that registry has no status column, and a filingType of renewal drops Wisconsin and Virginia rows because those registries record one filing type.

Why is the run slow with the FDD add-ons on?

A disclosure document is 2 MB to 7 MB and 400 pages, and it is downloaded and read page by page. Measured on the platform: one to two documents a minute, against 500 plain rows in 37 seconds. Raise the run timeout for large document jobs.

FAQ

Question Answer
Which states are covered? California, Wisconsin, Minnesota and Virginia from the state's own database, plus New York, Maryland, Illinois, North Dakota, South Dakota and Rhode Island through the NASAA Electronic Filing Depository.
Why not all 50 states? Only a handful register franchises and publish a searchable database. Washington, Michigan, Hawaii and Indiana either keep filings offline, publish nothing searchable, or gate the search behind a captcha, so they are not included.
Do I need a login or an API key for the registries? No. Every source here is a public search that the state exposes on its own website.
Can I download the actual FDD? Yes, where the state publishes the file: Wisconsin, Minnesota, the NASAA depository states, and California for filings from the last 10 years. Turn on downloadFddPdf and the PDF is stored with the run, with its link in fddPdfStoredUrl. In California the FDD is read from applications (registrations, renewals and amendments); exemption notices carry only the notice form, so those rows come back without a PDF and are not charged for one.
What does the Item 19 extraction return? Whether the franchisor makes a financial performance representation, an excerpt of that Item 19 text, plus the Item 5 initial fee, the Item 7 total investment range and the Item 20 outlet counts.
How current is the data? It is read live from each registry at run time, so it is as current as the state's own search page.
Can I filter by date or year? Yes: year, dateFrom and dateTo apply to the filing date, or the effective date when the state does not publish a filing date.
Does my old input still work? Yes. searchQuery, startUrl, maxItems and maxConcurrency are read exactly as before, and a Franchise Direct URL in startUrl still returns its fee and investment profile.
How many results per run? Free plan: 10. Paid: up to 1,000,000, bounded by what the registries return for your search.
Is this an official state product? No. It is unofficial and collects only data the states publish for anyone to read.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by any state agency, NASAA, or any franchisor. It collects only publicly available filing data. You are responsible for using the data in compliance with each registry's terms and applicable laws, including GDPR, CCPA, and PIPL. Do not use it to identify, profile, or target individuals.

What input does the Franchise Disclosure Documents Scraper accept?

FieldTypeWhat it doesDefault
searchQuery string Franchise or franchisor name to look up in every selected state, for example 'McDonald's', 'Subway' or 'pizza'. Leave empty to browse the registries without a name. McDonald's
searchQueries array Extra names to search in the same run, one per line. Each name is searched in every selected state. []
startUrls array Go straight to specific records: Wisconsin detail pages (apps.dfi.wi.gov/apps/FranchiseSearch/details.aspx?id=...), NASAA EFD franchise pages (nasaaefd.org/Franchise/123456/Name), California DFPI detail pages (dfpi.ca.gov/search-result-detail/?id=...) or Franchise Direct FDD summary pages. not set
startUrl string Legacy single URL input, kept so saved tasks keep working. Accepts the same URLs as the list above. not set
maxItems integer Free users: limited to 10 items (preview). Paid users: up to 1,000,000. 10
states array Which state registries to query. California, Wisconsin, Minnesota and Virginia come from the state's own database; New York, Maryland, Illinois, North Dakota, South Dakota and Rhode Island come from the NASAA Electronic Filing Depository and need a franchise name. ["CA","WI","MN","VA","NY","MD","IL","ND"
status string (5 options) Keep only filings in this state. 'Active' covers registered, effective and exempt filings; Minnesota publishes documents without a status, so it is skipped when you pick anything other than 'Any status'. all
filingType string (9 options) Keep only filings of this kind, matched across the wording each state uses. all
documentType string (21 options) Minnesota CARDS document type. 'Clean FDD' and 'Final FDD' are the ones that carry the disclosure document itself. Applies to Minnesota rows only. not set
year string Keep only filings from this year, for example 2025. Minnesota applies it in the query itself. not set
dateFrom string Keep only filings dated on or after this day, as YYYY-MM-DD or MM/DD/YYYY. not set
dateTo string Keep only filings dated on or before this day, as YYYY-MM-DD or MM/DD/YYYY. not set
includeFranchisorDetails boolean Add the franchisor address, phone, filing contact, registered agent and the list of states the franchisor filed in. Available for Wisconsin and NASAA EFD rows; one extra request per record. false
includeDocuments boolean Add every document filed with the registration, its type and its public download link where the state publishes one. false
downloadFddPdf boolean Download the franchise disclosure document itself and store a copy you can download from this run, for rows whose registry publishes the file (Wisconsin, Minnesota FDD documents, NASAA EFD, and California filings from the last 10 years). Files run from 1 MB to 40 MB. false
extractFddFinancials boolean Read the disclosure document and return the initial franchise fee, the total investment range, the Item 19 financial performance representation and the Item 20 outlet counts. false
includeCostProfile boolean Add the published fee and investment summary for the brand: franchise fee, total investment, royalty, ad fund, transfer fee, term, territory and the Item 7 investment table. false
maxConcurrency integer Parallel requests used for the optional blocks. Lower it if a registry rate limits the run. 5
proxyConfiguration object The NASAA depository blocks datacenter traffic, so US residential proxies are used for those states. The state registries are fetched directly. {"useApifyProxy":true,"apifyProxyGroups"

How much does the Franchise Disclosure Documents Scraper cost?

from $12.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.01299 to $0.01734

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Franchise Disclosure Documents Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~franchise-disclosure-documents-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQuery": "McDonald's",
    "searchQueries": [],
    "maxItems": 10,
    "states": [
      "CA",
      "WI",
      "MN",
      "VA",
      "NY",
      "MD",
      "IL",
      "ND",
      "SD",
      "RI"
    ],
    "status": "all"
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "searchQuery": "McDonald's",
  "searchQueries": [],
  "maxItems": 10,
  "states": [
    "CA",
    "WI",
    "MN",
    "VA",
    "NY",
    "MD",
    "IL",
    "ND",
    "SD",
    "RI"
  ],
  "status": "all"
}

What do users say about the Franchise Disclosure Documents Scraper?

No reviews yet. Be the first.

How do I report an issue with the Franchise Disclosure Documents Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Franchise Disclosure Documents Scraper on Apify All scrapers