Weedmaps Dispensary Scraper — Dispensary Lists & Contacts
Pricing
from $0.80 / 1,000 dispensary results
Weedmaps Dispensary Scraper — Dispensary Lists & Contacts
Build cannabis dispensary lists from Weedmaps by US city or state: address, phone, email, rating, license type, hours and deals. USD 1 per 1,000 dispensaries.
Pricing
from $0.80 / 1,000 dispensary results
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Features
Share
Weedmaps Dispensary Scraper builds cannabis dispensary lists from Weedmaps: enter a US city or state, or paste Weedmaps URLs, and get each dispensary's name, address, coordinates, phone, email, rating, review count, license type, today's hours, payment options and active deals. It is built for cannabis brands, distributors, ancillary B2B vendors and market researchers, and it costs USD 1 per 1,000 dispensaries on the FREE tier (USD 0.80 per 1,000 on GOLD), plus USD 0.005 per run.
What dispensary data does Weedmaps Dispensary Scraper return?
Each Weedmaps listing is one dataset row:
| Field | What it contains |
|---|---|
id, wmid, slug, url | Weedmaps identifiers and the listing URL |
name, type | Listing name and type, for example dispensary |
address, city, state, zipCode, country | Street address and location |
latitude, longitude | Coordinates |
phoneNumber, email, website | Business contacts, when the listing shows them |
rating, reviewsCount, ranking | Star rating, number of reviews and Weedmaps ranking score |
licenseType | recreational, medical or hybrid |
retailerServices, hasCurbsidePickup | Services such as storefront, pickup or delivery, and curbside pickup |
openNow, todaysHours, minAge | Open status at scrape time, today's hours and minimum customer age |
acceptsCreditCards, acceptsDebitCards, acceptsCashlessPayments | Payment options |
menuItemsCount, verifiedMenuItemsCount, hasSaleItems | Menu size and whether items are on sale |
hasFeaturedDeal, topDeals, topDealsCount | Active deals with title, brand and slug |
socialEquity | Whether Weedmaps marks the business as social equity |
avatarImageUrl, introBody | Logo and the listing's intro text |
menuItems | Only with Scrape Menu Items: up to 200 items with name, brand, category, price, units, THC, CBD and image |
scrapedAt | Collection time |
In a 20-row Los Angeles test run on 2026-10-26, every row had a phone number and an email address, and none had a website. Each run also writes an OUTPUT record with the status, row count, locations crawled and warnings.
How do I get a list of dispensaries in a city or state?
Type the place into Location / City and run. Use City, ST or City, State for a city, such as Denver, CO, or a state code or full state name alone, such as AZ or Arizona, for the state page. The Actor opens the matching Weedmaps listing page, reads about 30 dispensaries per page and follows up to Max Pages per Location pages (default 5, up to 50).
Every dispensary in Phoenix, up to 300:
{"location": "Phoenix, AZ","maxResults": 300,"maxPagesPerLocation": 10}
You can also paste Weedmaps URLs into Start URLs: region pages such as https://weedmaps.com/dispensaries/in/united-states/colorado/denver, or single listings such as https://weedmaps.com/dispensaries/stiiizy. Pasted URLs take priority over the location field.
Two specific dispensaries with menu items:
{"startUrls": [{ "url": "https://weedmaps.com/dispensaries/stiiizy" },{ "url": "https://weedmaps.com/dispensaries/purple-star-md" }],"scrapeMenuItems": true,"maxMenuItemsPerDispensary": 20,"maxResults": 2}
Max Results (1–5,000, default 20) caps the rows across all inputs. Duplicate listings are removed.
When should I use it, and when not?
Use it when you need contact and location data for dispensaries in a market: wholesale and distribution outreach, territory planning, retail mapping, competitor counts per city or a statewide dispensary list.
Use another Actor when:
- You need product menus with prices, potency and strains, or searches by ZIP code or coordinates: Weedmaps Scraper.
- You need state license records, such as license numbers and status from California's regulator: California Cannabis License Search.
- You need non-cannabis businesses near a dispensary: Google Maps Scraper.
How do I get Weedmaps dispensary data through an API?
Run the Actor through the Apify API and read the dataset. No Weedmaps account or API key is needed.
JavaScript with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.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.map((d) => [d.name, d.phoneNumber, d.email]));
Python with apify-client:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/weedmaps-dispensary-scraper").call(run_input={"location": "Detroit, MI","maxResults": 100,})for d in client.dataset(run.default_dataset_id).iterate_items():print(d["name"], d["address"], d["licenseType"], d["rating"])
Export the dataset as CSV or Excel for a CRM import, or schedule weekly runs to keep a list current.
Use it from an AI assistant
Weedmaps Dispensary Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/weedmaps-dispensary-scraper to your client, then ask, for example: "Use Weedmaps Dispensary Scraper to list 50 dispensaries in Denver, CO with phone, email, address and rating as a CSV."
What does the output look like?
Two rows from the 2026-10-26 Los Angeles test run, shortened:
[{"id": 65841,"name": "STIIIZY Downtown LA","url": "https://weedmaps.com/dispensaries/stiiizy","type": "dispensary","address": "728 E Commercial St","city": "Los Angeles","state": "California","zipCode": "90012","latitude": 34.052206,"longitude": -118.232052,"phoneNumber": "(323) 929-4201","email": "retail.dtla@stiiizy.com","website": null,"rating": 4.8,"reviewsCount": 8426,"licenseType": "hybrid","retailerServices": ["storefront", "pickup"],"todaysHours": "6:00am - 9:45pm","minAge": 21,"menuItemsCount": 1753,"topDeals": [{ "id": 1484008, "title": "Up to 25% off Top Brands!" }],"topDealsCount": 4,"acceptsDebitCards": true,"scrapedAt": "2026-10-26T07:49:54.325Z"},{"id": 458,"name": "Dtpg Collective","url": "https://weedmaps.com/dispensaries/the-cure-company-dtla","type": "dispensary","address": "930 South Alameda Street","city": "Los Angeles","zipCode": "90021","phoneNumber": "(213) 275-1599","email": "info@curecompany.com","rating": 4.7,"reviewsCount": 3486,"licenseType": "hybrid","todaysHours": "9:00am - 9:00pm","minAge": 18,"scrapedAt": "2026-10-26T07:49:54.393Z"}]
How much does Weedmaps Dispensary Scraper cost?
The Actor uses pay-per-event pricing. Platform usage is included in the event prices.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Dispensary result (one dataset row) | USD 0.001 | USD 0.000975 | USD 0.00095 | USD 0.0008 | USD 0.0008 |
| Actor start (per started GB of allocated memory) | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 |
The Actor runs with at most 1 GB of memory, so each run has one start event. Worked totals on the FREE tier:
- Prefilled run (20 Los Angeles dispensaries): 20 × USD 0.001 + USD 0.005 = USD 0.025
- 1,000 dispensaries: 1,000 × USD 0.001 + USD 0.005 = USD 1.005 (USD 0.805 on GOLD)
Menu items are included in the dispensary price. A run that returns nothing charges only the start fee.
What are the limits?
- About 30 dispensaries per listing page. One location covers at most 50 pages; use several start URLs or runs for larger areas.
- US locations from the location field.
City, ST,City, State, state codes and full state names build US Weedmaps URLs. A bare city name without a state may not match a Weedmaps page. For other regions, paste the Weedmaps region URL; coverage outside the US was not tested. - Menus are slower and optional. Scrape Menu Items opens each dispensary's page, and
menuItemsappears only when that page includes menu data. - Speed. The 20-row Los Angeles run took about 6 seconds.
- Truthful empties. A location that does not exist on Weedmaps returns 0 rows with a warning in
OUTPUT, not invented records. - Data access is handled by the Actor; there is no proxy setting in the input. If its access route is unavailable, the run fails with a configuration message and charges no rows.
FAQ
Do I need a Weedmaps API key?
No. The Actor reads the public Weedmaps listing pages. Weedmaps' own developer APIs are aimed at integration partners and are not used here.
Can I get every dispensary in a state?
Yes, up to 50 listing pages per location (about 1,500 listings). Enter the state code or name, such as CO or Colorado, set Max Pages per Location to 50 and raise Max Results, or run major cities separately.
Does it include product prices and THC levels?
Only with Scrape Menu Items, and only for items the dispensary page includes. For full menus and cross-store product search, use Weedmaps Scraper.
Are the emails and phone numbers personal?
They are the business contacts each dispensary publishes on Weedmaps, usually shared inboxes such as info@.
Does it cover delivery services?
Single delivery listings work when you paste their weedmaps.com/deliveries/... URL. Location searches read Weedmaps' dispensary listing pages.
Is there a free dispensary list tool?
You can run this Actor on Apify's free plan. Each row is charged at the FREE-tier price above, and there is no subscription.
Related Actors
Other travel and local-place data tools from the same developer:
- Weedmaps Scraper for cannabis product menus, prices and potency
- California Cannabis License Search for state license records
- Kakao Map Scraper for Korean local businesses
- UK Food Hygiene Ratings Scraper for UK food business ratings
- AllTrails Scraper and Momondo Flight Prices Scraper for travel data
Legal and compliance
Weedmaps Dispensary Scraper collects business information that Weedmaps shows publicly, without logging in or bypassing access controls. Cannabis marketing is regulated: follow your state's advertising rules, CAN-SPAM for email, TCPA and Do Not Call rules for calls and texts, and Weedmaps' terms. This is not legal advice, and the Actor is not affiliated with Weedmaps.
Last verified: 2026-10-27