leafly.com APIleafly.com ↗
Access Leafly data via API: cannabis strains with terpene and effect filters, dispensary locations, product menus with THC/CBD content, and brand listings.
curl -X GET 'https://api.parse.bot/scraper/a1bdb45f-d7d8-419e-b184-5ff3e3e1608e/list_strains?skip=0&take=3' \ -H 'X-API-Key: $PARSE_API_KEY'
List cannabis strains with pagination and optional filters. Returns an array of strain objects and a total count.
| Param | Type | Description |
|---|---|---|
| skip | integer | Number of results to skip for pagination. |
| take | integer | Number of results to return. |
| effect | string | Filter by effect (e.g., 'creative', 'relaxed', 'euphoric', 'sleepy'). |
| flavor | string | Filter by flavor (e.g., 'berry', 'citrus', 'earthy'). |
| terpene | string | Filter by terpene (e.g., 'myrcene', 'limonene', 'caryophyllene'). |
| helps_with | string | Filter by medical symptom (e.g., 'pain', 'stress', 'anxiety'). |
| strain_type | string | Filter by strain type: 'indica', 'sativa', or 'hybrid'. |
{
"type": "object",
"fields": {
"total": "integer total count of matching strains",
"strains": "array of strain summary objects with name, slug, category, effects, and terps"
},
"sample": {
"data": {
"total": 6000,
"strains": [
{
"id": 512205,
"name": "Hash Burger",
"slug": "hash-burger",
"category": "Hybrid"
}
]
},
"status": "success"
}
}About the leafly.com API
The Leafly API exposes 9 endpoints covering cannabis strains, dispensaries, product menus, and brands. Use list_strains to filter thousands of strains by effect, flavor, terpene, or medical symptom, get_dispensary_menu to retrieve live menu items with THC content and pricing, and search_site to query across strains, dispensaries, brands, and articles in a single call.
Strain Data
The list_strains endpoint accepts filters for strain_type (indica, sativa, hybrid), effect (e.g. creative, sleepy), flavor (e.g. berry, citrus), terpene (e.g. myrcene, caryophyllene), and helps_with (e.g. pain, anxiety). Each strain object in the response includes name, slug, category, effects, and terpene data. For more depth, get_strain_detail takes a slug and returns the full description, cannabinoid data, images, and an array of user reviews. Keyword-based lookup is available via search_strains, which accepts a query string and supports pagination with skip and take.
Dispensaries and Menus
list_dispensaries accepts lat and lon coordinates and returns dispensary summaries including name, address, rating, review count, and open status. get_dispensary_detail resolves a dispensary slug to its full record: address, operating hours, schedule, photos, and delivery information. get_dispensary_menu takes a dispensary slug and returns paginated menu items, each with name, price, product category, THC and CBD content, associated strain, brand, and variants. For individual products, get_product_detail requires the menu item ID, store slug, and product slug, and returns the full product record alongside dispensary context and similar items from the same menu.
Brands and Global Search
list_brands pages through Leafly's cannabis brand catalog, returning id, slug, name, description, logo URL, and tagline for each brand. search_site provides a single entry point for cross-entity search, returning results grouped into five typed arrays: strain, dispensary, brand, menuItem, and article. This is useful when the category of a search result is unknown in advance.
- Build a strain finder that lets users filter by terpene, effect, and strain type using
list_strainsparameters - Display dispensary hours, delivery availability, and photos on a cannabis locator map using
get_dispensary_detail - Aggregate product pricing and THC content across multiple dispensaries with
get_dispensary_menu - Feed a recommendation engine with strain cannabinoid profiles and user review sentiment from
get_strain_detail - Index the Leafly brand catalog for a cannabis brand discovery tool using
list_brands - Power an autocomplete search bar that returns strains, dispensaries, and brands together via
search_site - Track menu availability and price changes over time by polling
get_dispensary_menufor specific store slugs
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Leafly have an official developer API?+
What does `get_strain_detail` return beyond basic strain info?+
get_strain_detail returns the full strain object including description, effects, terpene breakdown, cannabinoid data, and images, plus a reviews array containing user-submitted review objects for that strain.How does `search_site` differ from `search_strains`?+
search_strains returns only strain objects matching a keyword. search_site returns results grouped into five typed arrays — strain, dispensary, brand, menuItem, and article — making it the right choice when you need cross-entity results from a single query.Does the API cover dispensary inventory history or price change tracking?+
get_dispensary_menu, including price, THC content, and variants, but does not expose historical pricing or inventory snapshots. You can fork this API on Parse and revise it to add a polling-based historical tracking endpoint.Are deals, coupons, or loyalty program data available from dispensaries?+
get_dispensary_detail and get_dispensary_menu endpoints cover hours, delivery info, product pricing, and menu items, but do not expose dispensary deals, coupons, or loyalty rewards. You can fork this API on Parse and revise it to add an endpoint targeting that data.