This map combines three official, regulator-maintained license rolls into a single view. Every dot is a current license held by a business at a specific address in the five boroughs. Nothing on the map is sourced from third-party directories, scraped review sites, or anonymous tips.
What is included
| Category | Source | Filter | Geocoding |
|---|---|---|---|
| Liquor stores | New York State Liquor Authority — Current Liquor Authority Active Licenses on the Open Data NY portal. | description IN ('Liquor Store', 'Wine Store') and the premises county is one of the five boroughs. These are off-premises (package store) licenses only — bars, restaurants, and grocery beer licenses are not included. Under New York law, off-premises liquor stores cannot legally sell beer. |
Latitude and longitude come from the dataset's built-in georeference field. |
| Beer (groceries, delis, drug stores) | New York State Liquor Authority — same dataset as liquor stores. | description IN ('Grocery Store', 'Drug Store') and the premises county is one of the five boroughs. These are off-premises beer licenses, the universe of bodegas, delis, supermarkets, and drug stores authorized to sell beer (and, with a separate endorsement, wine). This category is hidden by default on the map because it is the largest single layer. |
Built-in georeference field. |
| Legal cannabis dispensaries | New York State Office of Cannabis Management — Current OCM Licenses. | Active adult-use retail dispensary licenses, conditional adult-use retail dispensary licenses, registered organization dispensaries, and adult-use microbusinesses with retail activity authorized. License status must be Active and the county must be one of the five boroughs. | OCM does not publish coordinates. Addresses are geocoded with the New York City Department of City Planning's GeoSearch API. Records that fail to geocode are kept in the downloadable CSV but excluded from the map. |
| Tobacco and e-cigarette retailers | New York City Department of Consumer and Worker Protection — Legally Operating Businesses. | business_category IN ('Tobacco Retail Dealer', 'Electronic Cigarette Dealer') and license status is Active or Ready for Renewal. Licenses are deduplicated by address: a single storefront that holds both a tobacco and an e-cigarette license appears as one dot with subcategory "Tobacco + e-cigarette". |
Latitude and longitude come from the dataset's built-in coordinate fields. |
Refresh schedule
The data is rebuilt automatically once a week from the original sources. The footer of the map shows the date of the most recent refresh. The full build script is in this project's GitHub repository.
What is not included
- Bars and restaurants. On-premises liquor licenses (restaurants, additional bars, clubs, hotels) are excluded. The goal here is retail-takeaway vice, not nightlife.
- Grocery beer-and-wine sales. Bodegas and grocery stores can sell beer with a different SLA license class; those are not retail liquor stores and are not included.
- Unlicensed cannabis or smoke shops. The OCM dataset contains only legal, licensed dispensaries. Unlicensed sellers — the bulk of New York City's "smoke shop" landscape since 2022 — are by definition not in any regulator's database. The New York City Sheriff's Office tracks shops shut down under Operation Padlock to Protect, but those records are released as press notices rather than as a clean dataset, so they are not currently incorporated here.
- Gambling, adult entertainment, and other vice categories. Out of scope for this version.
Limitations
- A current license is not a guarantee that the business is open. Licensees can close, move, or transfer ownership without immediately notifying the regulator. Expect a real-world error rate of several percent on any given day.
- Co-located businesses. A single storefront can hold multiple licenses (for example, a bodega may be both a tobacco dealer and a beer-licensed grocery). On the map these appear as overlapping dots in different categories.
- Geocoding errors. Most addresses geocode cleanly, but a small number resolve to the centroid of a long block, an incorrect side of a street, or fail outright. The downloadable CSV preserves the original address as reported by the regulator.
- Cannabis license status churn. The OCM dataset changes weekly as new licenses are issued, surrendered, or moved between conditional and full status. The map shows whatever status was current at the time of the last refresh.
- Tobacco license deduplication. Roughly a third of New York City's tobacco-licensed storefronts also hold a separate Electronic Cigarette Dealer license. Without dedup, those addresses would appear as two stacked dots and double-count in the legend. The build script collapses co-located licenses (same BBL, or same building number, street, and ZIP) into a single feature labeled "Tobacco + e-cigarette." The license-count field on each feature records how many underlying licenses were merged.
- Liquor and beer at the same address. New York's liquor law forbids holding an off-premises liquor license and an off-premises beer license at the same physical premises. About two dozen addresses in the data nonetheless appear in both categories — a small fraction of one percent. These are almost always multi-tenant buildings (corner storefronts, malls, mixed-use buildings) where two distinct businesses share an address string. We flag them honestly rather than try to silently merge them.
Reproducing this
The full build pipeline is a single Python script with no dependencies beyond the standard library. It pulls each source via Socrata's open API, filters and normalizes the records, geocodes the cannabis addresses against GeoSearch with a local cache, and writes a merged GeoJSON, a CSV, and this metadata file. See scripts/build_data.py in the GitHub repository.
Downloads
- locations.geojson — every mapped point
- locations.csv — every record, including any that failed to geocode
- methodology.json — refresh date, row counts, and source metadata