Providers
List supported POS providers for the Normalization API. Providers with dedicated normalizers have full field mapping for best results.
Request
GET https://api.cannmenus.com/v1/providers
Example
curl "https://api.cannmenus.com/v1/providers" \
-H "X-Token: YOUR_API_TOKEN"
Response
{
"providers": [
{
"name": "dutchie",
"display_name": "Dutchie",
"is_specific": true
},
{
"name": "generic",
"display_name": "Generic",
"is_specific": false
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
name | string | Provider identifier to use in API requests |
display_name | string | Human-readable provider name |
is_specific | boolean | true = dedicated normalizer with full field mapping. false = uses heuristic-based detection. |
Choosing a Provider
Dedicated Normalizers (is_specific: true)
Use the specific provider name when your raw data comes from a supported POS system. Dedicated normalizers know the exact field structure and produce the most accurate results.
{
"provider": "dutchie",
"products": [...]
}
Generic Normalizer (is_specific: false)
Use "generic" when your POS system doesn't have a dedicated normalizer. The generic normalizer uses heuristics to detect common field name patterns and extract product data from any JSON structure.
{
"provider": "generic",
"products": [...]
}
When using the generic normalizer with CSV files, providing a column mapping improves accuracy by explicitly telling the normalizer which columns map to which fields.
Upcoming Providers
Dedicated normalizers for the following providers are being activated:
- iHeartJane
- Leafly
- Weedmaps
- Buddi
- Trulieve
Until these are active, use "provider": "generic" for these POS systems.
