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

FieldTypeDescription
idnumberUnique brand identifier (use with Products endpoint brands parameter)
brand_namestringBrand name
brand_name_aliasesarrayAlternative names for the brand
preferred_brand_namestringPreferred display name
preferred_image_urlstringBest available brand logo URL
preferred_websitestringBest available brand website URL

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/brands response).

  • 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 products
  • filtered: Statistics matching your filter criteria
FieldTypeDescription
categoriesarrayAvailable product categories
subcategoriesarrayAvailable subcategories
tagsarrayAvailable product tags
weightsarrayAvailable product weights
statesarrayStates where products are available
retailer_idsarrayIDs of retailers carrying the brand
retailersarrayDetailed retailer information (see below)
product_countnumberTotal matching products

Retailer Object Fields

FieldTypeDescription
idnumberUnique retailer identifier
namestringRetailer name
statestringState
addressstringFull address
latnumberLatitude
lngnumberLongitude
phonestringContact phone
websitestringWebsite URL
best_menu_providerstringPrimary menu data source
google_place_idstringGoogle Maps Place ID
license_numberstringState 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/brands response).

  • 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
  }
}