🍺 A public REST API for retrieving information about Systembolaget's products, and which products that are available in which store

Overview

🍺 systembolaget-api

A public REST API for retrieving information about Systembolaget's products, and which products that are available in which store.

🔔 NOTE

Currently in communication with Systembolaget about whether this API breaks their terms and conditions, and the API is therefore not available at this time.


version url status
v1 https://systembolaget.dcronqvist.se/v1 Uptime Robot status

But Systembolaget has removed their API for retrieving products, so how does this work?

That is correct, they no longer provide an official API for getting product information, they now only provide an API for getting information about their stores, and their providers. However, if one only spends a minute looking at the network traffic when searching for products at systembolaget.se, you'll see that the front end uses an API to retrieve all products available in a certain store.

Its product search endpoint is this: https://api-extern.systembolaget.se/sb-api-ecommerce/v1/productsearch, but it requires an API key to be used, which can be found in all requests in the network traffic, cfc702aed3094c86b92d6d4ff7a54c84 :).

I start by getting all stores through their official API for store information, and using those, I lookup all products that exist in each store by supplying a storeId parameter to their product search endpoint. Unfortunately they've restricted the amount of products per page that they return to 30, so I've had to make about ~60 requests for each of the 450 stores to get all the products. Data is recollected on a weekly basis.

GET /products

Allows for retrieving information about all products in Systembolaget's assortment. Supplying no parameters returns all products.

  • productId: number, returns the product with the corresponding product identifier.
  • category: enum[vin, öl, cider, sprit], filters out products which match the given category.
  • name: string, filters out products with names that contains the given substring. (not case-sensitive)
  • minPrice: number, filters out products which have a price that is at least the given number.
  • maxPrice: number, filters out products which have a price that is at most the given number.
  • producer: string, filters out products with producers whose name contains the given substring.

GET /stores

Allows for retrieving information about all stores that Systembolaget has, together with which products they have in that specific store. The following parameters cannot be used together, instead they should be seen as different ways of finding and looking up stores. Supplying no parameters returns all stores.

  • siteId: string, returns the store with the corresponding site identifier.
  • city: string, returns all stores in the given city, e.g. malmö. (not case-sensitive).
  • lat: float, lng: float, returns the closest store to the given coordinates. e.g lat=57.68751&lng=11.9785 would give the store located at Kapellplatsen in Gothenburg (calculates distance using the great-circle distance).
  • lat: float, lng: float, maxdist: number, returns all stores within a radius of maxdist kilometers from the given coordinates.

Suggestions or want to contribute?

Feel free to make an issue or open a PR with new stuff!

You might also like...

Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks Vaultacks is built on the Stacks Chain. It lets users upload files to Gaia, a off-chain data storage system. Vaultacks currently uses the de

Sep 14, 2022

This project contains a leader board for a game which contains players name and list and store them on API build with HTML, CSS, JS and API

Leaderboard This App is a Game Leaderboard app Which is created by JavaScript and the big picture of this application is using API. Build With 👩‍🔧 .

Dec 15, 2022

Successor of the flowchart-fun syntax. Store tabular data and graph information in the same document.

graph-selector-syntax A syntax for storing graphs and tabular data in plain text View Examples Installation npm install graph-selector Usage import {

Dec 15, 2022

The Main Purpose The main purpose of creating an anaonline information system, as an effort responsive to the management of the data of the Members of the Persis Youth based on information technology systems

landing-page-pp landing-page-pp.vercel.app #The Main Purpose The main purpose of creating an anaonline information system, as an effort responsive to

Oct 21, 2022

A wrapper for valorant-api, a third-party API for getting data within Valorant. Available on npm

valorant-wrapper A wrapper for the third-party valorant-api How to Use All endpoints can be accessed off the ValAPI class. import { ValAPI } from 'val

Nov 7, 2022

📝api: Register Employees and Products

📝api: Register Employees and Products

📝 Register Employees and Products Bem-vindo(a). Este é o desafio da 4° sprint! Opa dev tudo bem?! Este é o grupo03, que através desse repositório vem

Jan 26, 2022

AdsPower supports Local API, which has functions like reading and writing account configuration information, opening and closing browsers, searching for accounts.

AdsPower supports Local API, which has functions like reading and writing account configuration information, opening and closing browsers, searching for accounts. Besides, it can cooperate with Selenium and Puppeteer to execute browser operations automatically.

Dec 1, 2022

A rest api which scrapes data from asianembed or asianload. Made using NodeJS, Express and Cheerio.

A rest api which scrapes data from asianembed or asianload. Made using NodeJS, Express and Cheerio.

Dec 6, 2022

TV Shows Web App - A web application based on an external API which contains information about TV shows

TV Shows Web App - A web application based on an external API which contains information about TV shows. th web app let you like the shows that you like the most and comment what you think about them making use of an involvement API to save this interaction information.

Dec 17, 2022
Comments
  • Bump follow-redirects from 1.14.6 to 1.14.8

    Bump follow-redirects from 1.14.6 to 1.14.8

    Bumps follow-redirects from 1.14.6 to 1.14.8.

    Commits
    • 3d81dc3 Release version 1.14.8 of the npm package.
    • 62e546a Drop confidential headers across schemes.
    • 2ede36d Release version 1.14.7 of the npm package.
    • 8b347cb Drop Cookie header across domains.
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Daniel Cronqvist
Computer Science student at Chalmers University of Technology.
Daniel Cronqvist
A product system made with NestJS. It's a service where you list products, create products or even delete them.

Products-API A product system made with NestJS. It's a service where you list products, create products or even delete them. What I used in this proje

Luiz Sanches 4 May 18, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A REST API which provides you the information of any discord account including their Spotify & VS-Code activity!

Friday A REST API which provides you the information of any discord account including their Spotify & VS-Code activity! This is an open sourced reposi

Ayan 5 Jan 4, 2023
Auto-preload multiple relationships when retrieving Lucid models

Adonis Auto-Preload Auto-preload multiple relationships when retrieving Lucid models Pre-requisites Node.js >= 16.17.0 Installation npm install @melch

Oussama Benhamed 25 Nov 26, 2022
This is a project to make the supabase REST API available from PrismaClient.

sb-prisma ?? This project is experimental and not yet stable, so please use with caution. We look forward to your contributions. ⚠️ For non-node runti

AijiUejima 9 Jul 6, 2022
This is a vanilla Node.js rest API created to show that it is possible to create a rest API using only vanilla Node.js

This is a vanilla Node.js rest API created to show that it is possible to create a rest API using only vanilla Node.js. But in most cases, I would recommend you to use something like Express in a production project for productivity purposes.

Eduardo Dantas 7 Jul 19, 2022
🚌 A Node.js API to access public transport information in Lisbon using data provided by Carris Metropolitana

?? Carris Metropolitana API A Node.js REST API built to easily access and search public transport information in Lisbon using data provided by Carris

Márcia Martins 4 Jun 21, 2022
This simple extension can automatically load NBN availability information for properties on realestate.com.au & domain.com.au including technology type, maximum line speed, and co-existance status if available.

NBN Availability Check Chrome Extension This simple extension can automatically load NBN availability information for properties on realestate.com.au

Luke Prior 17 Aug 17, 2022