Systembolagets data och Systemet API – skål för öppen data

Systembolaget har ett öppet API där man kan komma åt information om bolagets sortiment och information om enskilda butiker. Tyvärr går inte att bara hämta ut röda viner eller information om en speciell ale. Det är allt eller inget är det som gäller eftersom Systembolagets API är inte så mycket ett API som tre stora nerladdningsbara filer, i XML- eller Excelformat. Dessa filer är extremt långsamma att ladda ner och inte så praktiska att jobba med. Som tur är så är detta ett problem som redan har en lösning…

Systemet API – hämta endast den data du vill ha

Med Systemet API så kan man hämta endast de produkter man är intresserad av, tex endast whisky eller endast vita viner som kostar max 80 kr. Man kan också hämta ut detaljerad information om en enskild produkt. Det är samma data som är tillgänglig direkt via Systembolagets filer men organiserad på ett mer lättanvändbart sätt.

Vill man hämta ut alla produkter som kostar max 10 kr (fint ska det va!), med en max volym på 33cl och sortera på billigast pris så ser anropet ut så här:

<a href="http://systemetapi.se/product.json?max_price=10&max_volume=0.33&order_by=price&order=ASC">http://systemetapi.se/product.json?max_price=10&max_volume=0.33&order_by=price&order=ASC</a>

Tillbaka får man JSON, tex:

    {
        article_id: "338516",
        name: "San Miguel",
        name_2: "0,0%",
        price: "9",
        volume: "0.25",
        price_per_liter: "36",
        type: "Alkoholfritt, Öl",
        packaging: "",
        closure: "",
        origin: "Spanien",
        origin_country: "Spanien",
        producer: "San Miguel",
        year: "0",
        alcohol: "0",
        alcohol_percent: "0%",
        apk: "0",
        ecological: "0",
        koscher: "0"
    }

Från exporterade filer till användbart API

APIet är skrivet av Karl RoosVimea med hjälp av PHP, MySQL och hans egenutvecklade ramverk Solidocs. Det började med att en av Karls kollegor ville bygga en APK-app (milliliter alkohol per krona) och behövde en backend, resultatet är ett API som vi alla kan använda. I framtiden så kommer han att lägga till butiksinformation, förbättra filtrerings och sorteringsalternativen samt att lägga till historik på prisförändringar.

Själv tycker jag att det är bra jobbat av Karl att ta intressant data, organisera den och göra den tillgänglig på ett mer användbart sätt. Det vinner alla på, inklusive Systembolaget som får ett bra API utan att behöva investera tid och resurser på det. Förhoppningvis så kommer inte Systembolaget att reagera negativt på Karls jobb. Han har försökt får ett svar från dem om man får utveckla ett API ovanpå deras filer, men han har ännu inte fått något konkret svar.