ParseForge Scrapers

Weedmaps Dispensary & Menu Scraper

parseforge/weedmaps-scraper

Lead generationE-commerceAutomation

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.

Run this scraper See the API call
Total users
38
Monthly active
3
Total runs
353
Bookmarked
0
Rating
1.0 (1)
Last modified
1 hours ago

This scraper was last updated on .

What does the Weedmaps Dispensary & Menu Scraper return?

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 it What they scrape Weedmaps for
Cannabis market researchers Which dispensaries operate in a given region and what products they stock
Competitive intelligence analysts Track pricing, product variety, and service types across local competitors
Lead generation teams Build a contact list of dispensaries for outreach or partnership
Supply chain planners Map 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 & address Dispensary name, street, city, state, zip, and coordinates
Contact info Phone number, email, and website URL
Hours of operation Today's hours plus open and close times for each day of the week
Service types Storefront, delivery, or pickup
Licence & compliance Licence type, licence number, recreational flag, and minimum age
On-site details Payment methods accepted, ATM, and wheelchair access
Product menu Product 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.

Feature ParseForge Cannabis Dispensary Monitor Weedmaps Dispensary Scraper 🌿 Weedmaps Dispensary Scraper
Full product menu extraction Yes Not listed Yes Not listed
Filter by service type (storefront/delivery/pickup) Yes Not listed Not listed Not listed
State-wide scrape without city selection Yes Yes Not listed Not listed
Direct URL input for single page Yes Not listed Not listed Not listed
Automatic residential fallback when blocked Yes Not listed Not listed Not listed
Change detection across runs Not listed Yes Not listed Not listed
Canadian province coverage Not listed Yes Not listed Not 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
  }
}

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

Question Answer
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.

πŸ†˜ 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.

What input does the Weedmaps Dispensary & Menu Scraper accept?

FieldTypeWhat it doesDefault
startUrl string Paste a Weedmaps dispensary URL (e.g. https://weedmaps.com/dispensaries/in/united-states/california/los-angeles). Overrides state/city below. not set
maxItems integer Free users: limited to 100. Paid users: optional, max 1,000,000. Note: a city may have fewer dispensaries than maxItems, the scraper returns all available and stops. 10
state string (52 options) US state slug. Used when no city is selected below. california
city string (4094 options) Select a US city. Leave empty for state-wide scraping. not set
radius string Override radius (e.g. 10mi, 25mi, 50mi). Leave empty to use Weedmaps' suggested radius for that city. Bigger = includes nearby cities. not set
retailerServices string (4 options) Filter dispensaries by service type. storefront
proxyConfiguration object Apify Proxy is used to reach Weedmaps. Datacenter is enough in most runs; the Actor switches to residential on its own if Weedmaps blocks the exit IP. {"useApifyProxy":true}

How much does the Weedmaps Dispensary & Menu Scraper cost?

from $11.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.01199 to $0.01599

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Weedmaps Dispensary & Menu Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~weedmaps-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "maxItems": 10,
    "state": "california",
    "retailerServices": "storefront",
    "proxyConfiguration": {
      "useApifyProxy": true
    }
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

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

What do users say about the Weedmaps Dispensary & Menu Scraper?

Rated 1.0 out of 5 across 1 review. Read them on Apify.

How do I report an issue with the Weedmaps Dispensary & Menu Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Weedmaps Dispensary & Menu Scraper on Apify All scrapers