canonical: https://jentic.com/apis/lcboapi.com/lcboapi

# LCBO API

Jentic publishes the only available OpenAPI specification for LCBO API, keeping it validated and agent-ready. The LCBO API exposes the Liquor Control Board of Ontario product catalogue, store locations, per-store inventory levels, producer profiles, category trees, and dataset snapshots. Agents can search the catalogue by name or category, locate the nearest stores, and check whether a specific product is currently in stock at a given location. The data is read-only and free for non-commercial use.

## For AI agents

Search the LCBO product catalogue, locate Ontario LCBO stores, check live inventory levels, and pull producer and category metadata for retail and beverage applications.

## Scope

Does not handle online ordering, age verification, or delivery - use for read-only catalogue, store, and inventory lookups only.

## Capabilities

- Search the LCBO product catalogue by name, category, or producer to power discovery features
- Look up a specific product's full details including price, ABV, origin, and tasting notes
- Find nearby LCBO stores by geolocation or postal code with hours and address data
- Check per-store inventory to confirm a product is currently stocked at a chosen location
- Retrieve producer profiles to enrich product listings with vineyard or distillery context
- Browse category trees to surface curated drink lists by type, region, or varietal

## Use cases

### Local Inventory Check for a Wine App

Build a consumer wine-discovery app that tells the user which nearby LCBO stores have a chosen bottle in stock. The agent geocodes the user's address, calls /stores to find the closest locations, then queries /inventories filtered by product and store to return live stock levels with the store distance and hours.

Example prompt: Given a productId and postal code, call /stores with a geo filter, then call /inventories filtered by productId and the top 5 storeIds and return the stores with quantity > 0.

### Sommelier Recommendation Bot

Power a conversational sommelier that suggests LCBO products by varietal, region, or price band. The agent searches /products with category and price filters, retrieves tasting notes from `/products/{id}`, and presents three options ranked by price and rating. Useful for restaurants and consumer apps building over the LCBO catalogue.

Example prompt: Search /products with q='Pinot Noir' and price range $20-$40, then fetch `/products/{id}` for the top 3 results and return their tasting notes.

### Bulk Catalogue Sync via Datasets

Cache the LCBO catalogue locally for analytics or e-commerce comparison. Agents pull the latest dataset snapshot via /datasets, ingest it into a warehouse, and then use the live product and inventory endpoints only for delta lookups. Reduces request volume against the live API while keeping local data fresh.

Example prompt: Call /datasets to find the most recent snapshot, fetch `/datasets/{id}`, download the referenced file, and load it into the local products table.

### AI Agent Drinks Concierge via Jentic

An AI agent built on Jentic answers natural-language drinks questions: 'is the Penfolds Bin 389 in stock near downtown Toronto for under $90?' The agent uses Jentic to discover the matching LCBO operations, searches the product, finds the nearest stores, and checks inventory in one flow without hard-coded URLs.

Example prompt: Through Jentic, search 'find lcbo product in stock', execute /products with the product name, then chain to /stores and /inventories filtered by the resolved IDs.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/products` | Search or list products in the catalogue |
| GET | `/products/{id}` | Get full details for a specific product |
| GET | `/stores` | Search or list Ontario LCBO stores |
| GET | `/stores/{id}` | Get details for a specific store |
| GET | `/inventories` | List inventory entries by product and store |
| GET | `/categories` | Browse the category tree |
| GET | `/datasets` | List dataset snapshots for bulk download |

## Key resources

- **Products** — Full LCBO product catalogue with price, ABV, origin, and tasting notes
- **Stores** — Ontario LCBO retail locations with address, hours, and geocoordinates
- **Inventories** — Per-store stock levels keyed by product and store identifiers
- **Producers** — Vineyard, brewery, and distillery profiles linked to products
- **Categories** — Hierarchical category tree spanning wine, beer, and spirits
- **Datasets** — Periodic snapshot exports of the catalogue and inventory data

## Why Jentic

- **Setup:** Wiring the LCBO API by hand means setting the Authorization: Token header, targeting the lcboapi.com host, and paging through catalogue results yourself. Through Jentic you install once, import the LCBO API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** The LCBO API is read-only, and you choose which operations the agent may call, so you can limit it to the ones it needs, such as searching products, listing stores, and checking inventory. Every operation is a lookup, so no allowed call can change catalogue or store data.
- **Credential handling:** Your LCBO API key is stored once, encrypted, by your own Jentic One instance and applied as the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find an LCBO product in stock' or 'list Ontario liquor stores', and Jentic returns the matching LCBO operation with its input schema so the agent calls the right endpoint without browsing the docs.

## Related APIs

- **Untappd API** — Untappd provides beer ratings and check-ins; LCBO provides Ontario retail availability and pricing.
- **Systembolaget API** — Systembolaget is the Swedish state alcohol retailer with a similar product, store, and inventory model to LCBO.
- **Yelp API** — Yelp lists bars and restaurants while LCBO lists retail outlets; pairing them adds context for drinks-discovery apps.

## FAQ

### Why is there no official OpenAPI spec for LCBO API?

LCBO API does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call LCBO API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the LCBO API use?

The LCBO API uses an API key passed in the `Authorization` header in the form `Token <your_key>`. Through Jentic, the key sits in the credential vault and is added to the header at execution time, so it never enters the agent context.

### Can I check whether a product is in stock at a specific store?

Yes. Call GET /inventories with `product_id` and `store_id` filters, or use GET `/inventories/{id}` where the compound id encodes both. The response includes the current quantity, last reported time, and price at that store.

### What are the rate limits for the LCBO API?

The LCBO API does not declare rate limits in its OpenAPI spec. The service is intended for non-commercial and developer use, so cache catalogue data locally with /datasets snapshots and reserve live calls for inventory and store lookups.

### How do I find the nearest LCBO store to a postal code through Jentic?

Run `pip install jentic`, search 'find nearby lcbo stores', and execute GET /stores with the geo or postal code parameters. Jentic returns the matched stores ordered by distance with full address and hours.

### Is the LCBO API free?

The LCBO API is free for non-commercial use with an API key. Commercial use cases should review the LCBO terms at lcboapi.com - Jentic does not change those terms.

### Can I limit what my agent is allowed to do with the LCBO API?

Yes. Because Jentic One is self-hosted, you set the rules that decide which LCBO operations your agent may call, so you can allow only what it needs, such as searching products with GET /products, listing stores with GET /stores, and checking stock with GET /inventories. The LCBO API is read-only, so every permitted operation is a lookup and no allowed call can change catalogue, store, or inventory data. Your API key is applied by your own instance at execution time, so the agent can only reach the operations you have scoped.
