California Franchise Scraper
parseforge/california-franchise-scraper
Lead generationOtherAutomation
Scrapes franchise filings from the California DFPI public registry. Returns each filing as a flat row with franchise name, filing number, status dates, and enforcement flags, filterable by name, type, date, and enforcement status.
- Total users
- 11
- Monthly active
- 1
- Total runs
- 839
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
California Franchise Scraper
Scrape franchise filings from the California DFPI public registry, filtered by name, filing type, date, or enforcement status. Each record includes the franchise name, filing number, status dates, and enforcement flags. No login or API key. Export to CSV, JSON, Excel, or XML.
The California Department of Financial Protection and Innovation (DFPI) publishes a searchable registry of franchise filings, but the web interface limits you to one page at a time and offers no bulk export. This Actor reads the public franchise directory directly, applies your filters on name, filing type, date range, and enforcement cases, and returns every matching filing in a consistent flat schema.
| Who uses it | What they scrape California DFPI for |
|---|---|
| Franchise attorneys | Monitor new franchise registrations and enforcement actions for due diligence. |
| Market researchers | Track which franchise brands are expanding or renewing in California. |
| Compliance officers | Audit a brand's filing history and identify lapsed or amended registrations. |
| Lead generation teams | Build a list of active franchisors in California for outreach. |
What it does
This Actor collects California franchise filings from the DFPI public registry and returns each one as a flat row with its filing number, status, dates, and enforcement flags.
- ๐ Search by franchise name: enter a keyword like "McDonald's" or "7-Eleven" to find specific brands.
- ๐ Filter by filing type: isolate Initial registrations, Renewals, Amendments, or Consecutive Subsequent Notices.
- โ ๏ธ Enforcement cases only: return only filings flagged with an enforcement action by the DFPI.
- ๐ Date range filter: restrict results to filings submitted within a specific date window.
- ๐ Detail page enrichment: optionally fetch each record's detail page to extract the application ID and filing type code.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with California DFPI data
โ ๏ธ Screen for enforcement risks.
A franchise attorney runs the Actor with enforcementOnly set to true to generate a list of all California franchisors currently facing DFPI enforcement actions before advising a client.
๐ Track brand expansion.
A market researcher scrapes all Initial filings from the last quarter to identify new franchise concepts entering the California market.
๐ Audit a franchise system.
A compliance officer searches for a specific brand name and filters by Post-Effective/Amendment filings to verify that all required updates have been submitted.
๐ Build a lead list.
A sales team scrapes all active Renewal filings to compile a list of franchisors actively maintaining their California registration for outreach.
Why choose this scraper
| What you get | |
|---|---|
| No API key or registration | The DFPI registry is public; this Actor reads it directly with no authentication. |
| Bulk export ready | Download all matching filings as CSV, JSON, Excel, or XML in one run. |
| Enforcement flagging | Instantly identify filings with active enforcement cases. |
| Detail page enrichment | Optionally pull application IDs and filing type codes from each record's detail page. |
How it compares
No other Store actor targets California DFPI the same way, so the honest comparison is with the alternatives teams actually weigh.
| California Franchise Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When California DFPI changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with a franchise name or keyword, and narrow results by filing type, enforcement status, and date range as each filing is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10,
"includeDetails": false
}
A larger pull:
{
"maxItems": 200,
"includeDetails": false
}
Pricing
Pay-per-result: $0.01599 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $1.60 |
| 1,000 results | $15.99 |
| 10,000 results | $159.90 |
New Apify accounts start with $5 in free credit.
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
- Create a free Apify account with $5 in credit.
- Open the California Franchise Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to California DFPI through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/california-franchise-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your searchQuery matches a franchise name in the registry. Try leaving it empty to see all filings, then narrow down. Also verify your date range and filing type filters are not too restrictive.
The run is slow when I enable includeDetails.
includeDetails makes one additional request per filing to fetch the detail page. For large result sets this will increase run time. Disable it if you do not need applicationId or filingTypeCode.
My date filter is not working as expected.
Ensure your dates are in MM/DD/YYYY format with no leading zeros on the month or day (e.g., 1/1/2020 not 01/01/2020). The DFPI site expects this exact format.
I am getting fewer results than maxItems.
maxItems is an upper limit. The Actor returns all filings that match your filters, up to that number. If fewer filings exist in the registry for your criteria, you will receive fewer results.
FAQ
| Question | Answer |
|---|---|
| What is the California DFPI franchise registry? | It is the public database maintained by the California Department of Financial Protection and Innovation that lists all franchise filings submitted under the California Franchise Investment Law. |
| Do I need an API key or login to scrape this data? | No. The DFPI franchise registry is publicly accessible, and this Actor reads the public web interface directly without any authentication. |
| What filing types can I filter by? | You can filter by Initial, Renewal, Post-Effective/Amendment, and Consecutive Subsequent Notice filings, or leave the filter empty to get all types. |
| How do I search for a specific franchise brand? | Enter the brand name or a keyword in the searchQuery field. The Actor will return filings whose franchise name matches your input. |
| What does the enforcementOnly filter do? | When enabled, the Actor returns only filings where the DFPI has recorded an enforcement case, indicated by the ENFCases field set to Yes. |
| How do I filter by date? | Use the dateFiledFrom and dateFiledTo fields with dates in MM/DD/YYYY format to restrict results to filings submitted within that range. |
| What extra fields does includeDetails add? | When enabled, the Actor visits each filing's detail page to extract the applicationId and filingTypeCode fields, which are not available on the search results page. |
| Is there a limit on how many filings I can scrape? | You can set maxItems up to 1,000,000 per run. The actual number returned depends on how many filings match your filters. |
| What export formats are supported? | You can export your dataset in CSV, JSON, Excel, or XML format from the Apify platform. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ 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 California Department of Financial Protection and Innovation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many franchises to collect per run. | 10 |
| searchQuery | string | Search by franchise name (e.g. "McDonald's", "7-Eleven"). Leave empty to get all filings. | not set |
| filingType | string (5 options) | Filter by filing type. Leave empty for all types. | not set |
| enforcementOnly | boolean | Only return filings with enforcement cases (ENFCases: Yes). | false |
| dateFiledFrom | string | Filter filings on or after this date (MM/DD/YYYY). Example: 1/1/2020 | not set |
| dateFiledTo | string | Filter filings on or before this date (MM/DD/YYYY). Example: 12/31/2024 | not set |
| includeDetails | boolean | Fetch each record's detail page to extract additional fields: applicationId and filingTypeCode. Slower (one request per record). | false |
Pricing
from $11.99 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged once when the run starts. | $0.005 |
| Result Item | Charged once per result collected. | $0.01199 to $0.01599 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~california-franchise-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
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.
