California DCA License Search — Bulk License Lookup
Pricing
from $1.60 / 1,000 dca license record returneds
California DCA License Search — Bulk License Lookup
Search California DCA license files by board, name, number, city, county or status and export license records with dates. USD 2 per 1,000 records.
Pricing
from $1.60 / 1,000 dca license record returneds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
California DCA License Search returns professional license records from the official monthly public licensee files of the California Department of Consumer Affairs (DCA): license number, type, status, issue and expiration dates, licensee or business name, address of record, and the source file. It is built for compliance teams, credentialing staff, recruiters and researchers who need many California license records at once, and it costs about USD 2 per 1,000 records on the FREE tier (USD 0.002001 per record).
Pick one DCA board or bureau, add filters such as license number, name, city, county or status, and the Actor downloads that agency's current public file, filters it, and writes matching records to an Apify dataset you can export as CSV, JSON or Excel.
What does the California DCA license search return?
Each dataset item is one row of the selected agency's public licensee file.
| Field | What it contains |
|---|---|
agencyName, licenseType, specialtyCode | Issuing board or bureau, license type and specialty code when published |
licenseNumber | Public license number |
licenseStatus | Status text such as Active, Current, Expired or Cancelled |
originalIssueDate, expirationDate | Dates in the file's MM-DD-YYYY format |
entityType | Individual-or-organization flag from the file, for example I |
organizationOrLastName, firstName, middleName, suffix | Business name or the licensee's last name, and the other name parts |
addressLine1, addressLine2, city, county, state, zip, country | Address of record as published by DCA |
school, yearGraduated, degree | Education fields, where the agency publishes them |
sourceAgency, sourceFile, sourceUrl, scrapedAt | Which public file the row came from and when it was read |
Empty cells are null. Each run also writes a SUMMARY record with the outcome (DATA, EMPTY or FAILED), the agency, the source file name and its last-modified date, records scanned, records returned and warnings.
Which California DCA boards and bureaus are covered?
The agency field offers 32 DCA licensee files: Accountancy, Acupuncture, Architects, Automotive Repair, Barbering and Cosmetology, Behavioral Sciences, Cemetery, Chiropractic, Dental, Dental Hygiene, Electronic and Appliance Repair, Funeral, Hearing Aid Dispensers, Landscape Architects, Medical Board, Naturopathic Medicine, Occupational Therapy, Optometry, Osteopathic, Pharmacy, Physical Therapy, Physician Assistant, Podiatric Medicine, Professional Engineers (with land surveyors and geologists), Professional Fiduciaries, Psychology, Registered Nursing, Respiratory Care, Security and Investigative Services, Structural Pest Control, Veterinary Medicine, and Vocational Nursing. One agency is read per run; to cover several, run once per agency. Speech-Language Pathology and Audiology is not offered: DCA's public folder for it held no data file on 2026-10-27, and the Hearing Aid Dispensers file from the same board lists only hearing aid dispenser licenses.
Contractor licenses (CSLB) and cannabis licenses (DCC) are not offered by this Actor; see the sibling Actors under "When should I use it".
How do I look up California licenses by name, number or county?
Choose the agency, then add any filters. All text filters are case-insensitive partial matches except licenseNumber, which must match exactly.
| Input | Default | Notes |
|---|---|---|
agency | professionalFiduciaries | Agency key, for example registeredNursing or pharmacy |
licenseNumber | none | Exact license number within that agency |
firstName, lastName | none | Individual name parts; lastName also matches organization names |
businessName | none | Organization name |
city, county | none | Address-of-record city or county |
licenseStatus | none | Status text, for example Active or Expired |
includeInactive | false | By default only Active or Current records are returned |
maxResults | 100 | Records written per run, 1–1,000 |
Active registered nurses in Los Angeles County:
{"agency": "registeredNursing","county": "Los Angeles","licenseStatus": "Active","maxResults": 100}
One psychologist by name, including expired or cancelled records:
{"agency": "psychology","firstName": "Jane","lastName": "Doe","includeInactive": true,"maxResults": 25}
How fresh is the DCA license data?
As fresh as DCA's latest monthly file. DCA says it refreshes the public licensee files at the start of each month, and the Actor finds the agency's current data file at run time. In the 2026-10-26 runs the Professional Fiduciaries file was dated 2026-10-01 (shown in SUMMARY as sourceFileModifiedAt). Status changes made after that date appear only after DCA's next refresh, so use DCA's own live search to confirm a single license before a high-stakes decision.
Can I call it as a DCA license API?
Yes. Call the Actor from apify-client, the Apify REST API, a schedule or an AI agent; no DCA account, cookies or credentials are needed.
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/california-dca-professional-license-scraper').call({agency: 'pharmacy',city: 'San Diego',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const r of items) console.log(r.licenseNumber, r.organizationOrLastName, r.licenseStatus, r.expirationDate);
Python:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/california-dca-professional-license-scraper").call(run_input={"agency": "professionalFiduciaries","licenseNumber": "3","maxResults": 10,})for record in client.dataset(run.default_dataset_id).iterate_items():print(record["licenseNumber"], record["firstName"], record["organizationOrLastName"], record["licenseStatus"])
Use it from an AI assistant
California DCA License Search works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/california-dca-professional-license-scraper to your client and ask, for example: "List active California-licensed physical therapists in Sacramento County with their license numbers and expiration dates." Each record is charged at the prices below, so ask for a record limit.
What does the output look like?
Two records from a 2026-10-26 cloud run of the default input (100 records in about 12 seconds, 1,109 rows scanned):
[{"agencyName": "Professional Fiduciaries Licensing Bureau","licenseType": "Professional Fiduciary","specialtyCode": null,"licenseNumber": "3","entityType": "I","organizationOrLastName": "Nord","firstName": "Carey","middleName": "James","addressLine1": "Po Box 690","city": "Napa","county": "Napa","state": "CA","zip": "94559","originalIssueDate": "07-01-2008","expirationDate": "12-31-2026","licenseStatus": "Active","sourceAgency": "Fiduciaries_3108","sourceFile": "Fiduciaries_Data00.xls","scrapedAt": "2026-10-26T08:09:20.106Z"},{"agencyName": "Professional Fiduciaries Licensing Bureau","licenseType": "Professional Fiduciary","licenseNumber": "5","entityType": "I","organizationOrLastName": "Smith","firstName": "Anne","city": "San Geronimo","county": "Marin","expirationDate": "12-31-2026","licenseStatus": "Active","sourceFile": "Fiduciaries_Data00.xls","scrapedAt": "2026-10-26T08:09:20.106Z"}]
Pricing: how much do California license records cost?
The Actor uses pay-per-event pricing with platform usage included. You pay for each record saved to the dataset, plus one start event per run at the default 512 MB memory.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| DCA license record returned | USD 0.002001 | USD 0.00195 | USD 0.0019 | USD 0.0016 | USD 0.0016 | USD 0.0016 |
| Actor start (per started GB of allocated memory) | USD 0.006251 | USD 0.006094 | USD 0.005938 | USD 0.005 | USD 0.005 | USD 0.005 |
Worked totals on the FREE tier:
- Default input, 100 records: 100 × USD 0.002001 + USD 0.006251 = USD 0.206351
- 1,000 records: 1,000 × USD 0.002001 + USD 0.006251 = USD 2.007251
A search that matches nothing, or a run whose download fails, charges only the start event. If you set a maximum charge for the run, the Actor stops after the last record that fits.
Limits and reliability
- One agency, one file. Some agencies publish more than one data file; the Actor reads the current
_Data00file in the agency's folder. - Large files. Registered Nursing, Security and Investigative Services and Barbering and Cosmetology files are much larger than the Professional Fiduciaries file used in testing. They take longer to download and were not timed on 2026-10-26.
- Failed downloads. On 2026-10-26 one of three default runs stopped with "fetch failed" while connecting to DCA's public-file host. The Actor now allows a slower connection and retries each request up to four times with backoff. A run that still cannot read the file ends with a red Failed status, writes
outcome: FAILEDtoSUMMARY, and charges only the start event.
When should I use it, and when not?
Use it when you need California license data in bulk: verifying a list of licensees, building a roster for one profession and county, checking expiration dates across a team, or monitoring a board's licensees month to month.
Use something else when:
- You need California contractor licenses: California CSLB Scraper.
- You need California cannabis business licenses: California Cannabis License Search.
- You need another state: Virginia DPOR License Scraper or Illinois License Scraper.
- You need today's status of one license. DCA's own online License Search is real time; this Actor works from the monthly files.
FAQ
Is this the same data as the DCA License Search website?
It comes from the same department, but from the monthly public licensee files rather than the real-time search, so it can lag by up to a month.
Can I search every DCA agency at once?
No. Each run reads one agency file. Run it once per agency and combine the datasets.
Why are expired licenses missing?
includeInactive is false by default, so only Active and Current records are returned. Set it to true to include expired, cancelled, surrendered and other statuses.
Does it include disciplinary actions?
No. The public licensee files carry license, status, date, name, address and education fields, not enforcement history.
Do I need a DCA account or API key?
No. The files are public and the Actor needs no credentials. It does not use or bypass the human-verification check on DCA's real-time search page.
Can I export the records to Excel or CSV?
Yes. Apify exports any dataset to CSV, JSON, Excel or XML, and integrations can send it to Google Sheets or a CRM.
Related Actors
- California CSLB Scraper: California contractor licenses, classifications and bonds
- California Cannabis License Search: California DCC cannabis business licenses
- Contractor License Leads — US Contractors: licensed contractors across US registries
- Virginia DPOR License Scraper and Illinois License Scraper: professional licenses in other states
Legal and compliance
The records are public government license data that DCA publishes for download. They include individuals' names and addresses of record, so use them for lawful verification, compliance and research, respect California privacy law and anti-spam rules, and do not use them for harassment or unlawful discrimination. The Actor is not affiliated with the California Department of Consumer Affairs, and this is not legal advice.
Last verified: 2026-10-27