Weedmaps Dispensary & Menu Scraper avatar

Weedmaps Dispensary & Menu Scraper

Pricing

from $11.99 / 1,000 result items

Go to Apify Store
Weedmaps Dispensary & Menu Scraper

Weedmaps Dispensary & Menu Scraper

Scrape Weedmaps dispensary listings and product menus by state, city, or direct URL. Returns name, address, phone, hours, service type, and menu items. Export to CSV, JSON, Excel, or XML.

Pricing

from $11.99 / 1,000 result items

Rating

1.0

(1)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

38

Total users

3

Monthly active users

5 days ago

Last modified

Share

ParseForge

Weedmaps Dispensary & Menu Scraper

Scrape Weedmaps dispensaries and menus from any US city or state, up to a million listings per run. Every dispensary comes with its name, address, phone, hours, product menu, and service types. No API key needed. Export to CSV, JSON, Excel, or XML.

Weedmaps lists thousands of dispensaries, delivery services, and pickup locations across the US, but there is no public API to pull structured data at scale. This Actor reads the public Weedmaps directory directly, filtered by state, city, service type, or a custom URL, and returns each dispensary as a flat row with its full menu.

Who uses itWhat they scrape Weedmaps for
Cannabis market researchersWhich dispensaries operate in a given region and what products they stock
Competitive intelligence analystsTrack pricing, product variety, and service types across local competitors
Lead generation teamsBuild a contact list of dispensaries for outreach or partnership
Supply chain plannersMap the retail landscape before entering a new state or city

What it does

This Actor collects Weedmaps dispensary listings by state, city, or direct URL, and returns each one as a flat row with name, address, contact info, hours, and product menu items.

  • 📍 Location-based scraping: Pick a state and optionally a city from the dropdown, or paste any Weedmaps URL to scrape that exact page.
  • 🔍 Service type filter: Narrow results to storefront, delivery, or pickup only.
  • 📦 Full menu extraction: Each dispensary row includes product names, categories, and prices when available.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Weedmaps data

📈 Map the cannabis retail landscape.

A market researcher runs the Actor on all cities in a state to count dispensaries, compare service types, and identify underserved areas.

🕵️ Monitor competitor menus and pricing.

A dispensary owner scrapes nearby competitors weekly to track new products, price changes, and promotions.

📋 Build a dispensary lead list.

A sales team scrapes dispensaries in target states to collect phone numbers and addresses for cold outreach.

🗺️ Plan expansion into new markets.

A cannabis brand runs the Actor on several cities to evaluate retail density and service mix before choosing a location.

Why choose this scraper

What you get
Name & addressDispensary name, street, city, state, zip, and coordinates
Contact infoPhone number, email, and website URL
Hours of operationToday's hours plus open and close times for each day of the week
Service typesStorefront, delivery, or pickup
Licence & complianceLicence type, licence number, recreational flag, and minimum age
On-site detailsPayment methods accepted, ATM, and wheelchair access
Product menuProduct names, categories, and prices when listed

How it compares

This Actor focuses on Weedmaps dispensary and menu scraping with a simple state/city dropdown and full menu extraction, unlike broader cannabis registry monitors or simpler listing scrapers.

FeatureParseForgeCannabis Dispensary MonitorWeedmaps Dispensary Scraper 🌿Weedmaps Dispensary Scraper
Full product menu extractionYesNot listedYesNot listed
Filter by service type (storefront/delivery/pickup)YesNot listedNot listedNot listed
State-wide scrape without city selectionYesYesNot listedNot listed
Direct URL input for single pageYesNot listedNot listedNot listed
Automatic residential fallback when blockedYesNot listedNot listedNot listed
Change detection across runsNot listedYesNot listedNot listed
Canadian province coverageNot listedYesNot listedNot listed

Configure the run

Drive the Actor from a state and city dropdown, or a direct Weedmaps URL, and filter by service type as each listing is read so only matching dispensaries reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10,
"state": "california",
"retailerServices": "storefront",
"proxyConfiguration": {
"useApifyProxy": true
}
}

A larger pull:

{
"maxItems": 200,
"state": "california",
"retailerServices": "storefront",
"proxyConfiguration": {
"useApifyProxy": true
}
}

Pricing

Pay-per-result: $0.01599 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$1.60
1,000 results$15.99
10,000 results$159.90

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Weedmaps Dispensary & Menu Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Weedmaps through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/weedmaps-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that the state and city are spelled correctly in the dropdown. If using a Start URL, make sure it is a valid Weedmaps dispensary or city page. A run that finds nothing says so in the run status and charges nothing, and it tells you whether Weedmaps answered with an empty list or blocked the request.

The run is very slow.

A state-wide scrape pages through every listing in the state. Narrow the location to a single city, or set a radius, to speed up the run.

I see duplicate dispensaries.

Some dispensaries appear in multiple categories or nearby cities. The Actor does not deduplicate by default. You can remove duplicates in post-processing using the dispensary name and address.

Product menu data is missing.

Not all dispensaries list their menu on Weedmaps. The Actor only returns menu items when they are publicly visible on the page.

The run says Weedmaps blocked it.

Weedmaps runs bot protection that occasionally challenges an exit IP. The Actor retries on a fresh IP and switches to residential proxies on its own when a block repeats, so most runs recover without you doing anything. If a run still ends blocked, nothing is charged for it: run it again, or leave the proxy on Apify Residential from the start.

FAQ

QuestionAnswer
Do I need a Weedmaps API key?No. The Actor reads public Weedmaps pages directly. No login or API key is required.
Can I scrape all dispensaries in a state?Yes. Select a state and leave the city field empty to scrape every city in that state. The Actor returns all available dispensaries up to your maxItems limit.
What data does each row contain?Each row includes the dispensary name, address, phone, email, website, weekly hours, licence details, service type, and the product menu item with its name, category, brand, and price.
Does it scrape product menus?Yes. When a dispensary has a menu on Weedmaps, the Actor extracts product names, categories, and prices.
What is the maxItems limit?Free users are limited to 100 items. Paid users can set up to 1,000,000. The Actor stops when it reaches the limit or when no more dispensaries are found.
Can I scrape a single dispensary page?Yes. Paste a dispensary URL such as https://weedmaps.com/dispensaries/nug-oakland into Start URL and the Actor returns that dispensary and its menu. A city URL such as https://weedmaps.com/dispensaries/in/united-states/california/oakland scrapes that whole city.
What proxy does it use?Apify Proxy on datacenter by default. If Weedmaps blocks an exit IP twice, the Actor switches itself to residential for the rest of the run. You can pin residential from the start in Advanced Options.
How long does a run take?It depends on the number of dispensaries. A single city with 10 dispensaries finishes in under a minute. A full state scrape may take several minutes.
Can I filter by delivery only?Yes. Set the Retailer Services filter to Delivery to return only dispensaries that offer delivery.
What export formats are supported?You can export the dataset as CSV, JSON, Excel, or XML from the Apify dataset page.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Weedmaps, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.