Webperfs API

Work-in-progress

Mer information och dokumentation kommer löpande. Om inget annat anges är det JSON-format på svaren.

1. Öppna data

De data som Webperf släpper som öppna data går under licensen CC BY-SA 4.0. Det innebär att du behöver göra ett korrekt erkännande (att datakällan är Webperf) och om du delar datakällan vidare, eller bearbetar den, ska den behålla samma licens.

1.1 URL till kommuners och regioners webbplatser

De URL:ar du får ur denna API-endpoint är till startsidan för kommuners och regioners webbplatser så som det sparats hos Webperf.se
Notera att Visby kommun i denna lista ersatts av Region Gotland.

GET
https://api.webperf.se/public-sector/

Data i svaret är följande:

Poängen med URI:er till Wikidata? Länkade data!

"Länkade data är en metod för att publicera strukturerad data på ett sätt som gör det möjligt att följa kopplingar mellan informationsobjekt över flera källor. Länkade data bygger på webbstandarder som HTTP och URI:er men istället för att använda dem för att presentera information för människor är syftet att göra data läsbart för maskiner. Målet är att möjliggöra för vitt skilda aktörer att beskriva sin information på ett enhetligt sätt och därmed förenkla återanvändning och interoperabilitet."

Du kan alltså relatera information hos Webperf med Wikidata, vilket gör att du kan hämta dels ännu mer data men också koppla till olika Wikipedia-artiklar du kan vilja bearbeta. Detta gör datakällan maskinläsbar och kan bearbetas automatiserat i din egen tillämpning.

Det kan vara bra om du vill automatisera hämtningen av kommuners namn på andra språk, vilket landskap de ingår i, storlek på befolkning, deras officiell mejladress, bilder från Wikimedia och allt annat som erbjuds av Wikidata. Se exempelvis Wikidatas URI för Åmåls kommun.

Kodexempel för dig som vill komma igång med Webperfs öppna data

På Webperfs Github-konto finns kodexempel du kan återanvända eller ta inspiration ifrån.

1.2 Beständig URI (för kommuner och regioner)

En URI är en identifierare inom (länkade) öppna data-världen. Den är tänkt att vara bestående och en unik referens som du kan stöta på i datamängder från Webperf. Det står även utomstående parter fritt att använda dessa URI:er.
Du hittar URI:er i respektive listning och de går också att slå upp. En URI för Webperf följer nedan syntax och ger den publika information som finns att lämna ut.

Har du Premium? Då kan du få ut din egen data och de övergripande betygen bara du anger en API-nyckel. Se mer om URI:er för Premium.

GET
https://api.webperf.se/item/nummer

Exempelvis följande för Västra Götalandsregionen:

GET
https://api.webperf.se/item/141

Data i svaret är följande:

2. Webperfs premium API

Snabblänkar till premiums endpoints:

Enbart för dig med Webperf premium-konto av varianterna mellan eller stor. Några få har köpt till API för sitt konto, ifall det gäller dig ser du i menyn om du loggar in i Premium. Du behöver via ditt premium-konto hämta ut din API-nyckel för att komma igång. Om du inte har din API-nyckel ännu loggar du in på premium.webperf.se och klickar på Min API-nyckel i menyn för att skapa en.
Läs mer om Webperfs olika premium-konton »

Premiums API:er versionshanteras för att du ska kunna lita på att dina integrationer inte plötsligt går sönder. Respektive version stöds som minst i 6 månader och det kan komma att bli längre när API:t släpps i nyare versioner framgent.
Dock så måste du inte välja en version i dina anrop, men om du gör det så är det ett mellanled med ett decimaltal i nedan API-endpoints. Om du inte väljer en versionshanterad endpoint får du alltid den senaste versionen.

Om du inte har premium men vill provköra kan du testa det demokonto som finns för Webperf.se som sajt. Då är det API-nyckel 989089bfe899d6992ff320a97 och webbplatsens id-nummer 3843 du använder.

Söker du kodexempel för att jobba med premium-API?

Det finns kodexempel i Python på nedan länk. Det körs i Jupyter Notebook, vilket också är kompatibelt med Google Colab som miljö om du föredrar det.
Med kodexemplet kan du interagera med premium-API:t genom att fråga vilket id-nummer din webbplats har, hämta de senaste resultaten, historiska genomsnittsbetyg samt skapa en graf över genomsnittsbetygen över tid.

