Leafly Dispensary Scraper avatar

Leafly Dispensary Scraper

Deprecated

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Leafly Dispensary Scraper

Leafly Dispensary Scraper

Deprecated

🏪🌿 Collect clean Leafly.com dispensary data for any city or location. Get 📍 addresses, 📞 contact details, ⭐ ratings, 🕒 hours, 🚚 delivery & pickup options, 🖼 photos, and 💬 reviews in a structured, ready-to-use format.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Krazee

Krazee

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

0

Monthly active users

4 months ago

Last modified

Share

🏪 Leafly Dispensary Scraper

The Leafly Dispensary Scraper extracts dispensary listings, contact details, reviews, ratings, store hours, delivery options, and payment information directly from leafly.com across multiple locations.

Use this Leafly scraper to collect structured dispensary datasets for market research, lead generation, competitive analysis, reputation monitoring, and location intelligence.

📚 Table of Contents


🧾 What This Actor Does

You provide:

• One or more locations
• Maximum number of dispensaries per location

The actor:

• Searches Leafly for dispensary listings
• Extracts structured store data and reviews
• Returns one normalized dataset item per dispensary


📦 What Data This Leafly Scraper Extracts

Each dataset item represents one dispensary.

CategoryWhat’s Included
🏷 Identity & Listingid
name
slug
featureTier
flags
headerTags
description
📞 Contact & Online Presencephone
email
website
detailUrl
📍 Address & Locationaddress
city
state
country
zip
latitude
longitude
distanceMi
⭐ Ratings & Popularityrating
roundedRating
qualityRating
serviceRating
atmosphereRating
reviewCount
followerCount
💬 Reviewsreviews[].rating
reviews[].content
reviews[].createdAt
reviews[].wouldRecommend
reviews[].wouldShopAgain
reviews[].staffResponse
⏰ Hours & StatusopenNow
openUntil
openNext
schedule
schedules
currentStatuses
🚚 Delivery & PickupdeliveryEnabled
deliveryRadiusMiles
deliveryFee
deliveryOrderMinimum
pickupEnabled
pickupMinutesMinimum
pickupMinutesMaximum
💳 Payments & AccessacceptsCash
acceptsDebitCards
acceptsCreditCards
hasAtm
isAdaAccessible
🛍 Menu & OrderinghasMenuItems
lastMenuUpdate
onlineFulfillmentEnabled
inStoreCartEnabled
🖼 MediadisplayImage
coverPhotoUrl
logoUrl
photos[]
🪪 Compliance & TypelicenseNumber
isApproved
storeType
retailType

💡 All fields are normalized and nullable where the source does not expose data.


👥 Who This Actor Is For

This actor is designed for teams that care about how dispensaries operate and perform, not just what they sell. It focuses on store-level intelligence and operational signals, rather than volatile product menus or pricing.

Below are common user groups and the parts of the dataset they are most likely to use.
The dataset is intentionally rich and flexible — these are possibilities, not limitations.

📊 Data Teams & Analysts

Useful fields include:

  • ⭐ Ratings & Aggregates (rating, roundedRating, reviewCount, followerCount)
  • 🧮 Rating Breakdowns (qualityRating, serviceRating, atmosphereRating)
  • 💬 Review Content (reviews[].rating, reviews[].content, reviews[].createdAt)
  • 👤 Reviewer Metadata (reviews[].userId, reviews[].userName, reviews[].language, reviews[].upvotesCount, reviews[].badges)
  • 🗣 Staff Interaction Signals (reviews[].staffResponse, reviews[].staffResponseDate)
  • ⏱ Time-Based Signals (created, lastMenuUpdate, openNow, openUntil, openNext)
  • 📍 Location & Geography (city, state, country, latitude, longitude)
  • 🏷 Classification & Platform Signals (flags, headerTags, featureTier, storeType, retailType)

📈 Sales & Growth Teams

Useful fields include:

  • 📞 Contact & Online Presence (phone, email, website, detailUrl)
  • ⭐ Reputation Signals (roundedRating, reviewCount, reviews[].content)
  • 💬 Customer Engagement Readiness (hasChatEnabled, supportsSmsNotifications, hasReservationsEnabled)
  • 🚚 Fulfillment Options (pickupEnabled, deliveryEnabled, onlineFulfillmentEnabled)
  • 📢 Listing Visibility & Tier (featureTier, paidListing via flags)
  • ⚠️ Operational Gaps (disabled delivery, missing menus, outdated lastMenuUpdate)

🧠 Agencies & Consultants

