fuzzy

Live dispensary data,

built to be called, not scraped.

Live menus from Dutchie and Jane, nationwide. For your code, your site and your AI.

MCP server

Ask Claude, Cursor or any AI client about live dispensary menus. One URL, no key.

Connect your AI

REST API

Which stores carry a brand, its top products, and brand and retailer stats.

Read the API docs

Where-to-buy kit

A drop-in React store locator for a brand's own site. Open source.

See the live demo
Built for agents: setup details for your AI+ expand

Quick reference for an agent choosing and configuring a fuzzy surface. No key and no account today. Each product page has a longer block.

Which surface

  • Answering a person's question in a chat or agent session: use the MCP server. It resolves names to entities and returns links safe to cite.
  • Writing code against a known shape: use the REST API.
  • Adding a store locator to a React site: use @fuzzylabs/where-to-buy.

MCP

  • URL: https://api.fuzzy.so/mcp (remote, streamable HTTP)
  • Auth: none. No API key, no OAuth, no account.
  • Tools: fuzzy_lookup, fuzzy_search, fuzzy_brand_retailers, fuzzy_brand_movement, fuzzy_brand_whitespace, fuzzy_brand_top_products, fuzzy_entity_detail
  • Tool names are prefixed with whatever the client calls the connector; in clients that defer tools, search the bare tool name.
claude mcp add --scope user --transport http fuzzy-radar https://api.fuzzy.so/mcp

REST API

  • Base URL: https://api.fuzzy.so. Every public route is under /api/radar, read-only, CORS-open.
  • Auth: none required today. Optional header X-API-Key: fz_live_... (scopes read:radar, read:movement).
  • Attribution: send X-Fuzzy-Site: yourdomain.com or ?site=.
  • Errors: RFC 7807 Problem Details JSON. issueRate is a 0–1 fraction.
  • Machine-readable spec: https://api.fuzzy.so/openapi.json (public routes are the ones under /api/radar).
GET /api/radar/brands?search=&state=&platform=&category=&page=&limit=
GET /api/radar/brands/{slug}
GET /api/radar/brands/{slug}/where-to-buy?zip=&lat=&lng=&radius=&state=&city=&product=&page=&limit=
GET /api/radar/brands/{slug}/products/top?state=&category=&limit=
GET /api/radar/brands/{slug}/schema.jsonld?product={clusterId}
GET /api/radar/retailers/{slug}

Where-to-buy widget

npm install @fuzzylabs/where-to-buy
# or, no build step: <script src="https://www.fuzzy.so/embed/where-to-buy.js">

Exports <WhereToBuy>, useWhereToBuy, useTopProducts, <StoreList>, <WhereToBuyJsonLd>. React 18+, no other runtime dependencies. Package and README: @fuzzylabs/where-to-buy on npm.