Leefii Cannabis Data API
Free access to comprehensive cannabis data. Strains, dispensaries, deals, doctors, and laws.
The Leefii Cannabis Data API gives developers, researchers, and entrepreneurs free programmatic access to one of the most comprehensive cannabis datasets available. Whether you are building a dispensary finder, a strain recommendation engine, a cannabis news aggregator, or a compliance tool, the Leefii API delivers the structured data you need through clean, well-documented RESTful endpoints. Our database includes detailed profiles for over 5,600 cannabis strains, complete with THC and CBD percentages, terpene profiles, user-reported effects, flavor notes, and aggregate ratings collected from thousands of consumer reviews.
Beyond strain data, the API provides real-time access to more than 6,800 licensed dispensary listings across all 51 US states and territories. Each dispensary record includes verified business hours, contact information, delivery availability, accepted payment methods, and customer ratings. The deals endpoint surfaces active promotions and discounts from participating dispensaries, making it easy to build price comparison tools and deal aggregation features. For medical cannabis applications, the doctors endpoint lists over 650 verified medical marijuana physicians, filterable by state, city, and telehealth availability. The laws endpoint provides up-to-date cannabis legislation data on a state-by-state basis, covering recreational and medical legality, possession limits, home cultivation rules, and delivery regulations. All responses are returned in consistent JSON format with pagination metadata, making integration straightforward for any programming language or framework.
API Overview
Base URL
https://leefii.com/api/v1/Authentication
Include your API key in the X-API-Key request header or as a ?api_key= query parameter.
Rate Limits
Free tier: 100 requests/hour. Pro: 1,000 requests/hour. Enterprise: custom limits with SLA.
Response Format
All responses are JSON with a consistent structure including success, data, and meta fields.
Endpoints Reference
/api/v1/strainsList cannabis strains with filters for type, effects, flavors, THC/CBD content, and more.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
type | string | Filter by strain type: indica, sativa, hybrid |
effect | string | Filter by effect: relaxed, euphoric, creative, etc. |
flavor | string | Filter by flavor: earthy, citrus, berry, etc. |
thc_min | number | Minimum THC percentage |
thc_max | number | Maximum THC percentage |
limit | number | Results per page (default: 20, max: 100) |
offset | number | Pagination offset (default: 0) |
Example Response
{
"success": true,
"data": [
{
"slug": "blue-dream",
"name": "Blue Dream",
"type": "hybrid",
"thc": 21.0,
"cbd": 0.2,
"effects": ["relaxed", "euphoric", "creative"],
"flavors": ["berry", "sweet", "vanilla"]
}
],
"meta": { "total": 5632, "limit": 20, "offset": 0 }
}/api/v1/strains/{slug}Get detailed information about a specific cannabis strain by its URL slug.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
slug | string | Strain URL slug (e.g., blue-dream) |
Example Response
{
"success": true,
"data": {
"slug": "blue-dream",
"name": "Blue Dream",
"type": "hybrid",
"thc": 21.0,
"cbd": 0.2,
"effects": ["relaxed", "euphoric", "creative"],
"flavors": ["berry", "sweet", "vanilla"],
"description": "Blue Dream is a sativa-dominant hybrid...",
"terpenes": ["myrcene", "caryophyllene", "pinene"],
"rating": 4.6,
"reviewCount": 1247
}
}/api/v1/dispensariesSearch for licensed cannabis dispensaries by location, type, and features.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state | string | Two-letter state code (e.g., CA, CO) |
city | string | City name |
zip | string | ZIP code for proximity search |
type | string | recreational, medical, or both |
delivery | boolean | Filter for delivery-enabled dispensaries |
limit | number | Results per page (default: 20, max: 100) |
offset | number | Pagination offset (default: 0) |
Example Response
{
"success": true,
"data": [
{
"id": "disp_8291",
"name": "Green Valley Dispensary",
"address": "123 Main St, Los Angeles, CA 90001",
"type": "both",
"rating": 4.8,
"delivery": true,
"hours": { "mon": "9:00-21:00" }
}
],
"meta": { "total": 342, "limit": 20, "offset": 0 }
}/api/v1/dispensaries/{id}Get detailed information about a specific dispensary including hours, menu, and reviews.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Dispensary ID (e.g., disp_8291) |
Example Response
{
"success": true,
"data": {
"id": "disp_8291",
"name": "Green Valley Dispensary",
"address": "123 Main St, Los Angeles, CA 90001",
"phone": "(310) 555-0142",
"website": "https://greenvalley.example.com",
"type": "both",
"rating": 4.8,
"reviewCount": 312,
"delivery": true,
"hours": { "mon": "9:00-21:00", "tue": "9:00-21:00" }
}
}/api/v1/dealsBrowse active cannabis deals and discounts from dispensaries near you.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state | string | Two-letter state code |
city | string | City name |
category | string | Deal category: flower, edibles, concentrates, etc. |
limit | number | Results per page (default: 20, max: 100) |
offset | number | Pagination offset (default: 0) |
Example Response
{
"success": true,
"data": [
{
"id": "deal_4521",
"title": "20% Off All Edibles",
"dispensary": "Green Valley Dispensary",
"category": "edibles",
"discount": "20%",
"expires": "2026-03-01"
}
],
"meta": { "total": 89, "limit": 20, "offset": 0 }
}/api/v1/doctorsFind medical marijuana doctors and cannabis-friendly physicians in your area.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state | string | Two-letter state code |
city | string | City name |
telehealth | boolean | Filter for telehealth-enabled doctors |
limit | number | Results per page (default: 20, max: 50) |
offset | number | Pagination offset (default: 0) |
Example Response
{
"success": true,
"data": [
{
"id": "doc_1192",
"name": "Dr. Sarah Chen",
"city": "Denver",
"state": "CO",
"telehealth": true,
"rating": 4.9,
"price": 149
}
],
"meta": { "total": 47, "limit": 20, "offset": 0 }
}/api/v1/laws/{state}Get current cannabis laws, regulations, and legal status for a specific US state.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state | string | Two-letter state code (e.g., CA, CO, NY) |
Example Response
{
"success": true,
"data": {
"state": "California",
"stateCode": "CA",
"recreational": true,
"medical": true,
"possession_limit_oz": 1.0,
"home_grow": true,
"home_grow_plants": 6,
"delivery_legal": true,
"updated": "2026-01-15"
}
}/api/v1/searchUnified search across strains, dispensaries, doctors, and deals in a single query.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
q | string | Search query (required) |
type | string | Filter results: strains, dispensaries, doctors, deals |
state | string | Two-letter state code to scope results |
limit | number | Results per page (default: 20, max: 100) |
Example Response
{
"success": true,
"data": [
{ "type": "strain", "name": "Blue Dream", "slug": "blue-dream" },
{ "type": "dispensary", "name": "Blue Dream Dispensary", "id": "disp_221" }
],
"meta": { "total": 14, "limit": 20, "offset": 0 }
}Authentication
Every request to the Leefii API requires a valid API key. You can include your key in one of two ways:
Option 1: Request Header (Recommended)
X-API-Key: lf_live_your_api_key_hereOption 2: Query Parameter
https://leefii.com/api/v1/strains?api_key=lf_live_your_api_key_hereUsing the header method is recommended because it keeps your API key out of server access logs and browser history.
Rate Limits
| Tier | Rate Limit | Price | Attribution |
|---|---|---|---|
| Free | 100 requests/hour | $0 | Required |
| Pro | 1,000 requests/hour | $29/month | Optional |
| Enterprise | Custom | Contact us | Optional |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.
Code Examples
// JavaScript (fetch)
const response = await fetch(
'https://leefii.com/api/v1/strains?type=indica&limit=5',
{
headers: {
'X-API-Key': 'lf_live_your_api_key_here'
}
}
);
const data = await response.json();
console.log(data.data); // Array of strain objects
console.log(data.meta.total); // Total matching strainsResponse Format
All successful API responses follow a consistent JSON structure:
{
"success": true,
"data": [ ... ], // Array of results or single object
"meta": {
"total": 5632, // Total matching results
"limit": 20, // Results per page
"offset": 0 // Current pagination offset
}
}Error Codes
| Code | Name | Description |
|---|---|---|
400 | Bad Request | Invalid parameters or missing required fields. |
401 | Unauthorized | Missing or invalid API key. |
404 | Not Found | The requested resource does not exist. |
429 | Rate Limited | You have exceeded your rate limit. Wait and retry. |
500 | Server Error | An internal server error occurred. Contact support if persistent. |
Error responses follow this format:
{
"success": false,
"error": {
"code": 401,
"message": "Invalid or missing API key.",
"docs": "https://leefii.com/api-docs#authentication"
}
}Terms of Use
- 1.Attribution required on free tier. Any public-facing page displaying data from the Leefii API must include a visible "Powered by Leefii" text with a dofollow link to
https://leefii.com. - 2.No data resale. You may not redistribute raw API data as a standalone data product or competing API service.
- 3.Rate limits must be respected. Automated retries should include exponential backoff. Deliberate abuse of rate limits may result in key revocation.
- 4.Comply with applicable laws. You are responsible for ensuring your use of cannabis data complies with federal, state, and local regulations.
Ready to Build?
Get your free API key in seconds and start building with cannabis data today.
Frequently Asked Questions
Is the Leefii Cannabis Data API free to use?
Yes, Leefii offers a generous free tier that allows up to 100 API requests per hour at no cost. This is perfect for personal projects, prototypes, and small applications. The free tier requires a "Powered by Leefii" attribution link on any public-facing pages that use the data. Paid tiers are available for higher volume needs.
What are the rate limits for the Leefii API?
The free tier allows 100 requests per hour. The Pro tier increases this to 1,000 requests per hour for $29 per month. Enterprise plans offer custom rate limits, dedicated support, and SLA guarantees. All tiers include access to the same 8 endpoints and full dataset.
Do I need to provide attribution when using the API?
Yes, the free tier requires a visible "Powered by Leefii" attribution with a dofollow link to leefii.com on any public-facing pages that display data from the API. Pro and Enterprise tiers allow white-label use without attribution requirements.
What cannabis data is available through the API?
The Leefii API provides access to over 5,600 cannabis strains with THC/CBD content, effects, flavors, and terpene profiles; 6,800 plus licensed dispensaries with hours, ratings, and delivery options; active deals and discounts; medical marijuana doctor listings; and state-by-state cannabis law data for all 51 US states and territories.
Can I use the Leefii API for commercial applications?
Absolutely. The Leefii API is available for commercial use on all tiers. The free tier requires attribution, while Pro and Enterprise tiers allow full white-label integration. You may not resell the raw data as a competing data product, but building applications, websites, and tools that use the data is encouraged.