Weedmaps Dispensary Scraper — Locations, Hours & Menus avatar

Weedmaps Dispensary Scraper — Locations, Hours & Menus

Pricing

from $0.80 / 1,000 dispensary results

Go to Apify Store
Weedmaps Dispensary Scraper — Locations, Hours & Menus

Weedmaps Dispensary Scraper — Locations, Hours & Menus

Extract cannabis dispensaries, storefronts, and deliveries from Weedmaps with locations, addresses, operating hours, phone numbers, ratings, reviews, license details, and menus.

Pricing

from $0.80 / 1,000 dispensary results

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

11 days ago

Last modified

Share

Weedmaps Dispensary Scraper

Extract structured cannabis dispensary and delivery data from Weedmaps without logins or cookies. Retrieve comprehensive store profiles, street addresses, phone numbers, contact emails, operating hours, geolocation coordinates, licenses, customer ratings, review counts, active deals, and menu items across the United States and Canada.

Free users: verified Apify Free plan users receive up to 5 delivered records per run. Upgrade to an Apify paid tier for higher volume.


Features

  • Storefront & Delivery Coverage: Scrape both physical dispensary storefronts and delivery services.
  • Accurate Contact Leads: Extract business phone numbers, contact emails, and direct website URLs.
  • Location & Geocoding: Full street address, city, state, postal code, and precise GPS latitude/longitude coordinates.
  • Compliance & Licensing: Adult-use (recreational), medical, and hybrid license classifications.
  • Hours & Service Options: Today's operating hours, current open status, curbside pickup availability, and accepted payment types (cash, debit, cashless).
  • Ratings & Reviews: Customer star rating, total review count, and Weedmaps ranking metrics.
  • Deals & Menus: Active promotional deals, menu item counts, and optional detailed menu item extraction.
  • Flexible Search Modes: Provide Weedmaps city/region URLs, direct dispensary profile URLs, or search by location query (e.g. Los Angeles, CA or Denver, CO).

Use Cases

  • Cannabis Market Intelligence: Map local dispensary density, market saturation, and competitor footprint across legal states.
  • B2B Lead Generation: Build outreach lists for ancillary cannabis software, packaging, equipment, and consulting vendors.
  • Brand Distribution Audits: Monitor retailer networks and verify where specific cannabis brands are stocked.
  • Regulatory & Compliance Tracking: Track licensed cannabis dispensaries, license numbers, and operating jurisdictions.
  • Retail Price & Promotion Monitoring: Analyze active promotional deals, discounts, and regional menu pricing.

Input Parameters

FieldTypeDescriptionDefault
startUrlsArrayWeedmaps URLs to crawl. Supports region listing pages (e.g. /dispensaries/in/united-states/california/los-angeles) or individual dispensary pages (e.g. /dispensaries/stiiizy).[{"url": "https://weedmaps.com/dispensaries/in/united-states/california/los-angeles"}]
locationStringCity, region, or state to search (e.g. Denver, CO, Los Angeles, CA, Detroit). Used when startUrls is empty."Los Angeles, CA"
maxResultsIntegerMaximum dispensary records to deliver (1 - 5,000). Free plan is capped at 5 results.20
maxPagesPerLocationIntegerMaximum pagination pages to crawl per region URL (1 - 50). Each page has ~30 dispensaries.5
scrapeMenuItemsBooleanWhether to fetch menu item details for each dispensary.false
maxMenuItemsPerDispensaryIntegerMax menu items to extract per dispensary when scrapeMenuItems is enabled (1 - 200).20
proxyConfigurationObjectProxy configuration. US residential proxies are used by default for reliability.{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }

Output Example

Each dispensary result delivered to the default dataset contains clean, normalized fields:

{
"id": 65841,
"name": "STIIIZY Downtown LA",
"slug": "stiiizy",
"url": "https://weedmaps.com/dispensaries/stiiizy",
"type": "dispensary",
"wmid": 770072967,
"address": "728 E Commercial St",
"city": "Los Angeles",
"state": "California",
"zipCode": "90012",
"country": "United States",
"latitude": 34.052206,
"longitude": -118.232052,
"phoneNumber": "(323) 929-4201",
"email": "retail.dtla@stiiizy.com",
"website": null,
"rating": 4.8,
"reviewsCount": 8398,
"ranking": 4.75,
"licenseType": "hybrid",
"retailerServices": [
"storefront",
"pickup"
],
"hasCurbsidePickup": false,
"openNow": true,
"todaysHours": "6:00am - 9:45pm",
"minAge": 21,
"menuItemsCount": 2067,
"verifiedMenuItemsCount": 1827,
"hasSaleItems": true,
"hasFeaturedDeal": true,
"topDeals": [
{
"id": 1398219,
"title": "30% off First Time Customers",
"brandName": "STIIIZY",
"slug": "stiiizy-downtown-la-30-off-first-time-customers"
}
],
"topDealsCount": 4,
"avatarImageUrl": "https://images.weedmaps.com/dispensaries/000/065/841/avatar/1783453209-46.png",
"socialEquity": false,
"acceptsCreditCards": false,
"acceptsDebitCards": true,
"acceptsCashlessPayments": true,
"introBody": "ALL PRICES ARE OUT THE DOOR *Tax included* We accept Debit Cards & Cash Payments",
"scrapedAt": "2026-09-30T12:00:00.000Z"
}

Pricing (Pay Per Event)

This Actor charges under transparent Pay per event pricing with no hidden compute surcharges. Platform usage pass-through is disabled (isPPEPlatformUsagePaidByUser = false).

Event Pricing Tiers

Event NameEvent TitleFREE TierBRONZE Tier (2.5% off)SILVER Tier (5% off)GOLD Tier (20% off)
apify-actor-startActor start$0.005$0.005$0.005$0.005
apify-default-dataset-itemDispensary Result$0.001$0.000975$0.00095$0.0008

Representative Run Costs

  • 20 Dispensary Records (FREE list price): $0.005 (start) + (20 × $0.001) = $0.025
  • 100 Dispensary Records (FREE list price): $0.005 (start) + (100 × $0.001) = $0.105
  • 1,000 Dispensary Records (GOLD tier): $0.005 (start) + (1,000 × $0.0008) = $0.805

How to Run

Via Apify Console

  1. Open the Actor on Apify.
  2. Select your desired search location or enter start URLs.
  3. Click Start to execute the run.
  4. Export your results in JSON, CSV, Excel, or NDJSON.

Via Apify Python Client

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("muhammadafzal/weedmaps-dispensary-scraper").call(
run_input={
"location": "Denver, CO",
"maxResults": 50
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["phoneNumber"], item["address"])

Via Apify JavaScript / Node.js Client

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('muhammadafzal/weedmaps-dispensary-scraper').call({
location: 'Denver, CO',
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Limitations & Integrity

  • Anti-bot & Geo-fencing: Weedmaps enforces geo-restrictions and Fastly WAF protections. Residential proxies within legal jurisdictions (US) are used to maintain high reliability.
  • Menu Scraping Overhead: Enabling scrapeMenuItems fetches individual storefront menus and takes longer per dispensary than storefront directory extraction.
  • Truthful Data Guarantee: The Actor never fabricates records. Nonexistent locations or empty query regions return truthful empty results with informative diagnostics.