ParseForge Scrapers

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.

Run this scraper See the API call
Total users
11
Monthly active
1
Total runs
839
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

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

  1. Create a free Apify account with $5 in credit.
  2. Open the California Franchise Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

FieldTypeWhat it doesDefault
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 forWhat it isPrice 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.

POST ยท run and get results
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.

input.json
{
  "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.

Related scrapers

Run California Franchise Scraper on Apify All scrapers