Brands Endpoint
Search for cannabis brands and retrieve information about their products and retail availability.
Request
GET https://api.cannmenus.com/v1/brands
Parameters
- Name
id- Type
- number
- Description
Get a specific brand by ID.
id=789
- Name
name- Type
- string
- Description
Search by brand name. Prefix matching supported.
name=Stiiizy
- Name
page- Type
- number
- Description
Page number. Default:
1. 20 results per page.
Example Requests
Search by Name
curl "https://api.cannmenus.com/v1/brands?name=Cookies&page=1" \
-H "X-Token: YOUR_API_TOKEN"
Get Brand by ID
curl "https://api.cannmenus.com/v1/brands?id=1042" \
-H "X-Token: YOUR_API_TOKEN"
Browse All Brands
curl "https://api.cannmenus.com/v1/brands?page=1" \
-H "X-Token: YOUR_API_TOKEN"
Response
{
"data": [
{
"id": 1042,
"brand_name": "Cookies",
"brand_name_aliases": ["Cookies SF"],
"preferred_brand_name": "Cookies",
"preferred_image_url": "https://images.example.com/cookies-logo.png",
"preferred_website": "https://cookies.co"
}
],
"pagination": {
"total_records": 1,
"current_page": 1,
"total_pages": 1,
"next_page": null,
"prev_page": null
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | number | Unique brand identifier (use with Products endpoint brands parameter) |
brand_name | string | Brand name |
brand_name_aliases | array | Alternative names for the brand |
preferred_brand_name | string | Preferred display name |
preferred_image_url | string | Best available brand logo URL |
preferred_website | string | Best available brand website URL |
The response includes additional fields with platform-specific data (Leafly, Weedmaps, Dutchie logos and slugs). See the API response for the full schema.
Common Workflows
Find All Products from a Brand
Use the brand ID with the Products endpoint for the fastest queries:
import requests
API_URL = "https://api.cannmenus.com/v1"
headers = {"X-Token": "YOUR_API_TOKEN"}
# Search for brand
response = requests.get(
f"{API_URL}/brands",
headers=headers,
params={"name": "Stiiizy", "page": 1}
)
brand = response.json()["data"][0]
print(f"Found: {brand['brand_name']} (ID: {brand['id']})")
# Get products from this brand in California using brand ID (fastest)
response = requests.get(
f"{API_URL}/products",
headers=headers,
params={"states": "California", "brands": brand["id"], "page": 1}
)
products = response.json()
print(f"Found {products['pagination']['total_records']} products in California")
Brand Statistics Endpoint
Get detailed statistics for a specific brand, including available retailers, filter facets, and product counts.
Request
GET https://api.cannmenus.com/v1/brands/{brand_id}/stats
Parameters
- Name
brand_id- Type
- number
- Description
The brand ID (from
/v1/brandsresponse).
- Name
states- Type
- string
- Description
Filter by states (comma-separated). Example:
states=California,Colorado
- Name
categories- Type
- string
- Description
Filter by categories (comma-separated). Example:
categories=Flower,Edible
- Name
tags- Type
- string
- Description
Filter by product tags (comma-separated). Example:
tags=Indica,Live
- Name
weights- Type
- string
- Description
Filter by weights (comma-separated). Example:
weights=3.5g,7g
- Name
retailers- Type
- string
- Description
Filter by retailer IDs (comma-separated). Example:
retailers=123,456
- Name
subcategories- Type
- string
- Description
Filter by subcategories (comma-separated). Example:
subcategories=Cartridge,Disposable
- Name
product_name- Type
- string
- Description
Filter by product name. Example:
product_name=Blue%20Dream
- Name
brand_name- Type
- string
- Description
Filter by brand name. Example:
brand_name=Cookies
- Name
display_weight- Type
- string
- Description
Filter by weight/size. Example:
display_weight=3.5g
- Name
percentage_thc- Type
- number
- Description
Filter by exact THC percentage. Example:
percentage_thc=25.5
- Name
percentage_cbd- Type
- number
- Description
Filter by exact CBD percentage. Example:
percentage_cbd=1.0
- Name
mg_thc- Type
- number
- Description
Filter by exact THC milligrams. Example:
mg_thc=100
- Name
mg_cbd- Type
- number
- Description
Filter by exact CBD milligrams. Example:
mg_cbd=50
- Name
quantity_per_package- Type
- number
- Description
Filter by package quantity. Example:
quantity_per_package=10
- Name
medical- Type
- boolean
- Description
Filter to medical products only. Example:
medical=true
- Name
recreational- Type
- boolean
- Description
Filter to recreational products only. Example:
recreational=true
- Name
min_price- Type
- number
- Description
Minimum price filter. Example:
min_price=20
- Name
max_price- Type
- number
- Description
Maximum price filter. Example:
max_price=100
Example Request
curl "https://api.cannmenus.com/v1/brands/1042/stats?states=California" \
-H "X-Token: YOUR_API_TOKEN"
Response
{
"overall": {
"categories": ["Flower", "Pre-roll", "Vape", "Concentrate"],
"subcategories": ["Cartridge", "Disposable", "Blunt"],
"tags": ["Hybrid", "Indica", "Sativa", "Live Resin"],
"weights": ["0.5g", "1g", "3.5g", "7g"],
"states": ["California", "Colorado", "Michigan"],
"retailer_ids": [123, 456, 789],
"retailers": [
{
"id": 123,
"name": "Green Leaf Dispensary",
"state": "California",
"address": "123 Main St, Los Angeles, CA 90001",
"lat": 34.0522,
"lng": -118.2437,
"phone": "(213) 555-1234",
"website": "https://greenleaf.com",
"best_menu_provider": "Dutchie",
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"license_number": "C10-0000123-LIC"
}
],
"product_count": 245
},
"filtered": {
"categories": ["Flower", "Vape"],
"subcategories": ["Cartridge"],
"tags": ["Hybrid", "Indica"],
"weights": ["3.5g"],
"states": ["California"],
"retailer_ids": [123],
"retailers": [
{
"id": 123,
"name": "Green Leaf Dispensary",
"state": "California",
"address": "123 Main St, Los Angeles, CA 90001",
"lat": 34.0522,
"lng": -118.2437,
"phone": "(213) 555-1234",
"website": "https://greenleaf.com",
"best_menu_provider": "Dutchie",
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"license_number": "C10-0000123-LIC"
}
],
"product_count": 42
}
}
Response Fields
The response contains two objects with identical structure:
overall: Unfiltered statistics for the brand across all productsfiltered: Statistics matching your filter criteria
| Field | Type | Description |
|---|---|---|
categories | array | Available product categories |
subcategories | array | Available subcategories |
tags | array | Available product tags |
weights | array | Available product weights |
states | array | States where products are available |
retailer_ids | array | IDs of retailers carrying the brand |
retailers | array | Detailed retailer information (see below) |
product_count | number | Total matching products |
Retailer Object Fields
| Field | Type | Description |
|---|---|---|
id | number | Unique retailer identifier |
name | string | Retailer name |
state | string | State |
address | string | Full address |
lat | number | Latitude |
lng | number | Longitude |
phone | string | Contact phone |
website | string | Website URL |
best_menu_provider | string | Primary menu data source |
google_place_id | string | Google Maps Place ID |
license_number | string | State cannabis license number |
Brand Retailers Endpoint
Get the retailers carrying a specific brand, with paginated results.
Request
GET https://api.cannmenus.com/v1/brands/{brand_id}/retailers
Parameters
- Name
brand_id- Type
- number
- Description
The brand ID (path parameter, from
/v1/brandsresponse).
- Name
states- Type
- string
- Description
Filter by states (comma-separated). Example:
states=California,Colorado
- Name
state- Type
- string
- Description
Filter by a single state. Example:
state=California
- Name
search- Type
- string
- Description
Search retailers by name. Example:
search=green
- Name
page- Type
- number
- Description
Page number. Default:
1.
- Name
page_size- Type
- number
- Description
Results per page. Default:
20.
Example Request
curl "https://api.cannmenus.com/v1/brands/1042/retailers?states=California&page=1" \
-H "X-Token: YOUR_API_TOKEN"
Response
Returns the brand details along with a paginated list of retailers carrying the brand.
{
"brand": {
"id": 1042,
"brand_name": "Cookies",
"preferred_brand_name": "Cookies",
"preferred_image_url": "https://images.example.com/cookies-logo.png"
},
"retailers": [
{
"id": 123,
"name": "Green Leaf Dispensary",
"state": "California",
"address": "123 Main St, Los Angeles, CA 90001",
"lat": 34.0522,
"lng": -118.2437
}
],
"pagination": {
"total_records": 45,
"current_page": 1,
"total_pages": 3,
"next_page": 2,
"prev_page": null
}
}