Useful fields include:

  • 🏷 Identity & Branding (name, slug, displayImage, logoUrl, coverPhotoUrl)
  • 🌍 Market & Location Context (address, city, state, country, locationPaths)
  • 💬 Customer Feedback Narratives (reviews[].content, reviews[].createdAt)
  • 📊 Cross-Market Comparison Signals (featureTier, flags, storeType, retailType)
  • 🖼 Media & Metadata suitable for reports and client deliverables
  • 🧩 Consistent Schema across locations for repeatable analysis

🧩 Developers & Product Teams

Useful fields include:

  • 🆔 Stable Identifiers (id, slug, canonicalDispensaryId)
  • 🧱 Normalized & Nullable Fields for safe ingestion
  • ⏰ Structured Schedules & Status (currentStatuses, pickupSchedule, deliverySchedule)
  • 🗺 Geocoding & Map Support (mapMarkerLocations, primaryLocation, locations)
  • 💬 Reviews & Status Data for monitoring, alerts, or pipelines
  • 🧠 Feature Flags & Capabilities (flags, pickupEnabled, deliveryEnabled)

🔥 Use Cases

📊 Market & Competitive Research

Compare dispensaries across cities or states using ratings, reviews, listing tiers, store hours, and delivery coverage to understand regional patterns and spot competitive gaps.

🏪 Dispensary Benchmarking

Benchmark stores against peers on pickup and delivery availability, payment support, menu freshness, review volume, and customer sentiment using normalized data.

📈 Lead Generation & Sales Intelligence

Find outreach opportunities using addresses and contact details, poor or declining reviews, unanswered feedback, missing delivery or ordering options, and outdated menus.

⭐ Reputation & Review Analysis

Analyze customer feedback at scale using review content, ratings, recommendation signals, and staff responses to uncover recurring issues and improvement areas.

🗺 Location Intelligence & Spatial Analysis

Use full address data, city and state information, and latitude and longitude to build maps, heatmaps, density views, and market coverage insights.

🧩 Internal Tools, Dashboards & Automation

Plug clean, consistent dispensary data into dashboards, CRMs, BI tools, or internal systems for reporting, monitoring, alerts, and automation without manual cleanup.


⚡ Quick Start

  1. Provide one or more locations
  2. Run the actor

By default, the actor collects up to 20 dispensaries per location.


⬇️ Input Format

{
"locations": ["Chicago, IL", "Los Angeles, CA"],
"dispensariesLimit": 50
}

Locations don’t need exact formatting — city names, neighborhoods, or city–state combinations work as long as Leafly can resolve them.


📤 Output Example

