Skip to content

About LCBO.dev

LCBO.dev is a GraphQL API for LCBO product, store, and inventory data. This page explains why it exists, how it's built, and the design decisions that make it work.

Why I Built This

Years ago when I was learning to code, I found Carsten Nielsen's LCBO API. I used it to build my first real project, an app to find the cheapest beer in stock nearby. It worked, people used it, and I was hooked on building stuff.

For over a decade, Carsten maintained the API, enabling countless developers to build hackathon projects and learning experiments. Sadly, he passed away in 2019 after a battle with cancer.

His work showed us what's possible when someone takes the time to make public data accessible. LCBO.dev is my way of honoring that legacy and making sure this resource stays available for the next generation of developers learning to build things.

Design Philosophy

Free and Available

I'm using Cloudflare Workers and D1 to keep this running at basically zero cost, so it can stay free indefinitely. Whether you're learning to code or building something serious, I want this to just work and be available.

Why GraphQL

I chose GraphQL for the richness of its ecosystem and the strict contract it provides:

Rich Ecosystem

  • Mature tooling and client libraries
  • Type generation for any language
  • Built-in documentation through introspection

Strict Contract

  • Schema defines exactly what's available
  • More predictable usage for clients
  • Breaking changes are explicit

Edge Network

Running on Cloudflare's edge network means low latency (~150ms), no single point of failure, and consistent performance globally.

No Authentication

No API keys, no OAuth. Just send queries and get data. Rate limits are enforced per unique client (60 requests per minute).

Data Sources

LCBO.dev sources data from publicly available LCBO information:

  • Product catalog (names, prices, descriptions, ...)
  • Store locations and hours
  • Inventory levels
  • Category hierarchy

Data Freshness:

  • Products: Updated daily
  • Stores: Updated monthly
  • Inventories: Updated daily
  • Historical: Available from Dec 2025 (⚠️ EXPERIMENTAL - schema subject to change)

Important Notice

LCBO.dev is not affiliated with, endorsed by, or connected to the Liquor Control Board of Ontario (LCBO) or the Government of Ontario in any way.

This is an independent, third-party API service providing access to publicly available LCBO data. LCBO.dev operates independently and is not an official LCBO service.

Future Plans

Short Term

  • Stabilize historical data API (currently experimental)
  • Add product images
  • Improve search relevance

Long Term

  • Price alert webhooks
  • Advanced analytics

Support

LCBO.dev is provided free of charge with no warranty. It's a side project maintained in my spare time.

If you find it useful:

  • Build something cool with it
  • Share it with other developers

Credits

  • Carsten Nielsen - Original LCBO API creator (2009-2019)
  • Cloudflare - Generous free tier that makes this possible
  • GraphQL Community - Tools and libraries
  • You - For building things with this API

Next Steps

Ready to build something?

Whether you're learning to code or building something serious, I want this to just work and be available. Go build something 🙂