New York Cannabis Licenses Scraper: Dispensaries & Growers avatar

New York Cannabis Licenses Scraper: Dispensaries & Growers

Pricing

from $6.15 / 1,000 results

Go to Apify Store
New York Cannabis Licenses Scraper: Dispensaries & Growers

New York Cannabis Licenses Scraper: Dispensaries & Growers

Scrape New York State licensed cannabis businesses: adult-use retail dispensaries, cultivators, processors, distributors and microbusinesses. Extract entity name, trade name (DBA), license type and number, status, full address, county, website and licensed activities. Export to JSON, CSV or Excel.

Pricing

from $6.15 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

20 hours ago

Last modified

Share

New York Cannabis Licenses Scraper: Dispensaries & Growers

New York Cannabis Licenses Scraper: Dispensaries & Growers

Here is one real result, with every field the actor returns:

{
"businessName": "FLUSHING CANNABIS CO",
"entityName": "10613 Northern LLC",
"dba": "FLUSHING CANNABIS CO",
"licenseType": "Adult-Use Retail Dispensary License",
"licenseTypeCode": "OCMRETL",
"licenseNumber": "OCM-RETL-25-000303",
"licenseStatus": "Active",
"licenseStatusCode": "LICACT",
"applicationNumber": "OCMRETL-2023-001318",
"operationalStatus": "Active",
"businessPurpose": "Adult-Use Retail Sales",
"tierType": null,
"processorType": null,
"address": "136-15 Roosevelt Ave, Flushing, NY 11354",
"addressLine1": "136-15 Roosevelt Ave",
"addressLine2": null,
"city": "Flushing",
"state": "NY",
"zip": "11354",
"county": "Queens",
"region": "Queens",
"businessWebsite": "flushingcannabis.com",
"socialEquityCategory": "Minority-Owned Business, Women-Owned Business",
"seeCategory": "Minority-Owned Business, Women-Owned Business",
"primaryContactName": "Avie Li",
"hoursOfOperation": "Sun: 11:00 AM - 09:00 PM; Mon: 10:00 AM - 10:00 PM; Tues: 10:00 AM - 10:00 PM; Wed: 10:00 AM - 10:00 PM; Thurs: 10:00 AM - 10:00 PM; Fri: 10:00 AM - 11:00 PM; Sat: 10:00 AM - 11:00 PM",
"issuedDate": "2025-02-25",
"effectiveDate": "2025-02-25",
"expirationDate": "2027-02-25",
"retailDateOpenedToPublic": "2026-05-15",
"cultivationActivities": [],
"processingActivities": [],
"retailActivities": ["Sales with Delivery"],
"locationId": "03F37735-6B0A-4A22-B8F0-7EED69A0EC04",
"observedAt": "2026-08-10T14:17:40.682Z",
"error": null
}

The most complete New York cannabis license scraper available. It returns every field the New York State Office of Cannabis Management license dataset exposes for each business, including the legal entity, license type and status, address and county, primary contact, hours, social-equity category and activity lists, and gives you type, status and location filters plus free-text search to target exactly the businesses you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor queries New York State's public cannabis license dataset (published by the Office of Cannabis Management), applies the filters you pass as input, paginates through the matching businesses, and writes one normalized record per license to the run's dataset. You can search free text across the whole record or filter by license type, status, county and city.

Each record carries the business and legal entity names, the DBA, the license type/status with their codes, the application number, the full and split address with county and region, the business website, the primary contact, hours of operation, social-equity category, key dates and the cultivation/processing/retail activity lists. Missing source values are returned as null or empty arrays, never invented.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 licensed cannabis businesses across New York State.

{
"maxLicenses": 10
}

Add filters to narrow: set licenseType to Adult-Use Retail Dispensary License, licenseStatus to Active, or county to Kings. Use query for a free-text search across name, address, city and county. Every field is optional.

Input reference

FieldTypeRequiredDefaultDescription
maxLicensesintegerno10Maximum license records to collect. Leave empty to collect every match.
querystringno(empty)Free-text search across business name, trade name (DBA), address, city or county, for example green, brooklyn, farm.
licenseTypeenumno(any)Restrict to one license type (retail dispensary, cultivator, processor, distributor, microbusiness, registered organization, and more).
licenseStatusenumno(any)Filter by status: Active, In-Process, Amendment Under Review, PCA Under Review, Inactive.
countystringno(empty)Match a New York county, for example Kings, Queens, New York, Erie, Monroe.
citystringno(empty)Match a city or town, for example Brooklyn, Buffalo, Albany.
appTokenstringno(empty)Optional free Socrata app token to raise the rate limit for very large pulls. The dataset is keyless without it.
enrichContactsbooleannofalsePaid add-on. For each business without an email, attempt to find a public business contact email and person. Billed per attempt, plus an extra charge only when an email is found.
enrichContactsMaxintegerno50Cap how many results the add-on tries to enrich. Free Apify accounts are capped at 3.

Filters combine with logical AND.

Output reference

One dataset item per license. Types: string, array, or null when the source value is absent.

