Estonian Drink Prices.
One API.
Real-time beer, cider, and energy drink prices from 5 Estonian retail chains. Search, compare, and build with structured product data.
How It Works
Register
Create a developer account and get your OAuth client credentials in seconds.
Authenticate
Exchange your credentials for a Bearer token using the OAuth 2.0 Client Credentials flow.
Query
Search products, compare prices, filter by store or category — all via clean REST endpoints.
curl "https://alkoholiks-api.vercel.app/api/v1/products/search?q=saku" \
-H "Authorization: Bearer alk_at_..."{
"data": [{
"name": "Saku Originaal 4,7% 0,5l",
"store": "selver",
"regularPrice": 1.35,
"cardPrice": 1.19,
"drinkType": "õlu"
}],
"meta": { "total": 42, "request_id": "req_a1b2c3d4" }
}What You Get
Structured, normalized product data from Estonia's major retail chains.
Cross-Store Search
Search by name or brand across Selver, Prisma, Rimi, Barbora, and Cityalko in a single API call.
Rich Product Data
Prices, volumes, brands, country of origin, sale status, unit prices, loyalty card discounts — all in one schema.
Powerful Filtering
Filter by store, category, brand, country, price range, or sale status. Paginate with limit/offset.
Store Metadata
Product counts, last-updated timestamps, and store info for each supported retailer.
Category Breakdown
Beer, Cider, Long Drink, Cocktails, Energy Drinks — with live product counts per category.
OAuth 2.0 Authentication
Industry-standard Client Credentials flow. Get a token, attach it as a Bearer header, done.
Retail Coverage
| Store | Products | Loyalty Pricing | Status |
|---|---|---|---|
| Selver | 280+ | Selver Card | Live |
| Prisma | 700+ | — | Live |
| Rimi | 290+ | — | Live |
| Barbora | 380+ | — | Live |
| Cityalko | 220+ | — | Live |
Built for Developers
OAuth 2.0, OpenAPI spec, TypeScript SDK, rate limit headers on every response. If you've used Stripe or Twilio, you'll feel at home.
Client Credentials grant. Opaque tokens with 1h TTL. Instant revocation.
Full spec with interactive Swagger UI. Try endpoints from the browser.
Auto token management, rate limit retries, fully typed responses.
Clear rate limits with X-RateLimit headers. Never guess your quota.
import { AlkoholiksAPI } from "alkoholiks-sdk";
const api = new AlkoholiksAPI({
clientId: "alk_cid_...",
clientSecret: "alk_sec_...",
});
const results = await api.searchProducts("monster");
console.log(results.data); // 61 products across 5 storesReady to build?
Create your developer account, get OAuth credentials, and make your first API call in under a minute.
Get Your API Key