CA Cannabis Licenses - DCC Commercial & Cultivation Register
Pricing
from $0.03 / 1,000 license records
CA Cannabis Licenses - DCC Commercial & Cultivation Register
California cannabis license register (DCC, public data, ~20.9k licenses): active / expired / revoked status, storefront (BCC), cultivation (CCL) & manufacturing (MCSB) licenses. Search by license number, business, county, status, license type.
Pricing
from $0.03 / 1,000 license records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
CA Cannabis Licenses - California DCC Commercial, Cultivation & Manufacturing Register
The California Dept. of Cannabis Control (DCC) publishes the full state cannabis license register as open data - every license ever issued under the three authorities that merged into DCC in 2021, refreshed nightly and served directly from the state API. This actor turns that register into a charged-per-record, searchable lookup.
Built for: cannabis-industry due diligence - verifying an operator's license status, screening suppliers / business partners / acquisition targets, storefront & delivery footprint research, cultivation-license research by county, and state-level market sizing.
What it covers
~20,877 licenses across all three licensing authorities:
| Authority | Code | Covers | Licenses |
|---|---|---|---|
| Bureau of Cannabis Control | BCC | commercial storefronts, delivery, distributors, microbusinesses, testing labs | 6,037 |
| CalCannabis Cultivation | CCL | cultivation (outdoor / indoor / mixed-light / nursery / processor...) | 13,282 |
| Manufactured Cannabis Safety Branch | MCSB | manufacturers (Types 6, 7, N, P, S), testing labs | 1,558 |
Status mix (live): Active 7,600 / Expired 9,010 / Surrendered 2,124 / Canceled 1,589 / Revoked 325 / Limited Operations 183 / Suspended 44. Active by category: Cultivation 4,429 / Commercial 2,729 / Manufacturer 442.
Each record is a full license profile: license number, status + status date, term (Annual / Provisional / Interim), exact license type + category, designation (Adult-Use / Medicinal / both), issue + expiration dates, business legal name / DBA / owner(s) / structure, premise county (street / city / ZIP / coordinates where the state publishes them), and business email + phone (~99-100% populated). Every license carries the source's nightly refresh stamp.
Location privacy is per authority: the state withholds street address and coordinates for cultivation (CCL) and manufacturing (MCSB) licenses - those rows carry the premise county only (still with full business email + phone + owner). Storefront (BCC) rows carry street address and coordinates on roughly a third of licenses. Filtering by county works across the whole register; filtering by city / ZIP / coordinates only returns storefront licenses that carry them.
Typical questions
- "Is this dispensary's license active right now?" (license-number lookup, any era / status.)
- "Show the cultivation licenses of every grower in Humboldt County - active and history."
- "How many Active retail storefronts are there in Los Angeles County?"
- "Find a manufacturer whose license was revoked or surrendered."
- "What's the Adult-Use vs. Medicinal split, by county?"
- "Screen this business name / owner across all three authorities."
Inputs
| Input | What it does |
|---|---|
licenseNumber | exact license number -> a single license, any era / status (e.g. C10-0000001-LIC, CCL18-0000004) |
keyword | business-name substring (legal name + DBA + owner) |
status | exact set: Active / Expired / Surrendered / Canceled / Revoked / Limited Operations / Suspended (blank = all) |
authority | CCL / BCC / MCSB |
typeCategory | Cultivation / Commercial / Manufacturer (mirrors authority) |
designation | Adult-Use / Medicinal / Adult-Use and Medicinal |
term | Annual / Provisional / Interim |
county / city / zipCode | premise location filters (county covers all licenses; city/ZIP only hit storefront rows that publish them) |
aggregate / groupBy | one summary row per group with a count - status / authority / typeCategory / designation / term / county |
maxResults | cap records (default 50) |
Default run = the first 50 licenses in the register (page-1 order - the storefront block, not sorted by recency; no status default, so precise lookups of Expired / Revoked / older licenses are never shadowed). Fast enough for the daily auto-test.
The register holds ~20,900 licenses, so a whole-register row dump is not what this actor is for: runs are capped at $5, which stops the output at ~5,000 records. Use maxResults to bound what you pull, or aggregate for counts over the register without downloading rows.
Example inputs
Is this license active right now? - an exact license number returns that one license, any era or status.
{ "licenseNumber": "C10-0000001-LIC" }
Every cultivation license in Humboldt County - county covers the whole register, including the cultivation rows that publish location only down to county.
{ "county": "Humboldt", "typeCategory": "Cultivation", "maxResults": 10 }
Active storefronts in Los Angeles County - authority=BCC is the commercial storefront / delivery block.
{ "county": "Los Angeles", "authority": "BCC", "status": "Active", "maxResults": 10 }
Screen a brand across all three authorities - keyword matches legal name, DBA and owner name.
{ "keyword": "Atomic Budz", "maxResults": 5 }
Low cost
From $0.00005 per record, down to $0.00003 at Gold - billed only for the rows you use, and each record is metered individually.
The state's license API looks filterable but silently ignores every filter - status, authority and even the page-size arguments are no-ops, so the only honest way to read it is a full paginated snapshot (84 pages) pulled fresh every run and filtered locally. That snapshot unifies California's three legacy licensing regimes (the storefront bureau BCC, the cultivation branch CCL, the manufacturing branch MCSB) into one schema, with one junk status row normalized out and cultivation / manufacturing rows' withheld street addresses handled explicitly. Every pull is integrity-checked against the register's known shape (total count band, Active-count band, per-authority floors), so a degraded source fails loudly instead of returning bad data.
Example output
One license - licenseNumber=C10-0000001-LIC returns that license's full profile:
{"platform": "ca-cannabis","source": "dcc-licenses","state": "CA","authorityId": "BCC","authority": "Bureau of Cannabis Control (BCC)","licenseNumber": "C10-0000001-LIC","licenseStatus": "Surrendered","licenseStatusDate": "","licenseTerm": "Annual","licenseType": "Commercial - Retailer","licenseTypeCategory": "Commercial","licenseDesignation": "Adult-Use and Medicinal","issueDate": "2018-11-02","expirationDate": "2020-11-02","businessLegalName": "Psgc, Inc.","businessDbaName": "Atomic Budz","businessOwnerName": "John Chaisson, Robert Wolter","businessStructure": "Corporation","activity": "","premiseStreetAddress": "68415 Perez Rd, Suite A","premiseCity": "Cathedral CTY","premiseCounty": "Riverside","premiseState": "CA","premiseZipCode": "92234","businessEmail": "Jeff@atomicbudz.Com","businessPhone": "(760) 322-4481","parcelNumber": "","latitude": "33.784464","longitude": "-116.468354","refreshed": "2026-09-24T15:45:04.4266667","mode": "record","groupKey": "","groupCount": ""}
aggregate=true, groupBy=status - the register's status mix:
Expired 9,010Active 7,600Surrendered 2,124Canceled 1,589Revoked 325Limited Operations 183Suspended 44
Source
- DCC Cannabis License Search - official public license search over the same register.
- License data is DCC's own published register; status reflects the state's record as of the nightly refresh.