20 APIer på 20 minuter från Meet ‘n’ Hack

hacket Meet ‘n’ Hack i Malmö så körde jag en presentation av 20 APIer på 20 minuter. Det är inte första gången jag gjort det, men precis som tidigare så tycker jag att det blev det lyckat. Målet är att inspirera genom att visa exempel på praktiska, roliga och tankeväckande APIer.

Vem är den här Andreas egentligen?

Eftersom 20 minuter är kort tid så hoppade jag direkt in på några APIer som kan hjälpa till och förklara vem jag är. Först ut är en personlig favorit Fullcontact. Skicka in en emailadress och få tillbaka en hel massa information om personen bakom adressen. I mitt fall så vet de vad jag heter, vilka sajter jag driver ( Dopter.se, Mashup.se mfl) och att jag är en 35-44 år gammal Helsingborgare. De vet också vilket användarnamn jag har på MySpace, vilket är mer än vad jag själv kommer ihåg.

Vill man veta lite mer om vilka typer av människor jag hänger med på Twitter så kan man använda APIet från Twittercensus. Via ett användarnamn (tex @andreaskrohn) så kan man få veta vad personerna jag följer och de som följer mig egentligen placerar mig i för grupp. Själv tillhör jag klistret “journalister, konsulter, sociala medier-bubblan”. Jaikububblan FTW helt enkelt!

Om jag ringer dig och du inte svarar så vet du inte mycket om mig, kanske endast mitt telefonnummer. Inte vill man ringa tillbaka till någon man inte vet vem det är och framförallt vill man inte ringa tillbaka till telefonförsäljare. Skicka in mitt nummer i Truecallers API, där de har över 600 miljoner telefonnummer från hela världen, så får du veta att jag heter Andreas Krohn och inte anses vara spammare (dvs telefonförsäljare).

Ett av de projekt jag jobbar på just nu är att bygga ett API till svenska API-katalogen där det idag är listat över 250 svenska APIer. Det är ännu inte klart men när det väl är klart så kommer det alltså att finnas ett API för att hitta svenska APIer samt att lista vilka appar som använder dessa APIer.

Mat & dryck

Något som jag verkligen gillar är när deltagare på hackathons väljer som projekt att ta fram nya APIer som andra utvecklare sedan kan använda i sina skapelser. Ett bra exempel är MatAPI som Webbgaraget tog fram på Stockholm Startup Hack. Det är ett API som tillgängliggör data från Livmedelsverkets livsmedelsdatabas på ett enkelt och användbart sätt.

Äter man så blir man törstig, blir man törstig så behöver man SystemetAPI där man kan söka efter drycker ifrån Systembolagets sortiment. Systembolaget har ett eget API som i princip är en databasdump. SystemetAPI bygger helt på denna data men gör på samma sätt som MatAPI datan lättare att använda och att söka i.

Run Forest run!

Efter att ha spenderat för mycket tid att efterforska vem jag är och med att äta och dricka så kanske man behöver ut och röra sig. För att motivera sig ge sig ut i joggingspåret så hjälper det en del människor att ha detaljerad statistik på antalet steg man tagit, hur långt man sprungit etc. Denna information kan man samla in via mobilappar, olika armband med coola namn eller via sensorer i sina skor. Sedan kan man komma åt datan via RunKeepers API, där man också kan komma åt saker som information om hur man sovit och vad man ätit.

Vill man inte ut och springa så kan man sätta sig framför TVn och titta på andra som springer. Med Malmöbaserade Everysport så kan man spara mycket tid, istället för att sitta och titta på sport så kan man snabbt få fram resultaten från olika events och matcher via deras API. De har data från 90000 lag och 1,5 miljoner matcher.

En del av alla de matcher Everysport har statistik för har visats på SVT Play, men tyvärr har inte SVT Play något API. Som tur var så har Peppe Bergqvist skapat just ett sådant API. Han skrapar SVT Plays webbsajt och publicerar sedan metadata om varje serie och program via sitt API. APIet ligger sedan till grund för en Windows Phone app och en Boxee box app.

Statistik om allt

Att skrapa data från en webbsajt kan av vissa ses som ett brott, tex så tyckte posten det när skrapad data från deras sajt låg till grund för ett Postnummer-API. Som tur är så är det iaf inget officiellt brott, men om man är intresserad av brott och brottsstatistik så har SVT Pejl sammanställt och massa statistik som de presenterar på ett användarvänligt sätt. Det är ett mycket bra exempel på datadriven journalistik. De har inget officiellt API men det går bra att få all deras information i JSON-format genom att klicka “ladda ner” under varje graf på SVTs brottspejl.

Statistik om brott i all ära, men vill man ha riktigt tråkig statistik så är det Statistiska Centralbyråns API som gäller. Där finns det gott om information om Sveriges befolkning, landets ekonomi, sjukvården, forskning med mera. Det är värdefull statistik, men ibland vill man ha något lite mer personligt. Via Energimolnet så kan man få tillgång till hur mycket el man konsumerar samt exakt hur mycket denna el kostar timme för timme. Denna information finns tillgänglig antingen via deras mobilapp eller deras API.