{
"id": 386685,
"slug": "hi5-cannabis-dispensary",
"name": "Hi5 Cannabis Dispensary",
"created": "2025-02-26T19:33:15.967Z",
"canonicalDispensaryId": null,
"featureTier": "pro",
"description": "Experience the ultimate cannabis destination at Hi5 Cannabis Dispensary, Chicago's premier dispensary for premium recreational products. Our curated selection, conveniently located on S Cicero Ave in Crestwood, offers a tailored experience. With daily deals, exclusive offers, and a student, faculty, senior, and veteran discount program, there's something for everyone. Step into our dispensary or use our online ordering system for in-store pickup. Discover the joy of cannabis at Hi5 Cannabis Dispensary.",
"displayImage": "https://leafly-public.imgix.net/dispensary/photos/gallery386685/CFBbWtPR7amq9VOoWfEu_55b875c7-1948-4b83-a63e-b80f1251a71b",
"coverPhotoUrl": "https://leafly-public.imgix.net/dispensary/photos/gallery386685/CFBbWtPR7amq9VOoWfEu_55b875c7-1948-4b83-a63e-b80f1251a71b",
"logoUrl": "https://leafly-public.imgix.net/dispensary/photos/gallery386685/E6ilZ6QSmKezlv3fLNXC_133faae4-c6e6-4d40-ab0a-d204c305e8c3",
"detailUrl": "https://www.leafly.com/dispensary-info/hi5-cannabis-dispensary",
"address": "13352 S Cicero Ave",
"address1": "13352 S Cicero Ave",
"address2": null,
"city": "Crestwood",
"cityGeocoded": "Crestwood",
"state": "IL",
"stateGeocoded": "Illinois",
"postalCode": "60445",
"zip": "60445",
"country": "US",
"latitude": 41.6489524,
"longitude": -87.7385944,
"distanceMi": null,
"locationPaths": {
"cityDisplayName": "Crestwood",
"cityPath": "/illinois/crestwood",
"stateDisplayName": "Illinois",
"statePath": "/illinois"
},
"mapMarkerLocations": [
{
"city": "Crestwood",
"index": 0,
"label": "Crestwood,IL",
"state": "IL",
"country": "US",
"latitude": 41.6489524,
"longitude": -87.7385944
}
],
"primaryLocation": {
"lat": 41.6489524,
"lon": -87.7385944
},
"locations": [
{
"lat": 41.6489524,
"lon": -87.7385944
}
],
"rating": 3.3333,
"roundedRating": 3.3,
"qualityRating": 3,
"serviceRating": 4,
"atmosphereRating": 3,
"reviewCount": 2,
"followerCount": 9,
"openNow": false,
"openUntil": null,
"openNext": "2026-01-17 09:00:00 -0600",
"timeZone": "America/Chicago",
"currentStatuses": {
"store": {
"statusChangeAt": {
"day": "saturday",
"time": "09:00",
"type": "open"
},
"isOpen": false,
"isOpen24Hours": false
},
"delivery": null,
"pickup": {
"statusChangeAt": {
"day": "saturday",
"time": "09:00",
"type": "open"
},
"isOpen": false,
"isOpen24Hours": false
}
},
"deliveryEnabled": false,
"deliveryFee": 0,
"deliveryOrderMinimum": 0,
"deliveryRadiusMiles": 10,
"deliveryTimeEstimate": null,
"deliveryZoneRangeType": "radius",
"deliveryZonePostalCodeWhitelist": [],
"deliveryZonePostalCodeBlacklist": [],
"deliveryServiceAreaRanges": [],
"deliverySchedule": {
"friday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
},
"monday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
},
"saturday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
},
"sunday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
},
"thursday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
},
"tuesday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
},
"wednesday": {
"close": "1901-01-01T00:00:00Z",
"isOpen": false,
"open": "1901-01-01T00:00:00Z"
}
},
"scheduledDeliveryEnabled": false,
"pickupEnabled": true,
"pickupMinutesMinimum": 0,
"pickupMinutesMaximum": 15,
"pickupSchedule": {
"friday": {
"close": "1901-01-02T22:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
},
"monday": {
"close": "1901-01-02T21:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
},
"saturday": {
"close": "1901-01-02T22:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
},
"sunday": {
"close": "1901-01-02T21:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
},
"thursday": {
"close": "1901-01-02T21:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
},
"tuesday": {
"close": "1901-01-02T21:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
},
"wednesday": {
"close": "1901-01-02T21:00:00.000Z",
"isOpen": true,
"open": "1901-01-01T09:00:00.000Z"
}
},
"pickupTimeEstimate": 0,
"storeType": "dispensary",
"retailType": "dispensary",
"licenseNumber": "284.000290-AUDO",
"isApproved": true,
"offersMedicalCards": false,
"verifiesMedicalCards247": false,
"isAdaAccessible": true,
"acceptsCash": true,
"acceptsCreditCards": false,
"acceptsDebitCards": true,
"hasAtm": true,
"inStorePaymentsAccepted": true,
"onlinePaymentsAccepted": false,
"hasMenuItems": true,
"lastMenuUpdate": "2026-01-17T14:24:33.550Z",
"menuSyncOptionId": 397,
"orderIntegrationPartners": [],
"onlineFulfillmentEnabled": true,
"inStoreCartEnabled": false,
"hasChatEnabled": true,
"supportsSmsNotifications": true,
"hasReservationsEnabled": true,
"hasVeteranDiscount": true,
"organizationId": null,
"organizationName": null,
"organizationSlug": null,
"parentOrganizationId": null,
"topLevelOrganizationName": null,
"topLevelOrganizationSlug": null,
"reviews": [
{
"reviewId": "3671308",
"rating": 1.666666666666667,
"title": null,
"content": "when I walked in the door I said hello to the girl that asked for my ID she was friendly I said hello to the security guard he just looked at me rolled his eyes and kept looking at his phone... some very hateful eyes he can take them bad vibes and shove them where the sun don't shine with his angry mad at the world lame butt... imagine walking around that mad wasn't insufferable old man anyway for that reason and that reason alone I won't stop there considering the owner hires people that treat you different because of the color of your skin.",
"createdAt": "2025-05-30T12:18:03.042Z",
"language": "",
"wouldRecommend": false,
"wouldShopAgain": false,
"upvotesCount": 0,
"badges": [],
"staffResponse": null,
"staffResponseDate": null,
"userId": "5e68da6a-ead5-434f-a7cf-931338b33463",
"userName": "s........2"
}
]
}

📤 Output can be exported as JSON, CSV, or Excel for easy analysis.


⚙️ Execution & Reliability Notes

  • The actor runs at a controlled pace to minimize rate limits (429s) and blocking.
  • Additional requests are used to initialize sessions and resolve dispensary listings reliably.
  • Dispensaries are processed individually with built-in retries and defensive handling.
  • This design trades some speed for higher success rates, cleaner data, and predictable execution.

If you are also scraping dispensary data from other cannabis platforms, check out:

  • ⚡ Weedmaps Dispensary Scraper
    Scrape Weedmaps dispensary listings and extract contact details, ratings, location data, and services across multiple cities and regions.