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
name- Type
- string
- Description
Search by brand name. Partial matching supported.
- Name
category- Type
- string
- Description
Filter to brands with products in this category.
- Name
product_tags- Type
- string | string[]
- Description
Filter to brands with products matching these tags.
- Name
strain_type- Type
- string
- Description
Filter by strain type:
hybrid,indica, orsativa.
- Name
strain_name- Type
- string
- Description
Filter to brands carrying a specific strain.
- Name
state- Type
- string
- Description
Filter to brands available in a specific state.
- Name
page- Type
- number
- Description
Page number. Default:
1.
Example Requests
Search by Name
curl "https://api.cannmenus.com/v1/brands?name=Cookies&page=1" \
-H "X-Token: YOUR_API_TOKEN"
Find Edible Brands
curl "https://api.cannmenus.com/v1/brands?category=Edible&page=1" \
-H "X-Token: YOUR_API_TOKEN"
Brands with Live Resin Products
curl "https://api.cannmenus.com/v1/brands?product_tags=Live%20Resin&page=1" \
-H "X-Token: YOUR_API_TOKEN"
Indica-Focused Brands
curl "https://api.cannmenus.com/v1/brands?strain_type=indica&page=1" \
-H "X-Token: YOUR_API_TOKEN"
Response
{
"data": [
{
"id": 1042,
"name": "Cookies",
"categories": ["Flower", "Pre-roll", "Vape", "Concentrate"],
"strain_types": ["Hybrid", "Indica", "Sativa"],
"states_available": ["California", "Colorado", "Michigan", "Illinois"],
"product_count": 245,
"retailer_count": 892
}
],
"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) |
name | string | Brand name |
categories | array | Product categories this brand sells |
strain_types | array | Strain types this brand offers |
states_available | array | States where this brand's products are available |
product_count | number | Total number of products from this brand |
retailer_count | number | Number of retailers carrying this brand |
Common Workflows
Find All Products from a Brand
Use the brand name or ID with the Products endpoint:
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['name']} (ID: {brand['id']})")
print(f"Available in: {', '.join(brand['states_available'])}")
# Get products from this brand in California
response = requests.get(
f"{API_URL}/products",
headers=headers,
params={"states": "California", "brand_id": brand["id"], "page": 1}
)
products = response.json()
print(f"Found {products['pagination']['total_records']} products in California")
Compare Brand Presence Across States
# Find brands available in multiple states
response = requests.get(
f"{API_URL}/brands",
headers=headers,
params={"category": "Vape", "page": 1}
)
for brand in response.json()["data"]:
if len(brand["states_available"]) >= 5:
print(f"{brand['name']}: Available in {len(brand['states_available'])} states")
Find Brands by Product Type
# Find all brands with live resin products
response = requests.get(
f"{API_URL}/brands",
headers=headers,
params={"product_tags": "Live Resin", "page": 1}
)
print("Brands with Live Resin products:")
for brand in response.json()["data"]:
print(f"- {brand['name']}")
