Cannabis Dispensary Monitor/Scraper avatar

Cannabis Dispensary Monitor/Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Cannabis Dispensary Monitor/Scraper

Cannabis Dispensary Monitor/Scraper

Cannabis dispensary contact data: business name, address, phone, email, Instagram, website, license fields, product categories and public review counts. For marketing agencies, ownership groups, researchers and compliance consultants.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Cannabis Scraper do?

Cannabis Scraper extracts structured cannabis dispensary contact data from public dispensary directories (currently AllBud.com). For every dispensary it produces a clean record with business name, full address, phone number, publicly displayed review counts and ratings, dispensary type (recreational / medical / hybrid), geo-coordinates and amenities - plus email, Instagram handle and website URL whenever they are publicly displayed on the source page.

The actor runs on Apify's infrastructure with proxy support enabled by default, so your own IP is never exposed. Results are available as JSON, CSV, Excel or via API.

Why use Cannabis Scraper?

Built for the cannabis industry's B2B data consumers:

  • Cannabis marketing agencies - build prospect lists of dispensaries by city/state with phone numbers and public review footprints.
  • Dispensary ownership groups - monitor competitors' public ratings, review volume and market presence across cities.
  • Market researchers - export consistent, machine-readable dispensary datasets for analysis.
  • Regulatory compliance consultants - map the retail landscape; license-registry fields are reserved in the output schema for upcoming state-registry adapters.

How to use Cannabis Scraper

  1. Open the actor and go to the Input tab.
  2. Paste one or more AllBud listing URLs into Start URLs - city level (https://www.allbud.com/dispensaries/colorado/denver) or state level (https://www.allbud.com/dispensaries/massachusetts). A single dispensary page URL also works.
  3. Set Max dispensaries to control run size (free preview is capped at 10 records).
  4. Click Start. Records stream into the dataset as they are extracted.

Input

FieldTypeDefaultDescription
startUrlsarray (required)Denver listingAllBud listing or dispensary URLs
maxItemsinteger100Max dispensary records (paid); hard ceiling 1000
maxRequestsPerCrawlinteger300Hard safety cap on total HTTP requests (max 1000)
maxConcurrencyinteger3Parallel requests (max 10)
proxyConfigurationobjectApify proxy ONProxy groups; enabled by default

Output

Example dataset item:

{
"businessName": "Ballpark Holistic Dispensary",
"dispensaryType": "Recreational",
"productCategories": ["Recreational"],
"phone": "303-590-9881",
"email": null,
"instagramHandle": null,
"websiteUrl": null,
"address": {
"street": "2119 Larimer St.",
"city": "Denver",
"state": "CO",
"postalCode": "80205",
"country": "United States"
},
"latitude": 39.75438,
"longitude": -104.9912187,
"licenseNumber": null,
"licenseIssuanceDate": null,
"licenseType": null,
"reviewCount": 2,
"voteCount": 10,
"ratingValue": 4.7,
"amenities": ["ADA accessible", "Accepts debit cards"],
"sourceUrl": "https://www.allbud.com/dispensaries/colorado/denver/ballpark-holistic-dispensary",
"scrapedAt": "2026-08-23T09:30:00.000Z"
}

You can download the dataset in JSON, HTML, CSV or Excel.

Data table

FieldDescription
businessNameDispensary business name
dispensaryTypeRecreational / Medical / Hybrid / Unknown
productCategoriesCategories derivable from the source (type-based)
phonePublicly listed phone number
emailPublicly displayed email (null when not shown)
instagramHandleInstagram handle linked from the source page
websiteUrlOfficial website URL when linked from the source page
addressStreet, city, state, ZIP, country
latitude / longitudeGeo-coordinates from structured data
licenseNumber, licenseIssuanceDate, licenseTypeState registry fields - reserved for registry adapters (null in this version)
reviewCountPublicly displayed written review count
voteCountPublicly displayed rating vote count
ratingValueAverage rating
amenitiese.g. ATM, ADA accessible, accepts debit cards
sourceUrl / scrapedAtProvenance fields

Pricing / Cost estimation

This is a lightweight HTTP-only actor (no browser), so runs are cheap: roughly 1 request per dispensary plus a handful of listing pages. A 100-dispensary run typically finishes well under $0.05 of compute on standard plans. Free-tier users get a capped preview of 10 records per run; paying users can extract up to maxItems (ceiling 1000). Apify proxy usage is included in paid plans.

Tips and Advanced options

  • City-level URLs give cleaner coverage than state-level pages (state pages paginate through mixed areas).
  • Keep maxConcurrency at 3-5 to stay gentle on the source site.
  • Use maxRequestsPerCrawl as your budget guardrail - the crawl stops immediately when either cap is hit.
  • For emails, websites and richer menus, pair this actor's output (name + city + state) with a Google Maps scraper enrichment run.

FAQ, disclaimers and support

  • Where are license issuance dates? State cannabis registries publish them, but not on the directory scraped here. The output schema reserves licenseNumber, licenseIssuanceDate and licenseType for the planned state-registry adapters; they are null in this version.
  • Why are some contact fields null? Email, Instagram and website are only filled when the source page publicly displays them. Many AllBud listings don't include them.
  • Is scraping legal? This actor only accesses publicly available pages and respects rate limits. Do not use the data in violation of any applicable law or the source site's terms.
  • Found a bug or need a custom field? Open an issue on the actor's Issues tab.