Leefii Cannabis Data API

Free access to comprehensive cannabis data. Strains, dispensaries, deals, doctors, and laws.

8
Endpoints
100
Requests/Hour Free
Real-Time
Data

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

GET/api/v1/strains

List cannabis strains with filters for type, effects, flavors, THC/CBD content, and more.

Query Parameters

ParameterTypeDescription
typestringFilter by strain type: indica, sativa, hybrid
effectstringFilter by effect: relaxed, euphoric, creative, etc.
flavorstringFilter by flavor: earthy, citrus, berry, etc.
thc_minnumberMinimum THC percentage
thc_maxnumberMaximum THC percentage
limitnumberResults per page (default: 20, max: 100)
offsetnumberPagination 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 }
}
GET/api/v1/strains/{slug}

Get detailed information about a specific cannabis strain by its URL slug.

Query Parameters

ParameterTypeDescription
slugstringStrain 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
  }
}
GET/api/v1/dispensaries

Search for licensed cannabis dispensaries by location, type, and features.

Query Parameters

ParameterTypeDescription
statestringTwo-letter state code (e.g., CA, CO)
citystringCity name
zipstringZIP code for proximity search
typestringrecreational, medical, or both
deliverybooleanFilter for delivery-enabled dispensaries
limitnumberResults per page (default: 20, max: 100)
offsetnumberPagination 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 }
}
GET/api/v1/dispensaries/{id}

Get detailed information about a specific dispensary including hours, menu, and reviews.

Query Parameters

ParameterTypeDescription
idstringDispensary 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" }
  }
}
GET/api/v1/deals

Browse active cannabis deals and discounts from dispensaries near you.

Query Parameters

ParameterTypeDescription
statestringTwo-letter state code
citystringCity name
categorystringDeal category: flower, edibles, concentrates, etc.
limitnumberResults per page (default: 20, max: 100)
offsetnumberPagination 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 }
}
GET/api/v1/doctors

Find medical marijuana doctors and cannabis-friendly physicians in your area.

Query Parameters

ParameterTypeDescription
statestringTwo-letter state code
citystringCity name
telehealthbooleanFilter for telehealth-enabled doctors
limitnumberResults per page (default: 20, max: 50)
offsetnumberPagination 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 }
}
GET/api/v1/laws/{state}

Get current cannabis laws, regulations, and legal status for a specific US state.

Query Parameters

ParameterTypeDescription
statestringTwo-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"
  }
}
GET/api/v1/search

Unified search across strains, dispensaries, doctors, and deals in a single query.

Query Parameters

ParameterTypeDescription
qstringSearch query (required)
typestringFilter results: strains, dispensaries, doctors, deals
statestringTwo-letter state code to scope results
limitnumberResults 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_here

Option 2: Query Parameter

https://leefii.com/api/v1/strains?api_key=lf_live_your_api_key_here

Using the header method is recommended because it keeps your API key out of server access logs and browser history.

Rate Limits

TierRate LimitPriceAttribution
Free100 requests/hour$0Required
Pro1,000 requests/hour$29/monthOptional
EnterpriseCustomContact usOptional

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 strains

Response 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

CodeNameDescription
400Bad RequestInvalid parameters or missing required fields.
401UnauthorizedMissing or invalid API key.
404Not FoundThe requested resource does not exist.
429Rate LimitedYou have exceeded your rate limit. Wait and retry.
500Server ErrorAn 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.