Detta är just kodexempel. För att ge inspiration om vad man kan göra för att komma igång med premium-API:t. Det finns säkert andra automatiseringar och integrationer du kommer att tänka på.

2.1 Hämta era senaste betyg

Här får du i JSON-format ut samma tester som du kan se på Webperf.se som testresultat.

Inledningsvis vet du kanske inte om vilket id-nummer din webbplats har. Då kan du ställa nedan API-fråga tillsammans med din API-nyckel så kommer du få reda på vilka id-nummer du har behörighet till. Detta framgår också Info-sidan om du loggar in på premium.

GET
https://api.webperf.se/stats/
https://api.webperf.se/0.1/stats/

HTTP-header
Key: api-key
Value: din-api-nyckel

När du vet om webbplatsens id-nummer så är din API-endpoint följande för att få ut statistik:

GET
https://api.webperf.se/stats/nummer
https://api.webperf.se/0.1/stats/nummer

HTTP-header
Key: api-key
Value: din-api-nyckel

Det kan se ut så här om du använder Webperf.se's demokonto:

GET
https://api.webperf.se/stats/3843

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97

Data i svaret är följande:

2.2 Historiska betyg

Webperf har samlat in testresultat i många år för vissa webbplatser. Exempelvis månatligen för alla kommuner sedan sommaren 2018. Alla betyg ingår i en sorts "kategoribetyg" vilket är det du ser redovisas i de återkommande månadsrapporterna på Webperf.se, men det kan vara jobbigt att sammanställa sina egna data ur dessa rapporter. Därför finns den här API-endpointen.

GET
https://api.webperf.se/stats_per_month/nummer
https://api.webperf.se/0.1/stats_per_month/nummer

HTTP-header
Key: api-key
Value: din-api-nyckel

Det kan se ut så här om du använder Webperf.se's demokonto:

GET
https://api.webperf.se/stats_per_month/3843

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97

Data i svaret är följande:

2.3 Testa om startsida

Vill du manuellt köra om testerna av din webbplats för att Webperf.se ska ta en ny titt? Testet gäller startsidan av din webbplats och resultatet kommer att publiceras på Webperf.se när testet är klart, samt att du via API:t kan nå de nya testerna via 2.1 Hämta era senaste betyg.

Du har ett begränsat antal krediter per 4 veckor att göra dessa omtester. Du kan inte övertrassera, det är upp till Webperf att stoppa dig. Så ös på.

Numret du anger är webbplatsens id-nummer. Om du inte känner till din webbplats id-nummer kör du API-frågan under 2.1 Hämta era senaste betyg så får du den i svaret.

POST
https://api.webperf.se/retest/
https://api.webperf.se/0.1/retest/

HTTP-header
Key: api-key
Value: din-api-nyckel

Key: site-id
Value: nummer

Valfritt – ifall du bara vill köra vissa tester:
Key: testnums
Value: [1, 2, 4, 5, 8, 9, 10, 15, 17,18, 20, 21, 22, 23, 24, 25]

Det kan se ut så här om du använder Webperf.se's demokonto:

POST
https://api.webperf.se/retest/

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97

Key: site-id
Value: 3843

Svaret på din POST är statuskod 200 om det gick bra och en textbekräftelse i stil med "Website with site-id 3843 will be retested in a couple of minutes". Om något gick fel i serverns ände är det error 500. Ifall du glömde posta med site-id eller api-key får du statuskod 400.

2.4 Starta privata tester

Det går att testa upp till 10 valfria undersidor per anrop till API:t. Antalet sidor du kan testa styrs av vilken nivå av premium din webbplats har. Ifall du har en av de större premium-varianterna har du utrymme att göra flera API-postningar i följd och sedan invänta att testresultaten kommer in under de 15-30 minuter det brukar kunna ta.
Se 2.5 Hämta lista med dina privata tester för hur du via API:t kommer över de API-anrop du gör för att nå dessa privata tester.

Du har ett begränsat antal krediter per 4 veckor att göra dessa omtester. Du kan inte övertrassera, det är upp till Webperf att stoppa dig. Så ös på.

POST
https://api.webperf.se/test_once/
https://api.webperf.se/0.1/test_once/

HTTP-header
Key: api-key
Value: din-api-nyckel
Key: site-id
Value: nummer