FieldTypeDescription
businessNamestringPublic business name.
entityNamestringLegal entity name.
dbastringTrade name / doing-business-as, or null.
licenseTypestringFull license type description.
licenseTypeCodestringLicense type code, for example OCMRETL.
licenseNumberstringLicense number (unique per license), for example OCM-RETL-25-000303.
licenseStatusstringLicense status, for example Active.
licenseStatusCodestringLicense status code, for example LICACT.
applicationNumberstringApplication number.
operationalStatusstringOperational status, for example Active, Non-Operational.
businessPurposestringBusiness purpose, for example Adult-Use Retail Sales.
tierTypestringCultivation/processing tier, or null.
processorTypestringProcessor type, or null.
addressstringFull single-line address.
addressLine1 / addressLine2stringSplit street address lines.
city / state / zipstringCity, state and ZIP.
countystringNew York county.
regionstringRegion label.
businessWebsitestringBusiness website, or null.
socialEquityCategorystringSocial-equity categories, or null.
seeCategorystringSocial and economic equity category, or null.
primaryContactNamestringPrimary contact person name, or null.
hoursOfOperationstringWeekly hours of operation, or null.
issuedDatestringDate the license was issued (YYYY-MM-DD).
effectiveDatestringLicense effective date (YYYY-MM-DD).
expirationDatestringLicense expiration date (YYYY-MM-DD).
retailDateOpenedToPublicstringDate the retail location opened to the public, or null.
cultivationActivitiesstring[]Authorized cultivation activities. Empty array when none.
processingActivitiesstring[]Authorized processing activities. Empty array when none.
retailActivitiesstring[]Authorized retail activities, for example Sales with Delivery.
locationIdstringSource location identifier.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.
enrichedEmailstringAdd-on only. Public business contact email found, or null.
enrichedContactNamestringAdd-on only. Contact person name, or null.
enrichedJobTitlestringAdd-on only. Contact person job title, or null.
enrichedEmailStatusstringAdd-on only. guessed, not_found, or error.
enrichedSourcestringAdd-on only. Source of the found contact, or null.
enrichedConfidencestringAdd-on only. Confidence of the found contact, or null.

The enriched* fields are present only when the paid enrichContacts add-on is enabled.

Example output record

Real record from a live run (input {"maxLicenses": 10}). This one is a newly issued, non-operational dispensary with sparser detail:

{
"businessName": "1027 6TH AVE 1 INC.",
"entityName": "1027 6TH AVE 1 INC.",
"dba": null,
"licenseType": "Adult-Use Retail Dispensary License",
"licenseTypeCode": "OCMRETL",
"licenseNumber": "OCM-RETL-26-000515",
"licenseStatus": "Active",
"licenseStatusCode": "LICACT",
"applicationNumber": "OCMRETL-2023-001563",
"operationalStatus": "Non-Operational",
"businessPurpose": "Adult-Use Retail Sales",
"address": "1271 Broadway, Brooklyn, NY 11221",
"addressLine1": "1271 Broadway",
"addressLine2": null,
"city": "Brooklyn",
"state": "NY",
"zip": "11221",
"county": "Kings",
"region": "Brooklyn",
"businessWebsite": null,
"socialEquityCategory": null,
"primaryContactName": "Oudey Matari",
"hoursOfOperation": null,
"issuedDate": "2026-07-30",
"effectiveDate": "2026-07-30",
"expirationDate": "2028-07-30",
"retailDateOpenedToPublic": null,
"cultivationActivities": [],
"processingActivities": [],
"retailActivities": ["Sales with Delivery"],
"locationId": "E51F6C6F-662A-4804-9932-CF7304BF510E",
"observedAt": "2026-08-10T14:17:40.682Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ny-cannabis-licenses-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"licenseType":"Adult-Use Retail Dispensary License","licenseStatus":"Active","maxLicenses":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ny-cannabis-licenses-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"county":"Kings","maxLicenses":100}'

Apify CLI:

apify call scrapers_lat/ny-cannabis-licenses-scraper \
--input '{"query":"brooklyn"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per license record returned (result event). See the pricing tab for the current per-result price.
  • Contact enrichment add-on. The optional enrichContacts add-on bills per attempt, plus an extra charge only when an email is found.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxLicenses.

FAQ and troubleshooting

A run returned 0 records. Why? The filter combination matched nothing. Loosen filters (remove county or licenseType) or clear query. Zero-result runs are not charged.

How do I get only dispensaries? Set licenseType to Adult-Use Retail Dispensary License (or the conditional variant). Combine with licenseStatus set to Active for operating stores.

How do I search a neighborhood or name? Use query for free text across the record, or set city and county for a precise location match.

Do I need the Socrata app token? No. The dataset is keyless. A free appToken only raises the rate limit for very large pulls.

Why are some fields null? Not every business fills every field (for example new licensees may lack a website or hours). Missing source values are returned as null, never invented.

Is this an official New York State tool? No. This actor is independent and has no affiliation with the New York State Office of Cannabis Management. It reads only data that is publicly available through the state's open data portal.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the New York State Office of Cannabis Management. Accesses only publicly available data from the state's open data portal.