Lysande ideer

Elektricitet kan man ju använda för att lysa upp sina hem, men hittills har lampor varit deprimerande API-lösa. Detta håller nu på att fixas, bla med Philips huelampor. De lamporna kan man givetvis tända och släcka via ett API, men man kan dessutom ställa in ljuset att vara av vilken färg som helst längs hela färgskalan. Det öppnar för en hel massa möjligheter – tex att ställa in färgen på lamporna i ditt hus så att de matchar filmen du tittar på just nu eller så att det blinkar med i takten på musiken du lyssnar på.

Hue är coolt, men de är inte värda ett nobelpris. Det vet jag efter att jag har sökt i Nobelprisets API. Via det APIet kan man söka efter nobelpristagare baserat på saker som tex land, kön eller ålder. Ett av de intressanta problemen i utvecklingen av detta API var att många nobelpristagare är från länder som inte längre finns, tex Sovjetunionen eller Östtyskland. Vi var tvungna att matcha dessa historiska länder med dagens länder, vilket inte alltid var helt enkelt. Vill ni veta mer om detta API så har jag tidigar bloggat om viktiga val i utvecklingen av Nobelprisets API.

APIer för utvecklare

Alla dessa APIer är fantastiska, men ibland så vill man utveckla ett eget API. Ett enkelt sätt är att använda sig av CouchDB, en NoSQL databas där all data är lagrad i dokumentform. All data i databasen blir automatiskt tillgängligt via ett API, vilket gör att man med Couch snabbt kan bygga en API-backend till någon annan tjänst. Med hostingtjänster som Cloudant så får man dessutom nyckelhantering, sökning och en massa andra saker ovanpå Couch egen funktionalitet.

Utvecklar man sitt eget finfina API så vill man ju givetvis veta hur mycket det används och vilka delar av APIet som används. Det finns många sätt att göra det, ett enkelt sätt är Mixpanel. Man skickar in information till dem via deras API eller programmeringsbibliotek varje gång en API-metod används och i gengäld så får man snygga grafer och bra statistik. Har man inte alltför stor trafik så kostar det dessutom gratis, och det är ju ett bra pris.

Vill man komma åt data från en källa som inte har ett API, tex en webbsajt, så finns det flera alternativ. Man kan skriva egen kod för att skrapa sidan som Peppe gjorde med SVT Play, eller så kan man använda lösningar som import.io för att bygga APIer baserat på en webbsajt. Det var via ett sådant web scraping företag som jag först började intressera mig för APIer, nämligen när jag var produktchef på Kapow.

Ibland vill man skrapa en sida som ligger bakom ett CAPTCHA, dvs som kräver bevis att man faktiskt är en människa. Även detta är ett problem som man kan komma runt relativt enkelt med hjälp av APIer, i detta fall så är det ett API från Death by CAPTCHA. Betala dem, skicka in en bild och få tillbaka texten som står på bilden. Jobbet görs inte av maskiner, det görs av “CAPTCHA decoders”, dvs en massa människor som sitter någonstans i världen och stirrar på CAPTCHAs hela dagarna. Ett maskin-API för mänsklig aktivitet helt enkelt.

Finkultur

CAPTCHA sweatshops tillhör nätets mörkare sidor så låt oss ta något mer upplyftande som avslutning, nämligen interners motsvarighet till finkultur. Cheezburger har ett API så det går att få alla LOLCats man kan behöva via REST. Det går också att skicka in sina egna roligheter om man tycker de når upp till I Can Has Cheezburger kvalité.

Många anser att LOLCats är det bästa som kommit från internet, men de har fel. Det finns en man som kan vinna över captchas, LOLCats, Nobelpris och allt annat… nämligen Mr Chuck Norris. Som tur är finns det en hel massa Chuck Norris skämt samlade i The Internet Chuck Norris Database och denna fantastiska databas har dessutom ett API. Via detta API kan man hitta godbitar som ‘Chuck Norris doesn’t need sudo, he just types “Chuck Norris” before his commands.‘ och ‘Chuck Norris’s first program was kill -9‘.

Det var 20 APIer i ett inlägg som tog mycket mer än 20 minuter att skriva. Tusen tack till Media Evolution som arrangerade Hack ‘n’ Meet. Vill ni se en inspelning från presentationen så finns den på bambuser, men tyvärr är ljudkvaliten riktigt dålig. Ni hittar också alla slides på slideshare.net/AndreasKrohnEtt mycket bättre sätt att se mig presentera är att komma på något Nordic APIs event eller att bjuda in mig till era egna events :)

Bilder från The Noun Project, Gentleface, Webalys, Vectorninjas och inte minst Monolinea.

Truecaller och Nobelmedia är mina kunder och jag har hjälpt dem med deras APIer via mitt företag Dopter, men det är inte därför de är med i detta blogginlägg. De är med för att de har bra, användbara och roliga APIer.