Weedmaps Dispensary Scraper 🌿
Pricing
from $0.99 / 1,000 results
Weedmaps Dispensary Scraper 🌿
Extract dispensary data from Weedmaps instantly. Scrape locations, hours, prices, reviews & product details across regions. Export as JSON or CSV. Ideal for market analysis, competitive research & inventory tracking. Fully automated, no coding needed.
Pricing
from $0.99 / 1,000 results
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
2
Bookmarked
19
Total users
2
Monthly active users
20 days ago
Last modified
Categories
Share
What does Weedmaps Dispensary Scraper do?
Weedmaps Dispensary Scraper is a Weedmaps data extractor for collecting public dispensary listings, delivery services, listing details, menu items, and brand product catalogs. Provide one Weedmaps URL, or add multiple URLs to the same run, and the Actor identifies the page type and saves clean, flattened dataset records.
Use it to build local dispensary datasets, monitor product catalogs, compare delivery coverage, enrich listing profiles, or export Weedmaps data for market research and operational workflows. Empty and null values are removed, and duplicate records are skipped during each run.
Why use Weedmaps Dispensary Scraper?
- One input for several page types - Process region pages, dispensary or delivery detail pages, and brand product pages in the same run.
- Structured Weedmaps data - Receive flat fields that are easier to filter, join, analyze, and export than nested page data.
- Local market research - Compare dispensaries, deliveries, doctors, CBD stores, venues, and other supported listing types by location.
- Product catalog monitoring - Collect brand product records for assortment, availability, pricing, and category analysis when those fields are published.
- Listing enrichment - Detail pages can return profile information together with menu item records.
- Automation-ready output - Download JSON, CSV, Excel, or XML, schedule repeat runs, use webhooks, or connect the dataset to another service.
What data can you extract from Weedmaps?
The Actor returns a consistent set of collection fields and preserves additional public fields according to the URL type. Product, listing, profile, location, hours, rating, pricing, category, and menu attributes may be present when Weedmaps publishes them.
| Field | Type | Description |
|---|---|---|
record_id | String | Deterministic identifier used to prevent duplicate records in a run. |
record_type | String | brand_product, listing, listing_detail, menu_item, or page_context. |
url_type | String | Detected source category, such as brand_products, region_listings, or listing_detail. |
id | Number | Entity identifier when published. |
wmid | Number | Weedmaps listing identifier when available. |
name | String | Dispensary, delivery, brand, product, or menu item name. |
slug | String | Public Weedmaps slug for the entity. |
listing_type | String | Listing group such as dispensaries, deliveries, doctors, or cbd-stores. |
listing_slug | String | Listing slug associated with detail or menu records. |
brand_name | String | Brand name for product records when available. |
description_text | String | Cleaned description text without markup. |
intro_text | String | Cleaned introductory text when available. |
web_url | String | Public Weedmaps page URL for the record. |
source_url | String | Input URL that produced the record. |
page | Number | Page number used for paginated results. |
position_on_page | Number | Result position on its source page. |
scraped_at | String | ISO 8601 timestamp for the collection time. |
Additional flattened fields are included when available. For example, listing records can include address, hours, location, rating, and service details; product records can include price, availability, categories, and product metadata; menu records can include item-level catalog fields.
Supported Weedmaps URL types
Use canonical public URLs from weedmaps.com in the input.
| URL type | Example | Records returned |
|---|---|---|
| Region listings | https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city | Listing records for the selected region. |
| Delivery listings | https://weedmaps.com/deliveries/in/united-states/california/los-angeles | Delivery listing records for the selected region. |
| Other listing groups | https://weedmaps.com/doctors/in/... or https://weedmaps.com/cbd-stores/in/... | Records for supported Weedmaps listing groups. |
| Listing detail | https://weedmaps.com/dispensaries/savo-group-inc-dba-alto | One detail record and related menu item records when available. |
| Brand products | https://weedmaps.com/brands/arctic-bakery/products | Product records from the brand catalog. |
Supported listing groups include dispensaries, deliveries, doctors, CBD stores, venues, listings, hemp stores, and hemp deliveries when the corresponding Weedmaps route is available.
How to scrape Weedmaps data
- Open Weedmaps Dispensary Scraper in Apify Console.
- Enter a public Weedmaps URL in
startUrl. - Add optional URLs to
startUrlsif you want to combine regions, listing details, or brand catalogs. - Set
results_wantedandmax_pagesfor the size of the run. - Run the Actor and review the dataset preview.
- Download the results or connect the dataset to a scheduled workflow, webhook, spreadsheet, or API client.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | Yes | - | Primary public Weedmaps URL. The URL can be a region page, listing detail page, or brand product page. |
startUrls | Array of strings | No | [] | Additional public Weedmaps URLs to process in the same run. In Apify Console, enter one URL per row. |
results_wanted | Integer | No | 20 | Maximum number of primary listing or product records to save per URL. |
max_pages | Integer | No | 10 | Maximum pagination depth used for each URL. Use a smaller value for quick tests. |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Optional Apify Proxy configuration for collection requests. |
Output Data
Every saved item is a flattened dataset record. Records from a single run can have different record_type values when you submit different URL types, or when a listing detail page also provides menu items.
| Record type | Meaning |
|---|---|
listing | A dispensary, delivery service, or other supported regional listing. |
listing_detail | Profile-level information from a listing detail page. |
menu_item | A menu or catalog item associated with a listing detail page. |
brand_product | A product published on a Weedmaps brand products page. |
page_context | Basic page context returned when a submitted route does not match a supported collection type. |
Usage Examples
Collect regional dispensary listings
Use a region URL to create a local dispensary dataset.
{"startUrl": "https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city","results_wanted": 50,"max_pages": 5}
Collect a brand product catalog
Use a brand products URL to collect product records for catalog and price analysis.
{"startUrl": "https://weedmaps.com/brands/arctic-bakery/products","results_wanted": 100,"max_pages": 10}
Combine listings, a detail page, and a brand catalog
Use startUrls when you need related datasets in one run.
{"startUrl": "https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city","startUrls": ["https://weedmaps.com/dispensaries/savo-group-inc-dba-alto","https://weedmaps.com/brands/arctic-bakery/products"],"results_wanted": 20,"max_pages": 10}
Sample Output
The following example shows a typical regional listing item. The exact fields vary with the information published on each Weedmaps page.
{"record_id": "listing:dispensaries:362385:362385:savo-group-inc-dba-alto:https://weedmaps.com/dispensaries/savo-group-inc-dba-alto:https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city","record_type": "listing","url_type": "region_listings","id": 362385,"wmid": 362385,"name": "ALTOCANNA","slug": "savo-group-inc-dba-alto","listing_type": "dispensaries","web_url": "https://weedmaps.com/dispensaries/savo-group-inc-dba-alto","source_url": "https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city","page": 1,"position_on_page": 1,"scraped_at": "2026-08-20T09:00:00.000Z"}
Tips for best results
- Use canonical URLs - Copy the full public Weedmaps URL for a region, listing, delivery service, or brand page.
- Test with a small limit - Start with 10 to 20 results before increasing
results_wantedormax_pages. - Keep regions consistent - Use the same city and state URL when comparing snapshots over time.
- Separate large runs when useful - Submit a few related URLs per run so each dataset is easier to review and export.
- Check source availability - A missing field usually means the source page did not publish that value for the record.
- Schedule repeat runs for monitoring - Compare dataset exports over time to track listing and catalog changes.
Integrations and exports
- JSON, CSV, Excel, and XML - Download the dataset in a format suited to analysis or storage.
- Google Sheets - Review dispensary and product data in a familiar spreadsheet workflow.
- Airtable - Build searchable local listing and catalog tables.
- Make or Zapier - Send new run results into business processes.
- Webhooks - Trigger downstream processing after a run finishes.
- Apify API - Start runs and retrieve dataset items from your own application.
Frequently Asked Questions
Can I scrape product, dispensary, and detail URLs together?
Yes. Put the first URL in startUrl and add any other public Weedmaps URLs to startUrls. The Actor detects each supported URL type separately.
Does a listing detail page include menu data?
Yes. A supported listing detail URL can produce a listing_detail record and menu_item records when menu data is available.
Are null and empty values included?
No. Empty strings, null values, and empty nested objects are removed before records are saved.
Is the dataset flattened?
Yes. Nested source fields are converted into flat, readable field names, which makes filtering and export easier.
How are duplicate rows handled?
Duplicate records are skipped during the run using a deterministic record_id based on the available record identity fields.
Can I export Weedmaps data to CSV or Excel?
Yes. Apify dataset results can be downloaded as CSV, Excel, JSON, XML, and other supported formats.
Why is a field missing from a record?
A field is missing when the source page does not publish it or when it does not apply to that record type. Review several records before treating a missing value as a collection problem.
Is it legal to collect Weedmaps data?
Public data collection may be subject to website terms, applicable laws, privacy requirements, and local cannabis regulations. You are responsible for using the Actor lawfully and responsibly.
Related Actors
These public Shahid Irfan Actors support adjacent product catalog, pricing, and market research workflows:
- Target Product Scraper - Collect Target product listings, prices, ratings, and availability.
- Nike Product Scraper - Collect Nike product catalog data for product and price analysis.
- Cdiscount Product Scraper - Collect Cdiscount product details, prices, and reviews.
Support
For issues, feature requests, or custom data requirements, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is intended for legitimate collection of publicly available Weedmaps data. Do not use collected data to violate website terms, privacy rights, local cannabis regulations, or other applicable laws. You are responsible for reviewing and complying with the rules that apply to your use case.