Weedmaps Dispensary Scraper 🌿 avatar

Weedmaps Dispensary Scraper 🌿

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Weedmaps Dispensary Scraper 🌿

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

Shahid Irfan

Maintained by Community

Actor stats

2

Bookmarked

19

Total users

2

Monthly active users

20 days ago

Last modified

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.

FieldTypeDescription
record_idStringDeterministic identifier used to prevent duplicate records in a run.
record_typeStringbrand_product, listing, listing_detail, menu_item, or page_context.
url_typeStringDetected source category, such as brand_products, region_listings, or listing_detail.
idNumberEntity identifier when published.
wmidNumberWeedmaps listing identifier when available.
nameStringDispensary, delivery, brand, product, or menu item name.
slugStringPublic Weedmaps slug for the entity.
listing_typeStringListing group such as dispensaries, deliveries, doctors, or cbd-stores.
listing_slugStringListing slug associated with detail or menu records.
brand_nameStringBrand name for product records when available.
description_textStringCleaned description text without markup.
intro_textStringCleaned introductory text when available.
web_urlStringPublic Weedmaps page URL for the record.
source_urlStringInput URL that produced the record.
pageNumberPage number used for paginated results.
position_on_pageNumberResult position on its source page.
scraped_atStringISO 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 typeExampleRecords returned
Region listingshttps://weedmaps.com/dispensaries/in/united-states/new-york/new-york-cityListing records for the selected region.
Delivery listingshttps://weedmaps.com/deliveries/in/united-states/california/los-angelesDelivery listing records for the selected region.
Other listing groupshttps://weedmaps.com/doctors/in/... or https://weedmaps.com/cbd-stores/in/...Records for supported Weedmaps listing groups.
Listing detailhttps://weedmaps.com/dispensaries/savo-group-inc-dba-altoOne detail record and related menu item records when available.
Brand productshttps://weedmaps.com/brands/arctic-bakery/productsProduct 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

  1. Open Weedmaps Dispensary Scraper in Apify Console.
  2. Enter a public Weedmaps URL in startUrl.
  3. Add optional URLs to startUrls if you want to combine regions, listing details, or brand catalogs.
  4. Set results_wanted and max_pages for the size of the run.
  5. Run the Actor and review the dataset preview.
  6. Download the results or connect the dataset to a scheduled workflow, webhook, spreadsheet, or API client.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringYes-Primary public Weedmaps URL. The URL can be a region page, listing detail page, or brand product page.
startUrlsArray of stringsNo[]Additional public Weedmaps URLs to process in the same run. In Apify Console, enter one URL per row.
results_wantedIntegerNo20Maximum number of primary listing or product records to save per URL.
max_pagesIntegerNo10Maximum pagination depth used for each URL. Use a smaller value for quick tests.
proxyConfigurationObjectNo{"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 typeMeaning
listingA dispensary, delivery service, or other supported regional listing.
listing_detailProfile-level information from a listing detail page.
menu_itemA menu or catalog item associated with a listing detail page.
brand_productA product published on a Weedmaps brand products page.
page_contextBasic 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_wanted or max_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.

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.

These public Shahid Irfan Actors support adjacent product catalog, pricing, and market research workflows:

Support

For issues, feature requests, or custom data requirements, use the Issues tab on the Actor page or contact the developer through Apify.

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.