California Cannabis License Search
Pricing
from $0.80 / 1,000 cannabis license records
California Cannabis License Search
Search California DCC cannabis business licenses by license number, business name, status, type, county, designation, or term. Export public license records to a dataset.
Pricing
from $0.80 / 1,000 cannabis license records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Search the California Department of Cannabis Control (DCC) public license directory and export structured cannabis business license records to an Apify dataset. Search by license number, business, owner, address, city, or ZIP code, then narrow the results by status, license type, designation, stage, and premises county.
The Actor reads the public data endpoint used by DCC’s Cannabis Unified License Search. DCC says its license search tool is updated daily and contains information about businesses licensed by the Department. Always verify a record with DCC before relying on it for a licensing decision.
What the Actor returns
Each dataset item represents one state license. It includes the license number and status, type and designation, issue and expiration dates, state licensing authority, legal and DBA names, public owner-name field, business structure, premises address and county, public email and phone, parcel number, coordinates, local jurisdiction, the source refresh timestamp, and collection timestamp.
| Field group | Dataset fields |
|---|---|
| License identity | licenseRecordId, licenseNumber, licenseStatus, licenseStatusDate |
| Terms | licenseTerm, licenseType, licenseDesignation, issueDate, expirationDate |
| Licensee | businessLegalName, businessDbaName, businessOwnerName, businessStructure, activity |
| Premises | premiseStreetAddress, premiseCity, premiseState, premiseCounty, premiseZipCode, premiseLatitude, premiseLongitude, parcelNumber |
| Authority and freshness | licensingAuthority, licensingAuthorityId, localJurisdictionType, localJurisdictionName, dataRefreshedDate, sourceUrl, scrapedAt |
| Run diagnostics | SUMMARY in the default key-value store |
Unavailable source fields are returned as null. The Actor skips a source row only when it lacks a usable DCC record ID or license number. It does not invent a fallback record.
Search inputs
| Input | Default | Description |
|---|---|---|
| searchQuery | Empty | Text search using the DCC portal. A license number, business name, owner, street, city, ZIP code, or other directory text can be searched. |
| licenseStatus | Active | Choose one status or All statuses. Status options include Active, Limited Operations, Canceled, Expired, Revoked, Suspended, and Surrendered. |
| licenseType | Empty | Exact DCC license type name. Matching ignores capitalization and repeated spaces; for example, Commercial - Retailer resolves to the source’s current option. |
| licenseDesignation | Any | Optional Adult-Use, Medicinal, or Adult-Use and Medicinal filter. |
| licenseTerm | Any | Optional Annual, Provisional, or Interim filter. |
| premiseCounty | Empty | Exact county name for the licensed premises, such as Alameda or Los Angeles. |
| maxResults | 100 | Maximum dataset records. Paid runs may request up to 25,000; the hosted Apify free-plan ceiling is 5 records per run. Pages contain up to 1,000 records. |
The default status filter returns active licenses. Choose All statuses to include historical or inactive records. A status is not a legal opinion: DCC explains its status meanings on its license search help page.
Example: find a specific license regardless of its current status.
{"searchQuery": "C10-0000001-LIC","licenseStatus": "All statuses","maxResults": 10}
Example: return active retailer licenses in Alameda County.
{"licenseStatus": "Active","licenseType": "Commercial - Retailer","premiseCounty": "Alameda","maxResults": 100}
Output example
{"licenseRecordId": 6557,"licenseNumber": "C10-0000007-LIC","licenseStatus": "Active","licenseTerm": "Annual","licenseType": "Commercial - Retailer","licenseDesignation": "Adult-Use and Medicinal","issueDate": "2018-11-20T00:00:00","expirationDate": "2026-11-20T00:00:00","licensingAuthority": "Bureau of Cannabis Control (BCC)","businessLegalName": "Blue Mountain Collective, Inc.","businessDbaName": "BLUE MOUNTAIN COLLECTIVE, INC.","premiseStreetAddress": "692 Marshall Ave","premiseCity": "San Andreas","premiseState": "CA","premiseCounty": "Calaveras","premiseZipCode": "95249","dataRefreshedDate": "2026-09-23T17:43:44.17","sourceUrl": "https://search.cannabis.ca.gov/","scrapedAt": "2026-09-24T05:55:00.000Z"}
The source example is shortened here; the dataset schema describes every output field. The official directory may show personal names and business contact details as part of its public license records.
Pricing
This Actor uses Pay per event. Apify automatically charges one start event per run and one apify-default-dataset-item event for each record delivered to the default dataset. It does not manually charge events, and it does not pass platform usage through as a separate bill.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Actor start, once per run | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 |
| Cannabis license record, per dataset item | $0.001 | $0.000975 | $0.000950 | $0.000800 | $0.000800 | $0.000800 |
For one record, the event total is $0.006 FREE, $0.005975 BRONZE, $0.005950 SILVER, or $0.005800 for GOLD, PLATINUM, and DIAMOND. For 100 records, it is $0.105 FREE, $0.1025 BRONZE, $0.100 SILVER, or $0.085 for GOLD, PLATINUM, and DIAMOND. These totals exclude any taxes and do not include the separate Apify usage cost when the Actor is run outside the paid event model.
The minimum run charge limit is set to $0.006 so one start plus one record can be delivered. For larger exports, increase the run’s maximum charge limit enough to cover the start event and expected record count. The free-plan run limit is five records even when maxResults is higher.
Reliability and limits
The Actor reads the current API address from the public DCC search portal configuration and then calls its page-backed license search endpoint. It uses sequential requests, limits each request to 1,000 rows, retries temporary HTTP 429 and 5xx errors up to two times with bounded delays, and stops at the requested result count. It does not use an account, private session, CAPTCHA solver, or third-party provider.
The DCC source may change its portal configuration or response fields. If the public portal returns an access denial or an unexpected response, the Actor reports a BLOCKED or FAILED outcome in the terminal status and SUMMARY; it does not return fabricated data. A successful search with no matches is reported as EMPTY. If the result limit is reached while more records match, SUMMARY.truncated is true.
The Actor’s 25,000-record hard cap, 1,000-row page size, and Apify run charge limit bound the amount of work and output. By default it writes at most 100 records, or 5 records on a hosted Apify free-plan run. For large exports, use a paid Apify plan and set both maxResults and the run’s maximum charge limit intentionally.
Use and data handling
This Actor is for public-record research, license discovery, and business-data workflows. Its results are a snapshot of DCC’s public directory, not a guarantee that a license is currently valid, that local permits exist, or that a business may operate at a particular location. Confirm high-impact decisions with the official DCC search and relevant local authorities.
License records can include the owner-name and contact fields DCC displays publicly. Use the data in ways permitted by applicable law and DCC’s privacy policy. The Actor does not enrich these records or infer missing personal or business details.
Source
For a correction or support request, include the Actor run ID, input filters, and the relevant license number. Do not include private credentials or unrelated personal data.