DCC License Search — California Cannabis License Lookup
Pricing
from $0.80 / 1,000 cannabis license records
DCC License Search — California Cannabis License Lookup
Search California DCC cannabis licenses by number, business, status, type or county and export status, expiry, owner and address. USD 1 per 1,000.
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
0
Monthly active users
12 hours ago
Last modified
Categories
Share
DCC License Search exports California cannabis business licenses from the Department of Cannabis Control (DCC) public license directory: license number, status, type, adult-use or medicinal designation, issue and expiration dates, legal and DBA names, premises address, county, coordinates and the public contact fields. It is built for compliance teams, cannabis suppliers and B2B sales, and market researchers who need a California cannabis license lookup in bulk, and it costs USD 1 per 1,000 license records on the FREE tier (USD 0.001 per record, USD 0.80 per 1,000 on GOLD).
Search by license number, business, owner, address, city or ZIP code, then filter by status, license type, designation, license stage and premises county. On 2026-10-26 the directory listed 7,529 active licenses.
What does the DCC license search return?
Each dataset item is one state license. Fields DCC leaves empty are null; no value is guessed.
| Field | What it contains |
|---|---|
licenseNumber, licenseRecordId | License number such as C10-0000007-LIC and DCC's numeric record ID |
licenseStatus, licenseStatusDate | Active, Expired, Surrendered, Revoked and so on, with the status date when given |
licenseType | Activity, for example Commercial - Retailer or Cultivation - Small Outdoor |
licenseDesignation | Adult-Use, Medicinal, Adult-Use and Medicinal or Other |
licenseTerm | Annual, Provisional or Interim |
issueDate, expirationDate | Dates in DCC's format, for example 2026-11-20T00:00:00 |
licensingAuthority, licensingAuthorityId | Issuing authority, for example Bureau of Cannabis Control (BCC) |
businessLegalName, businessDbaName | Legal entity name and doing-business-as name |
businessOwnerName, businessStructure | Owner names DCC shows publicly, and the entity type such as Corporation |
businessEmail, businessPhone | Public business contact details when DCC shows them |
activity, parcelNumber | Extra activity classification and parcel number when supplied |
premiseStreetAddress, premiseCity, premiseState, premiseZipCode, premiseCounty | Address of the licensed premises |
premiseLatitude, premiseLongitude | Coordinates supplied by DCC |
localJurisdictionType, localJurisdictionName | Local authority, for example County / Calaveras |
dataRefreshedDate, sourceUrl, scrapedAt | DCC refresh time, source portal and collection time |
The run also saves a SUMMARY record with the outcome (DATA, EMPTY, REJECTED, BLOCKED or FAILED), the total matches DCC reported, records returned, whether the result was cut off by your limit, the source refresh time and warnings.
How do I look up a California cannabis license by number or business name?
Put the license number, business name, owner, street, city or ZIP code in searchQuery. Set licenseStatus to All statuses if the license might no longer be active.
{"searchQuery": "C10-0000001-LIC","licenseStatus": "All statuses","maxResults": 10}
| Input | Default | Notes |
|---|---|---|
searchQuery | empty | Free text matched the way the DCC portal matches it |
licenseStatus | Active | One status, or All statuses for inactive records too |
licenseType | any | One official DCC license type; capitalization and extra spaces are ignored |
licenseDesignation | any | Adult-Use, Medicinal, Adult-Use and Medicinal or Other |
licenseTerm | any | Annual, Provisional or Interim |
premiseCounty | any | County of the licensed premises, for example Alameda or Los Angeles |
maxResults | 100 | 1–25,000 records |
Can I download a list of all licensed cannabis businesses in California?
Yes. Leave searchQuery empty and raise maxResults: the Actor pages through the directory 1,000 records at a time, up to 25,000 per run, and removes duplicate license numbers. To build a list of licensed dispensaries in one county, filter by retailer type:
{"licenseStatus": "Active","licenseType": "Commercial - Retailer","premiseCounty": "Alameda","maxResults": 1000}
Delivery-only retailers use the type Retailer Non-Storefront; manufacturers, cultivators, distributors and testing labs have their own types. If a type name does not match DCC's current list, the run stops with REJECTED and writes no records.
How current is the California cannabis license data?
The data is read live from DCC's public license search when the Actor runs. DCC says the directory is updated daily, and every record carries dataRefreshedDate; the 2026-10-26 run returned records refreshed on 2026-10-25. Confirm any single license on the official DCC search before a licensing or compliance decision.
How do I run it from code?
JavaScript with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/california-cannabis-license-scraper').call({licenseStatus: 'Active',licenseType: 'Retailer Non-Storefront',maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const lic of items) console.log(lic.licenseNumber, lic.businessLegalName, lic.premiseCity, lic.expirationDate);
Python with apify-client:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/california-cannabis-license-scraper").call(run_input={"searchQuery": "Blue Mountain","licenseStatus": "All statuses","maxResults": 20,})for lic in client.dataset(run.default_dataset_id).iterate_items():print(lic["licenseNumber"], lic["licenseStatus"], lic["licenseType"])
Use it from an AI assistant
DCC License Search works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/california-cannabis-license-scraper to your client and ask, for example: "Is California cannabis license C10-0000007-LIC active, and when does it expire?" Records are charged at the prices below, so set a record limit for broad searches.
What does the output look like?
Two records from the cloud run of the default input (active licenses, 100 records) on 2026-10-26. Owner and contact fields are left out here and the second record is shortened; the dataset includes every field, with owner and contact values when DCC shows them.
[{"licenseRecordId": 5058,"licenseNumber": "C10-0000007-LIC","licenseStatus": "Active","licenseStatusDate": null,"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.","businessStructure": "Corporation","premiseStreetAddress": "692 Marshall Ave","premiseCity": "San Andreas","premiseState": "CA","premiseCounty": "Calaveras","premiseZipCode": "95249","premiseLatitude": 38.190254,"premiseLongitude": -120.671648,"localJurisdictionType": "County","localJurisdictionName": "Calaveras","dataRefreshedDate": "2026-10-25T06:31:38.6366667","sourceUrl": "https://search.cannabis.ca.gov/","scrapedAt": "2026-10-26T06:53:41.340Z"},{"licenseRecordId": 5059,"licenseNumber": "C10-0000008-LIC","licenseStatus": "Active","licenseTerm": "Annual","licenseType": "Commercial - Retailer","licenseDesignation": "Adult-Use and Medicinal","expirationDate": "2026-11-20T00:00:00","businessLegalName": "Creekside Wellness, Inc.","businessDbaName": null,"premiseCity": "Boulder Creek","premiseCounty": "Santa Cruz","premiseZipCode": "95006","localJurisdictionName": "Santa Cruz"}]
Pricing: how much does a DCC license export cost?
The Actor uses pay-per-event pricing with platform usage included. Apify charges one start event per run (the Actor runs at a fixed 512 MB) and one event per license record delivered.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Cannabis license record | USD 0.001 | USD 0.000975 | USD 0.00095 | USD 0.0008 | USD 0.0008 | USD 0.0008 |
| Actor start (per started GB of allocated memory) | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 |
Worked totals on the FREE tier:
- 100 active licenses (the default): 100 × USD 0.001 + USD 0.005 = USD 0.105
- All 7,529 active licenses: 7,529 × USD 0.001 + USD 0.005 = USD 7.534
Searches with no matches and rejected inputs write no records, so only the start event is billed. For large exports, make sure the run's maximum charge covers the record count you expect.
When should I use it, and when not?
Use it when you need California state cannabis license records in bulk: verifying a list of suppliers or retailers, a nightly check of license expirations, a prospect list of active manufacturers or distributors in one county, or market counts by license type.
Use another Actor when:
- You need dispensary menus, hours, ratings or product listings: Weedmaps Dispensary Scraper or Weedmaps Scraper.
- You need other California professional licenses: California DCA Professional License Scraper.
- You need city business licenses or local permits: LA Business Licenses Scraper or HdL Business License Lookup.
- You need another state's cannabis licenses. This Actor covers California's DCC directory only.
Limits and reliability
- Speed: the 100-record default run took about 8 seconds in the 2026-10-26 cloud run. Larger exports read 1,000 records per request, one request at a time.
- Retries: temporary HTTP 429 and 5xx responses are retried twice with short backoff. An access denial ends the run as
BLOCKEDwith no invented records. - Truncation: when more licenses match than
maxResults,SUMMARY.truncatedistrueand a warning says so.
FAQ
Is this the official DCC license search?
No. It reads the public data behind DCC's Cannabis Unified License Search and is not affiliated with DCC. Use the official site to confirm a license before relying on it.
Does it include expired, revoked or surrendered licenses?
Yes. Choose that status in licenseStatus, or All statuses to include every record.
Does it return owner names, emails and phone numbers?
Only when DCC shows them in its public directory. Many records have them, some do not, and the fields are null when absent.
Which license types can I filter by?
Any type in DCC's current list, such as Commercial - Retailer, Retailer Non-Storefront, Manufacturer - Type 6 or Cultivation - Small Outdoor. Enter the type as DCC writes it; capitalization and spacing do not matter.
Does an active state license mean a business can operate at that address?
Not by itself. Local city or county approval is separate, and the record does not prove local permits. Check with the local jurisdiction named in the record.
Is there a free way to check one license?
Yes. DCC's own license search is free for single lookups. This Actor is for bulk exports, filters and scheduled checks, and it charges per record.
Related Actors
- Weedmaps Dispensary Scraper: dispensary lists, hours and contacts
- Weedmaps Scraper: cannabis dispensaries and products
- California DCA Professional License Scraper: other California license boards
- LA Business Licenses Scraper: City of Los Angeles business licenses
- Canada Open Data Scraper: another public-records tool from the same developer
Legal and compliance
The Actor reads the public DCC license directory without logging in, using a private session or bypassing access controls. Owner names, emails and phone numbers can be personal data: use them lawfully, follow DCC's privacy policy, and follow CAN-SPAM, TCPA and similar rules for outreach. A record is a snapshot of the directory, not a legal opinion on whether a business may operate. This tool is not affiliated with the California Department of Cannabis Control, and this is not legal advice.
Last verified: 2026-10-26