Weedmaps Dispensary Scraper ๐ŸŒฟ avatar

Weedmaps Dispensary Scraper ๐ŸŒฟ

Pricing

Pay per usage

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

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Weedmaps Dispensary Scraper

Extract clean, structured Weedmaps data from product pages, dispensary listing pages, and listing detail pages using one actor input. The scraper auto-detects the URL type and returns flattened, deduplicated dataset records with null values removed.

Features

  • Automatic URL type detection - Supports brand products, region listings, and listing detail URLs in one run.
  • Clean flattened output - Converts nested objects into flat fields for easier filtering and exports.
  • Null-free dataset - Removes empty and null values before saving records.
  • Duplicate-safe records - Generates unique record_id values and skips duplicates.
  • Formatted text fields - Converts intro and description HTML fields into cleaned text output.

Use Cases

Local Dispensary Discovery

Track dispensaries and deliveries for specific cities and compare listing changes over time.

Product Catalog Monitoring

Collect brand product listings from Weedmaps brand pages for pricing and assortment analysis.

Detail Page Enrichment

Capture listing profile details and menu entries from dispensary or delivery detail pages.

Data Warehousing

Export standardized records to BI tools, dashboards, and CRM workflows.

Supported URL Types

  • https://weedmaps.com/dispensaries/in/...
  • https://weedmaps.com/deliveries/in/...
  • https://weedmaps.com/dispensaries/{slug}
  • https://weedmaps.com/deliveries/{slug}
  • https://weedmaps.com/brands/{slug}/products

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringYes"https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city"Primary Weedmaps URL.
startUrlsString ListNo[]Additional Weedmaps URLs to scrape in the same run.
results_wantedIntegerNo20Maximum primary records per URL.
max_pagesIntegerNo10Pagination safety cap per URL.
proxyConfigurationObjectNo{"useApifyProxy": false}Optional proxy configuration.

Output Data

Each dataset item is flattened and cleaned.

FieldTypeDescription
record_idStringUnique deterministic ID used for deduplication.
record_typeStringbrand_product, listing, listing_detail, menu_item, or page_context.
url_typeStringDetected source URL category.
source_typeStringInternal collection context.
idNumberEntity ID when available.
wmidNumberWeedmaps listing ID when available.
nameStringEntity name.
slugStringEntity slug.
listing_typeStringListing group such as dispensaries or deliveries.
listing_slugStringListing slug for detail/menu records.
brand_nameStringBrand name when available.
description_textStringCleaned text description.
intro_textStringCleaned text intro.
web_urlStringWeedmaps page URL.
source_urlStringInput URL that produced the record.
api_urlStringRequest URL used to fetch the data.
pageNumberPage index for paginated results.
position_on_pageNumberPosition within page results.
scraped_atStringISO timestamp.

Additional flat fields may be present depending on URL type.

Usage Examples

Region Dispensary URL

{
"startUrl": "https://weedmaps.com/dispensaries/in/united-states/new-york/new-york-city",
"results_wanted": 20
}

Brand Products URL

{
"startUrl": "https://weedmaps.com/brands/arctic-bakery/products",
"results_wanted": 20
}

Mixed URL 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
}

In the Apify UI, startUrls is entered as a string list (one URL per row).

Sample Output

{
"record_id": "listing:dispensaries:362385:savo-group-inc-dba-alto",
"record_type": "listing",
"url_type": "region_listings",
"source_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-03-30T09:00:00.000Z"
}

Tips for Best Results

Use Direct Weedmaps URLs

Use canonical Weedmaps links for products, listing regions, and listing detail pages.

Keep Run Scope Controlled

Use results_wanted and max_pages to optimize runtime and costs.

Keep Inputs Consistent

Use consistent city/state URLs when you need comparable data snapshots.

Integrations

  • Google Sheets - Share and analyze exports quickly.
  • Airtable - Build searchable dispensary and product datasets.
  • Make - Trigger workflows after successful runs.
  • Zapier - Connect scraped data to operational automations.
  • Webhooks - Send data to custom services.

Export Formats

  • JSON
  • CSV
  • Excel
  • XML

Frequently Asked Questions

Can I scrape product, dispensary, and detail URLs together?

Yes. Provide one startUrl and optional startUrls; each URL is processed automatically.

Are null and empty values included?

No. Empty fields are removed before dataset writes.

Is the dataset flattened?

Yes. Nested fields are flattened for easier post-processing.

How are duplicate rows handled?

Each output record gets a deterministic record_id; duplicates are skipped in the same run.

Use this actor responsibly and ensure compliance with applicable laws and website terms.