HTTP-body
Key: urls
Value: url1
eller
Value: url1, url2, url3 – url10

Det kan se ut så här om du använder Webperf.se's demokonto:

POST
https://api.webperf.se/test_once/
https://api.webperf.se/0.1/test_once/

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97
Key: site-id
Value: 3843

HTTP-body
Key: urls
Value: https://webperf.se/articles/nyhetsbrev-38/, https://webperf.se/tag/tillganglighet/

Svaret på din POST är statuskod 200 om det gick bra och en text i stil med "A once only test for # URL's belonging to site-id 3843 will be performed in a couple of minutes. The endpoint(s) is/are: {6481: 'https://api.webperf.se/private_stats/3843/6481', 6479: 'https://api.webperf.se/private_stats/3843/6479', 6477: 'https://api.webperf.se/private_stats/3843/6477', 6475: 'https://api.webperf.se/private_stats/3843/6475'}".

Ifall du får statuskod 400 har du överskridit din kvot för de innevarande 4 veckorna.

2.5 Hämta lista med dina privata tester

Dessa kallas privata tester eftersom de inte är åtkomliga öppet på Webperf.se eller andra användare av API:t än de med samma behörighet som du.

Med nedan API-svar får du ut URI:er för att hämta ut samtliga testresultat för en privat testad URL. Denna API-URI kräver att du anger din API-nyckel för att få ut svaret, se 2.6 Hämta testresultat för ett av dina privata tester nedan.

GET
https://api.webperf.se/private_stats/nummer
https://api.webperf.se/0.1/private_stats/nummer

HTTP-header
Key: api-key
Value: din-api-nyckel


HTTP-body
Key: urls
Value: url1
eller
Value: url1, url2, url3 – url10

Det kan se ut så här om du använder Webperf.se's demokonto:

GET
https://api.webperf.se/private_stats/3843
https://api.webperf.se/0.1/private_stats/3843

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97
Key: site-id
Value: 3843

HTTP-body
Key: urls
Value: https://webperf.se/articles/nyhetsbrev-38/, https://webperf.se/tag/tillganglighet/

Data i svaret är följande:

2.6 Hämta testresultat för ett av dina privata tester

Bara de med API-åtkomst till webbplatsen hos Webperf eller inloggade i Premium kan komma åt dessa resultat. De delas inte öppet.

GET
https://api.webperf.se/private_stats/nummer/test_id
https://api.webperf.se/0.1/private_stats/nummer/test_id

HTTP-header
Key: api-key
Value: din-api-nyckel

Det kan se ut så här om du använder Webperf.se's demokonto:

GET
https://api.webperf.se/private_stats/3843/6360
https://api.webperf.se/0.1/private_stats/3843/6360

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97

Svaret du får av API:t är i stil med vad 2.1 Hämta era senaste betyg ger dig.

2.7 Din egen URI ger dig dina senaste övergripande betyg

Denna endpoint har vissa likheter med 1.2 Beständig URI (för kommuner och regioner), men med skilnaden att det gäller din egen webbplats. Dessutom får du lite mer data eftersom du anger din API-nyckel.

Obs! Notera bindestrecket i api-keyi just detta kodexempel.

GET
https://api.webperf.se/item/nummer

Exempelvis följande för Webperfs demokonto:

GET
https://api.webperf.se/item/3843

HTTP-header
Key: api-key
Value: 989089bfe899d6992ff320a97

Data i svaret är följande:

Svaret du får av API:t är i stil med vad 2.1 Hämta era senaste betyg ger dig. Men kompletterat med noden scores.

2.8 Få en texts läsbarhetsindex (LIX)

En text kan vara mer eller mindre lätt att läsa. LIX är ett mått på detta och du med premium-API:t kan enkelt via API:t kolla dina texter. Förr eller senare kommer LIX-beräkning att inkluderas i kvotsystemet med testkrediter.

GET
https://api.webperf.se/tools/lix/
https://api.webperf.se/0.1/tools/lix/

HTTP-header
Key: api-key
Value: din-api-nyckel
Key: site-id
Value: din-webbplats-idnummer

Body Form-data
Key: content
Value: din text att läsbarhetstesta

Data i svaret är följande:

Så här kan det se ut:

[
    {
        "message": [
            52,
            "Svår, normalt värde för officiella texter"
        ]
    },
    200
]

