Dutchie Scraper: Cannabis Menu & Pricing Data Extractor avatar

Dutchie Scraper: Cannabis Menu & Pricing Data Extractor

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Dutchie Scraper: Cannabis Menu & Pricing Data Extractor

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

Tim McGillicuddy

Maintained by Community

Actor stats

1

Bookmarked

71

Total users

7

Monthly active users

5.3 days

Issues response

3 days ago

Last modified

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

  1. Open the Actor input page.
  2. Leave the example link, or paste your own Dutchie address over it.
  3. Leave How much to pull on Sample.
  4. Leave Use the recommended connection turned on.
  5. Click Start and open the dataset.
  6. 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 runProduct resultsResult chargeBest use
Preview10about $0.03Check one menu before a larger run
Small menu200about $0.60Review a single dispensary
Large menu1,000about $3.00Export one full catalog
Five menus5,000about $15.00Compare 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

GoalWhat to pick
Confirm a menu worksOne link, Sample, recommended connection on
Collect a complete public menuOne or more links, Full menu, recommended connection on
Monitor promotionsDeals only
Compare several dispensariesAdd 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

FieldWhat to enterRecommended first-run choice
Dispensary linkOne Dutchie link per line. The example is already filled inLeave the example, or paste your store
How much to pullSample, Full menu, or Deals onlySample
Use the recommended connectionLeave on unless you know a store works without itOn
Connection typeResidential gets through. Datacenter is faster and easier to blockResidential

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:

  1. The run ID.
  2. The public menu URL.
  3. Whether the problem is a failed run, zero output, missing fields, or unexpected values.
  4. 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.