DCC License Search — California Cannabis License Lookup avatar

DCC License Search — California Cannabis License Lookup

Pricing

from $0.80 / 1,000 cannabis license records

Go to Apify Store
DCC License Search — California Cannabis License Lookup

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

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

12 hours ago

Last modified

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.

FieldWhat it contains
licenseNumber, licenseRecordIdLicense number such as C10-0000007-LIC and DCC's numeric record ID
licenseStatus, licenseStatusDateActive, Expired, Surrendered, Revoked and so on, with the status date when given
licenseTypeActivity, for example Commercial - Retailer or Cultivation - Small Outdoor
licenseDesignationAdult-Use, Medicinal, Adult-Use and Medicinal or Other
licenseTermAnnual, Provisional or Interim
issueDate, expirationDateDates in DCC's format, for example 2026-11-20T00:00:00
licensingAuthority, licensingAuthorityIdIssuing authority, for example Bureau of Cannabis Control (BCC)
businessLegalName, businessDbaNameLegal entity name and doing-business-as name
businessOwnerName, businessStructureOwner names DCC shows publicly, and the entity type such as Corporation
businessEmail, businessPhonePublic business contact details when DCC shows them
activity, parcelNumberExtra activity classification and parcel number when supplied
premiseStreetAddress, premiseCity, premiseState, premiseZipCode, premiseCountyAddress of the licensed premises
premiseLatitude, premiseLongitudeCoordinates supplied by DCC
localJurisdictionType, localJurisdictionNameLocal authority, for example County / Calaveras
dataRefreshedDate, sourceUrl, scrapedAtDCC 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
}
InputDefaultNotes
searchQueryemptyFree text matched the way the DCC portal matches it
licenseStatusActiveOne status, or All statuses for inactive records too
licenseTypeanyOne official DCC license type; capitalization and extra spaces are ignored
licenseDesignationanyAdult-Use, Medicinal, Adult-Use and Medicinal or Other
licenseTermanyAnnual, Provisional or Interim
premiseCountyanyCounty of the licensed premises, for example Alameda or Los Angeles
maxResults1001–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 os
from apify_client import ApifyClient
client = 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.

EventFREEBRONZESILVERGOLDPLATINUMDIAMOND
Cannabis license recordUSD 0.001USD 0.000975USD 0.00095USD 0.0008USD 0.0008USD 0.0008
Actor start (per started GB of allocated memory)USD 0.005USD 0.005USD 0.005USD 0.005USD 0.005USD 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:

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 BLOCKED with no invented records.
  • Truncation: when more licenses match than maxResults, SUMMARY.truncated is true and a warning says so.

FAQ

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.

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