California Cannabis License Search avatar

California Cannabis License Search

Pricing

from $0.80 / 1,000 cannabis license records

Go to Apify Store
California Cannabis License Search

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

Muhammad Afzal

Maintained by Community

Actor 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 groupDataset fields
License identitylicenseRecordId, licenseNumber, licenseStatus, licenseStatusDate
TermslicenseTerm, licenseType, licenseDesignation, issueDate, expirationDate
LicenseebusinessLegalName, businessDbaName, businessOwnerName, businessStructure, activity
PremisespremiseStreetAddress, premiseCity, premiseState, premiseCounty, premiseZipCode, premiseLatitude, premiseLongitude, parcelNumber
Authority and freshnesslicensingAuthority, licensingAuthorityId, localJurisdictionType, localJurisdictionName, dataRefreshedDate, sourceUrl, scrapedAt
Run diagnosticsSUMMARY 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

InputDefaultDescription
searchQueryEmptyText search using the DCC portal. A license number, business name, owner, street, city, ZIP code, or other directory text can be searched.
licenseStatusActiveChoose one status or All statuses. Status options include Active, Limited Operations, Canceled, Expired, Revoked, Suspended, and Surrendered.
licenseTypeEmptyExact DCC license type name. Matching ignores capitalization and repeated spaces; for example, Commercial - Retailer resolves to the source’s current option.
licenseDesignationAnyOptional Adult-Use, Medicinal, or Adult-Use and Medicinal filter.
licenseTermAnyOptional Annual, Provisional, or Interim filter.
premiseCountyEmptyExact county name for the licensed premises, such as Alameda or Los Angeles.
maxResults100Maximum 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.

EventFREEBRONZESILVERGOLDPLATINUMDIAMOND
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.