Om något går fel kommer du istället få False till svar och en felkod.

3. Premium för webbyråer

Som webbyrå finns det en särskild premiumåtkomst. En del i det är att du kan hantera både din egen webbplats och kundernas. En annan är att det ger dig åtkomst till information som kan göra ditt säljarbete enklare. Det som är exklusivt för webbyråers premium listas nedan.

3.1 Vilka verktyg för webbanalys används hos webbplatser Webperf följer

Detta API kräver att du har Premium för webbyråer.

GET
https://api.webperf.se/webanalytics?api-key=API-nyckel

Svaret du får av API:t är en CSV-fil, separerad med semi-kolon. För knappt 4000 st webbplatser viktiga för ett digitalt Norden, främst Sverige.

Vilken utdata får du? Jo:

4. Webhook för dig med Webperf Premium

Webhooks är ett sätt att få signaler skickad till ditt API när en SaaS-tjänst har något att berätta. Som i det här fallet, att något av Webperfs tester körts och har ett testresultat till dig. Läs mer om webhooks på Webperf.se

För att dra nytta av webhooks via Webperf behöver du först och främst ha ett premiumkonto. Sätt upp en endpoint så du kan ta emot postningen från Webperf. Sedan konfigurerar du respektive webbplats inne i premium.webperf.se så vi vet var du vill ha ditt resultat skickat någonstans.

Nedan har du ett exempel på hur innehållet ser ut som du får postat till din endpoint. HTTP-anropet kommer ha en content-type med application/json och nedan payload. Du har två olika signaler om vilken sida det gäller i fallet med webhooks.

uri är adressen du i efterhand kan slå upp mot för att kolla allt om sidan så som Webperf ser på saken. Men ifall du testar många sidor kontinuerligt är det värt att veta om att för webhook finns också tested_url som direkt berättar vilken sida som testet gäller. I vanlig ordning är det vissa tester som inte utvärderar den URL:en utan istället går på din 404-sida, kollar mejlinställningar, etc. Men då vet du i alla fall vilken URL som kördes in som startpunkt.

        {
            "api_version": "undefined",
            "uri": "https://api.webperf.se/item/3843",
            "tested_url": "https://webperf.se",
            "timestamp": "2024-01-13T22:34:11.519410",
            "result_count": "1",
            "data": {
                "test_date": "2024-01-13T22:34:11.519410",
                "type_of_test": 4,
                "url": "https://webperf.se",
                "rating": 4.95,
                "check_report": "- Webbsidan kan ändå förbättras inom SEO.
                - Tryckmålen har inte lämplig storlek: 99 % av tryckmålen har lämplig storlek ( 4.40 betyg )
                - Alla bildelement har `[alt]`-attribut ( 5.00 betyg )
                - Dokumentet har en metabeskrivning ( 5.00 betyg )
                - Dokumentet har ett `<title>`-element ( 5.00 betyg )
                - Dokumentet har ett giltigt `hreflang`-värde ( 5.00 betyg )
                - Dokumentet har ett giltigt `rel=canonical`-värde ( 5.00 betyg )
                - Dokumentet har läsliga teckenstorlekar ( 5.00 betyg )
                - Dokumentet undviker plugin-program ( 5.00 betyg )
                - Har en `<meta name="viewport">`-tagg med `width` eller `initial-scale` ( 5.00 betyg )
                - Länkar har beskrivande text ( 5.00 betyg )
                - Länkarna är genomsökningsbara ( 5.00 betyg )
                - Sidan har en giltig HTTP-statuskod ( 5.00 betyg )
                - Sidan är inte blockerad från indexering ( 5.00 betyg )
                - robots.txt är giltig ( 5.00 betyg )",
                "check_report_a11y": "",
                "check_report_perf": "",
                "check_report_stand": "",
                "check_report_sec": "",
                "json_check_data": "{}"
            }
        }

5. Versionshistorik

Kort om de versioner som släppts och vad som är planen för nästa version.

6. Tips på verktyg och resurser

För att använda Webperfs öppna data kan du egentligen fortsätta använda din webbläsare. Åtminstone ifall du bara vill ladda ner data. Men för premium-API:t behöver du skicka med en API-nyckel i din förfrågan, vilket görs enklast med appen Postman om du inte bygger ditt anrop i någon utvecklingsmiljö.

Resurser: