Cannabis License Verifier — 10 States, No Login, $20/1k avatar

Cannabis License Verifier — 10 States, No Login, $20/1k

Pricing

from $20.00 / 1,000 verifications

Go to Apify Store
Cannabis License Verifier — 10 States, No Login, $20/1k

Cannabis License Verifier — 10 States, No Login, $20/1k

Verify a list of cannabis licensees by license number or business name against official regulator data (CA, NY, MA, WA, CO, NV, MD, ME, CT, FL) and get normalised status, expiry, type and address back per query. No login. MCP-ready for AI agents. $20 per 1,000 verifications.

Pricing

from $20.00 / 1,000 verifications

Rating

0.0

(0)

Developer

Khrystyna Skotte

Khrystyna Skotte

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Cannabis License Verifier — batch check license status in 12 US states

Give it a list of cannabis licensees (license numbers and/or business names) and get back, for each one, whether it exists in the official state regulator data, its normalised status (active, inactive, expired, suspended, revoked, pending), the raw regulator status, license type, issue/expiry dates and premises address. Built for compliance, KYC/onboarding, banking, insurance and supply-chain teams that need to re-verify a vendor or customer list — not download a whole state.

No browser, no proxies, no login: every source is a public regulator API, open-data feed or published spreadsheet, fetched live on each run.

Supported states

StateSource (fetched live)CoverageStatus detailFreshness
CADept. of Cannabis Control search API (search.cannabis.ca.gov)All ~21k licenses incl. surrendered/expired/revokedFull raw status + status dateRefreshed daily by DCC
NYOffice of Cannabis Management on data.ny.gov~3k current OCM licensesActive / Inactive / In-Process / Under reviewWeekly
MACannabis Control Commission open-data extract~950 approved licensesActive / Payment Pending + suspension/revocation datesWeekly
WALCB retailer spreadsheet + producer/processor renewals on data.wa.gov~1.4k retailers, producers, processorsACTIVE / CLOSED / EXPIRED / TITLE CERTIFICATEWeekly (LCB)
COMED licensed-facility lists (all 9 facility types)~600 current facilitiesCurrent licensees only (Licensed) + expiry dateMonthly
NVCannabis Compliance Board establishment list~640 active, conditional, surrendered/revokedActive / Conditional / Surrendered / RevokedMonthly
MDMaryland Cannabis Administration data-dashboard workbook~210 growers, processors, dispensaries, ancillaryCurrent licensees only (Licensed) + start/expiryMonthly
MEOffice of Cannabis Policy adult-use workbook + medical establishments & caregivers~1.9kActive / Conditional / PendingMonthly
CTDept. of Consumer Protection establishments on data.ct.gov~115Current licensees only (Licensed)Weekly
FLOMMU licensed MMTC table~50 MMTC license holdersInitial Licensure / Dispensing AuthorizationAs published
MICannabis Regulatory Agency Accela portal, full "Download results" CSV export (adult-use + medical facility modules)~10k records incl. void/closed/suspended/revokedActive / Active - Late Renewal / License Void / Closed / Suspended / Revoked + disciplinary-action flagLive (exported from the CRA portal on every run)
OHDivision of Cannabis Control license lists (dispensary, cultivator, processor, testing-lab workbooks)~320 current dual-use licensesCurrent licensees only (Licensed) + issue/expiry; legacy MMCP numbers also matchAs published (list dated in the file, updated roughly weekly)

States where the list contains only current licensees (CO, MD, CT, OH) return status: "active" with a statusRaw that says so; a license that has lapsed simply won't match there (matched: false).

Not supported (and why): OR (OLCC moved its license table into a Socrata story with no public tabular feed as of Sep 2026), MO (Tableau only), AZ (regulator PDF last updated 2021), IL (PDF updated Jan 2026, layout too unstable for verification), NM (feed has no license numbers or status), MN / VT / NJ (browser-only portals), RI (blocks cloud requests).

Michigan rows carry the CRA record number (AU-R-…, GR-C-…, PC-…), the Accela status verbatim and a ; disciplinary action on file suffix in statusRaw when the CRA has public disciplinary documents for that license; the export has no issue date. Ohio rows use the dual-use license number (CCD…, CCC…, CCP…, CCL…); a query with the legacy medical-program number (MMCP…) still matches the same record.

Input

{
"queries": [
{ "state": "CA", "licenseNumber": "C10-0000651-LIC" },
{ "state": "ME", "businessName": "The Cannabis Cabin LLC" },
{ "state": "NY", "businessName": "7 Leaf Clover" },
{ "state": "WA", "licenseNumber": "414884" },
{ "state": "MI", "licenseNumber": "AU-R-001610" },
{ "state": "OH", "businessName": "Ancient Roots LLC" },
{ "businessName": "Curaleaf" }
],
"states": [],
"matchMode": "fuzzy",
"maxResultsPerQuery": 3,
"maxItems": 10
}
FieldDefaultNotes
queries3 sample lookupsEach object: state (2-letter), licenseNumber and/or businessName. Omit state to search every supported state. If both are given the license number is used.
states[] (all)Only process queries for these states.
matchModefuzzyfuzzy ignores case, punctuation and entity suffixes (LLC, Inc, Corp…) and tolerates small typos; exact requires the normalised name / license number to match exactly.
maxResultsPerQuery3Cap on candidate rows per query (multi-location operators often hold several licenses under one name).
maxItems10Cap on total result rows.

License numbers are matched on alphanumerics only, so c10-0000651, C10 0000651 and C10-0000651-LIC all resolve to the same California license (confidence 0.95 when a state suffix is missing, 1.0 on exact).

Output

One row per match, or one row with matched: false when nothing in the state's data matches the query. An unmatched result is a valid verification outcome (the licensee is not on the regulator's list) and is charged like a match. Rows whose note reports an unsupported state or an unreachable source are not charged.

{
"query": { "state": "CA", "licenseNumber": "C10-0000651-LIC" },
"state": "CA",
"matched": true,
"matchConfidence": 1,
"matchedOn": "licenseNumber",
"licenseNumber": "C10-0000651-LIC",
"businessName": "Psgc, Inc.",
"dbaName": "Atomic Budz",
"licenseType": "Commercial - Retailer",
"status": "active",
"statusRaw": "Active",
"issueDate": "2019-11-08",
"expirationDate": "2026-11-07",
"address": "36063 Cathedral Canyon Dr",
"city": "Cathedral CTY",
"zip": "92234",
"county": "Riverside",
"sourceUrl": "https://search.cannabis.ca.gov/",
"note": null,
"checkedAt": "2026-09-28T18:58:01.354Z"
}

matchConfidence is 0–1: 1 = exact normalised match, 0.95 = license number without state suffix, 0.6–0.95 = fuzzy name match (Dice similarity / whole-word containment). matchedOn tells you whether the hit was on licenseNumber, businessName or dbaName.

Status normalisation

statusRaw regulator values mapped here
activeActive, ACTIVE (ISSUED), Active (renewal on file), Open, Licensed, Approved, Limited Operations, Initial Licensure, Dispensing Authorization
pendingPending, Conditional, Pending Conditional, In-Process, Payment Pending, PCA / Amendment Under Review, Provisional
inactiveInactive, Surrendered, Canceled, CLOSED (PERMANENT/TEMPORARY), Not Operating, Former Title Certificate, Withdrawn, Denied
expiredExpired
suspendedSuspended
revokedRevoked
unknownanything else — statusRaw always keeps the original text

Pricing

Pay-per-event: a small start fee plus one event per verification row (matched or unmatched). A 500-line vendor list checked across the supported states costs a few dollars — versus a per-state data dump you would still have to join yourself.

Tips

  • Sources are downloaded once per run and cached in memory, so batches of hundreds of queries are fast; California is queried per lookup through the DCC search API and needs no bulk download.
  • Use matchMode: "exact" for automated re-checks of a list you already resolved once (store the returned licenseNumber and verify by number from then on).
  • Query without state to find out where an operator is licensed — each state hit comes back as its own row.