California Cannabis License & Business Leads
Pricing
from $1.00 / 1,000 results
California Cannabis License & Business Leads
Search official California DCC cannabis licenses by status, type, county, dates, contacts, and expiration—ready for lead generation, compliance, and market research.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeSignal Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Build targeted California cannabis business lists from the official Department of Cannabis Control registry—without searching licenses one at a time. Filter by status, license type, county, city, issue date, expiration date, and contact availability, then export clean records to CSV, Excel, JSON, or your CRM.
Every result can include the license number and status, legal and DBA names, public owner and business contacts, premises address, county, parcel number, coordinates, issue date, expiration date, and a direct official source link.
The Actor calls California's public JSON API directly. It does not launch a browser, require an API key, or use a proxy.
Built for actionable lists—not just bulk exports
- Find active retailers, delivery operators, laboratories, distributors, manufacturers, cultivators, event organizers, and microbusinesses.
- Require a published email or phone before paying for and saving a result.
- Identify newly issued licenses with an exact issue-date window.
- Find upcoming renewals with expiration filters and
daysUntilExpiration. - Segment the market by county, city, ZIP code, license category, or designation.
- Preserve direct source links and the DCC data-refresh timestamp for verification.
Why this dataset is useful
- Lead generation: find licensed retailers, delivery operators, laboratories, distributors, manufacturers, cultivators, and microbusinesses with published email and phone contacts.
- New-license monitoring: sort by newest issue date or set an issue-date window to find newly licensed operators.
- Renewal workflows: query an expiration window and use
daysUntilExpirationto identify upcoming renewals. - Compliance and verification: check official status, designation, license type, business owner, and source record.
- Market mapping: analyze operators by county, city, ZIP code, category, and coordinates.
At the time this Actor was built, the registry contained more than 20,000 historical licenses and more than 7,500 active licenses. Counts change as DCC refreshes the registry.
Quick start
The default run returns the first 100 active licenses statewide.
To collect active retailers in Los Angeles County that have both an email and phone:
{"activeOnly": true,"licenseCategories": ["retailer"],"county": "Los Angeles","withEmailOnly": true,"withPhoneOnly": true,"maxItems": 1000}
To find the newest licenses issued in a date window:
{"activeOnly": true,"issuedFrom": "2026-08-01","issuedTo": "2026-08-31","sortBy": "newestIssued","maxItems": 500}
To monitor active licenses expiring in the next quarter, supply the actual start and end dates for the quarter:
{"activeOnly": true,"expiresFrom": "2026-10-01","expiresTo": "2026-12-31","sortBy": "soonestExpiration","maxItems": 5000}
Input
All filters combine.
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | string | empty | Free-text search across license, business, owner, type, and address fields. |
licenseNumber | string | empty | Full or partial DCC license number. |
activeOnly | boolean | true | Restrict results to official status Active. |
licenseStatuses | string[] | [] | Statuses to include when activeOnly is false. Empty means all. |
licenseCategories | string[] | [] | Normalized categories: retailer, delivery, testing-laboratory, microbusiness, event-organizer, distributor, manufacturer, cultivator. |
licenseDesignation | string | empty | Official designation, such as Adult-Use and Medicinal. |
county | string | empty | Premises county. |
city | string | empty | Premises city. |
zipCode | string | empty | Five-digit premises ZIP code. |
issuedFrom, issuedTo | date | empty | Inclusive issue-date window in YYYY-MM-DD format. |
expiresFrom, expiresTo | date | empty | Inclusive expiration-date window in YYYY-MM-DD format. |
withEmailOnly | boolean | false | Require a published business email. |
withPhoneOnly | boolean | false | Require a published business phone. |
sortBy | string | licenseNumberAsc | License number, newest issued, soonest expiration, or business name. |
maxItems | integer | 100 | Maximum records to save, up to 50,000. |
includeRaw | boolean | false | Include the unmodified DCC API object under raw. |
When activeOnly is true, licenseStatuses is intentionally ignored.
Output
One dataset item represents one state license. Important fields include:
- License:
licenseNumber,licenseStatus,licenseCategory,licenseType,licenseDesignation,licenseTerm - Dates:
issueDate,expirationDate,daysUntilExpiration,expiresWithin90Days - Business:
businessName,legalName,dbaName,ownerName,businessStructure,activity - Contact:
email,phone - Location:
streetAddress,city,county,state,zipCode,fullAddress,parcelNumber,latitude,longitude - Traceability:
sourceUrl,sourceApiUrl,sourceDataRefreshedAt,scrapedAt
Source strings such as Data Not Available are returned as null. Dates are normalized to YYYY-MM-DD; emails are lowercased. No missing value is guessed or enriched from a third party.
Run through the Apify API
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~california-cannabis-license-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"activeOnly":true,"licenseCategories":["distributor"],"maxItems":500}'
You can also save an Apify Task and attach a schedule for daily or weekly monitoring. Use licenseNumber or recordId as the stable upsert key in downstream systems.
Data source and limitations
Data comes from the California Cannabis Unified License Search and its public DCC API. Each item links back to the official record.
- This is an independent Actor and is not affiliated with or endorsed by the California Department of Cannabis Control.
- A status reflects the source at its last published refresh. Always open
sourceUrlfor a time-sensitive compliance decision. - DCC may publish inconsistent capitalization or historical records whose dates appear unusual. The Actor preserves substantive source values and does not reinterpret official status.
- Contact and owner fields are public registry data. Users are responsible for lawful outreach, privacy compliance, and honoring opt-out requests.
Local development
Requires Node.js 20 or newer.
npm installnpm testnpm start
Local Apify storage is written to storage/. Set Actor input in storage/key_value_stores/default/INPUT.json or through the Apify CLI.
License
MIT