Dutchie Scraper: Cannabis Menu & Pricing Data Extractor
Pricing
from $3.00 / 1,000 results
Dutchie Scraper: Cannabis Menu & Pricing Data Extractor
Extract real-time pricing, inventory, THC/CBD levels, and brand data from any Dutchie-powered cannabis dispensary. $3.00/1k products. No API key needed. Residential proxy required.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(2)
Developer
Tim McGillicuddy
Maintained by CommunityActor stats
1
Bookmarked
71
Total users
7
Monthly active users
5.3 days
Issues response
3 days ago
Last modified
Categories
Share
Dutchie Dispensary Menu & Pricing Data Extractor
Extract structured data from public Dutchie-powered dispensary menus without writing scraping code. Paste a menu URL to collect product names, brands, categories, displayed prices, active offers, potency, package sizes, availability labels, product links, and collection timestamps.
The input page has an example link already filled in. Leave How much to pull on Sample and click Start. When the sample shows the right store and prices, switch to Full menu.
What this Actor is for: menu research, price monitoring, brand visibility, category analysis, and structured catalog data. It is not affiliated with Dutchie and is not a point-of-sale, live-inventory, purchasing, or legal-compliance service.
What you can collect
Each product variant is saved as one dataset row. Depending on what a public menu exposes, the row can include:
- Store name and the source menu URL
- Product name, brand, category, subcategory, and strain type
- Displayed price, numeric price, active special, and package size
- THC/CBD text and potency unit
- Availability label, product URL, product image URL, and collection time
Fields that a specific public menu does not expose are returned as null. This keeps exports consistent while making the source limitations visible.
Start with one menu
- Open the Actor input page.
- Leave the example link, or paste your own Dutchie address over it.
- Leave How much to pull on Sample.
- Leave Use the recommended connection turned on.
- Click Start and open the dataset.
- If the sample shows the right store, run it again with Full menu. Use Deals only when you want today's specials and not the product list.
A basic preview input looks like this:
{"dispensaryUrls": ["https://dutchie.com/dispensary/your-store-name"],"runSize": "sample","useProxy": true,"proxyGroup": "RESIDENTIAL"}
How pricing works
This Actor uses pay per result pricing. The current Store price is $3.00 per 1,000 product results. The primary billable result is a product variant successfully written to the default dataset. The standard Actor-start event is also charged at a very small fixed amount.
You are not billed separately for Apify platform usage. Prices below are simple result-price examples; the exact result count depends on the public menu and the limit you choose.
| Example run | Product results | Result charge | Best use |
|---|---|---|---|
| Preview | 10 | about $0.03 | Check one menu before a larger run |
| Small menu | 200 | about $0.60 | Review a single dispensary |
| Large menu | 1,000 | about $3.00 | Export one full catalog |
| Five menus | 5,000 | about $15.00 | Compare a local competitor set |
A zero-result run can be valid when a menu is empty, a filter has no matches, or public access is limited. It is not automatically proof of an Actor failure. Check the exact menu URL and use the recommended connection before escalating an issue.
Choose the right run
| Goal | What to pick |
|---|---|
| Confirm a menu works | One link, Sample, recommended connection on |
| Collect a complete public menu | One or more links, Full menu, recommended connection on |
| Monitor promotions | Deals only |
| Compare several dispensaries | Add each link, run Sample first, then Full menu |
Full menu applies to every link in the run. Add stores only after one sample looks right.
Output example
The default dataset contains one row for each product variant.
{"schema_version": "1.0","dispensary_name": "Example Dispensary","dispensary_url": "https://dutchie.com/dispensary/example-store","product_name": "Example Product | 3.5g","brand": "Example Brand","category": "Flower","subcategory": "pre-pack","strain_type": "Hybrid","thc_level": "22.5%","cbd_level": null,"potency_unit": "Percentage","variant_size": "3.5g","display_price": "$30.00","numeric_price": 30,"special_offer_name": null,"in_stock": true,"product_url": "https://dutchie.com/dispensary/example-store/product/example-product","scraped_at": "2026-10-01T12:00:00Z"}
Use numeric_price for sorting and calculations. Keep display_price when you need to preserve the exact wording of a sale or promotion. Use scraped_at to distinguish a historical observation from the current public menu view.
Use cases
Competitive menu monitoring. Save a group of competitor menu URLs, run the Actor on a schedule, and compare price, category mix, active offers, and in-stock labels over time.
Brand and shelf visibility. Filter the dataset by brand to see where a brand appears, what variants are listed, and how publicly displayed price or availability differs by dispensary.
Market and category research. Export normalized product rows to a spreadsheet, database, or dashboard. Analyze price ranges, category counts, package sizes, potency labels, and offer names across a market.
Developer integration. Run the Actor through the Apify API, retrieve the default dataset, and send the structured records to an internal tool, dashboard, or data pipeline.
Input reference
| Field | What to enter | Recommended first-run choice |
|---|---|---|
| Dispensary link | One Dutchie link per line. The example is already filled in | Leave the example, or paste your store |
| How much to pull | Sample, Full menu, or Deals only | Sample |
| Use the recommended connection | Leave on unless you know a store works without it | On |
| Connection type | Residential gets through. Datacenter is faster and easier to block | Residential |
Older API calls that omit How much to pull and send maxItems: 0 still pull the full menu. offersOnly: true still means deals only when How much to pull is omitted.
Troubleshooting
The Actor cannot resolve the dispensary
Copy the exact menu URL from your browser address bar. A dispensary can have separate recreational and medical menus, so confirm that you copied the intended public menu URL.
The Actor returns zero products
First, confirm that the menu is publicly accessible in a normal browser session. Keep Use the recommended connection on and use the Residential connection type. Then run Sample with the exact URL. If a valid public menu still returns zero results, open an issue with the run ID and URL.
The Actor returns fewer products than expected
A menu may have a different recreational/medical view, a temporarily empty category, a limited public catalog, or a specific filter. Check the source menu and your product limit before assuming the extraction is incomplete.
The run takes longer than expected
Large menus and multi-menu runs take longer than a Sample. Test one URL first, then expand scope deliberately. For a large full-menu run, use an appropriate Actor timeout in your Apify run settings.
Responsible use and data limitations
Use this Actor only for data that is publicly accessible to you and only in ways permitted by applicable law and relevant site terms. Cannabis rules, age-gating requirements, menu access, product availability, displayed pricing, and data rights vary by location and can change without notice.
This Actor reports information visible in a public menu at collection time. It does not verify inventory, purchase eligibility, regulatory compliance, tax treatment, product availability, or the accuracy of third-party menu data. Do not use its output as purchasing, medical, legal, or compliance advice.
Support
For help, open an issue on this Actor’s Issues tab. Include:
- The run ID.
- The public menu URL.
- Whether the problem is a failed run, zero output, missing fields, or unexpected values.
- A short description of what you expected to see.
That context makes it possible to reproduce the issue without asking you to share private credentials or internal data.
Integrate, schedule, and export
Apify lets you run this Actor manually, through the API, on a schedule, or as part of a workflow. Export the default dataset to JSON, CSV, Excel, or a connected destination after a successful run. Before scheduling a full-menu or multi-store workflow, run a small preview to confirm the inputs, expected result count, and price.
For programmatic use, use the Actor ID:
tfmcg3/dutchie-dispensary-scraper
See the automatically generated API section on this Actor page for current JavaScript, Python, CLI, and MCP examples.