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, or sativa.

  • 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

FieldTypeDescription
idnumberUnique brand identifier (use with Products endpoint)
namestringBrand name
categoriesarrayProduct categories this brand sells
strain_typesarrayStrain types this brand offers
states_availablearrayStates where this brand's products are available
product_countnumberTotal number of products from this brand
retailer_countnumberNumber 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']}")