Oberoende informationsresurs sedan 2026
Utvecklare

API & Datakällor

Dokumentation över SVERAs datakällor, dataformat och uppdateringsintervall. För utvecklare och tredjeparter som vill använda eller integrera med svensk båtracingdata.

Hur SVERA samlar data

SVERA samlar automatiskt in data från flera publika källor med egenutvecklade scrapers. Datan cachas lokalt som JSON, bearbetas av builders som genererar statiska HTML-sidor, och publiceras via SFTP. Alla källor är öppna och publika — vi lagrar inga personuppgifter utöver vad som redan publicerats av officiella förbund.

Dataflöde

// 1. Scrapers hämtar rådata från externa källor Scraper → bot/data/*.json // 2. Builders läser cachad JSON och genererar HTML Builder → *.html // 3. Innehållskontroll — uppdaterar ”Uppdaterad”-datum vid ändringar check_content_changes.py → hash-jämförelse // 4. Deploy laddar upp till webbhotellet deploy.sh → svera.nu

Datakällor

KällaÅtkomstIntervallBeskrivning
WebTracking.se
/pbl
Publik 48h Tävlingslogg för svensk offshore-racing. Inkluderar race-id, båt, förare, klubb, tider och placeringar. Primär källa för resultat.html.
SVEMO TAM
tam.svemo.se
Autentiserad 48h Svenska Motorbåtsförbundets tävlingsadministration. Kalender med datum, plats, arrangör, grenar och status för kommande tävlingar. Kräver inloggning (ASP.NET + CSRF). Används inte för resultat: den inloggade vyn är kontoavgränsad och visar bara den gren licensen gäller.
SVEMO TA
ta.svemo.se
Publik 48h Publika resultatlistor från SVEMO, för alla tre grenar. Parseade HTML-tabeller med position, förare, navigatör, klubb, båt, klass, nationalitet och poäng. Celler mappas på kolumnrubrik, aldrig position — layouten ändras mellan säsonger. Tabellen har högst én klubbkolumn: KlubbNav (när en navigatör listas) är navigatörens klubb, Klubb är förarens. Förarklubben hämtas därför från anmälningslistorna, inte härifrån.
SVEMO anmälningslistor
ta.svemo.se — Förare/Laglista
Publik med resultat Anmälningslistan per klass, med en rad per person och den personens egen klubb. Enda källan som skiljer förarens klubb från navigatörens — ett ekipage består ofta av två personer i olika klubbar. Finns för offshore från 2022; aquabike och rundbana saknar dem, vilket inte gör något då de tabellerna redan har förarens klubb.
SVEMO Publik
ta.svemo.se/public
Publik 48h Primär tävlingskatalog. Hämtar tävlingar från publika sidor (Telerik-grid) per gren och säsong — Offshore, Rundbana och Aquabike, 2022 till innevarande år. Ingen inloggning krävs. Det är denna lista som avgör vilka tävlingar resultat hämtas för.
UIM Sport
uim.sport
Publik 48h Internationella motorbåtsförbundets kalender. WebForms med Telerik-grid. Datum, namn, plats, land och disciplin.
SVEMO Regler
svemo.se
Publik 168h Regelsamling och bestämmelser för svensk båtracing. Ändras sällan.
Nyheter
Flera källor
Publik 168h Internationella powerboat-nyheter från PRW, F1H2O och PBN. AI-sammanfattning på svenska.

Dataformat (JSON)

Alla scrapers sparar data som JSON i bot/data/. Nedan visas strukturen för varje datakälla.

svemo_calendar.json — SVEMO Kalender

[ { "competition_id": 17531, // TAM tävlings-ID "name": "Östhammars GP mot cancer", "date": "2026-09-26", "location": "Östhammars offshorebana", "organizer": "Östhammars SS", "branch": "Offshore", // Offshore | Rundbana | Aquabike "branch_id": 27, // 22=Rundbana, 26=Aquabike, 27=Offshore "status": "Planerad", "classes": ["3A", "3B", "3C", "K"], // Tävlingsklasser "open_for_registration": false } ]

svemo_calendar_public.json — SVEMO Publik (verifiering)

[ { "name": "Vårracet", "date": "2026-06-13", "organizer": "Öregrunds RK", "branch": "Offshore", "competition_id": "17531", // SVEMO TAM ID — länkar till detaljsida "source": "public" } ]

Verifieringsrapporten sparas i svemo_verification.json med antal avvikelser och tidsstämpel.

uim_calendar.json — UIM Kalender

[ { "name": "Offshore WC — 3D", "date": "2026-06-18 – 21", "venue": "Rodi Garganico", "country": "Italien", "discipline": "Offshore", // Offshore | Aquabike | Circuit "classes": "3D" } ]

webtracking_races.json — Race-logg

[ { "id": 1234, "name": "Roslagsloppet", "date": "2025-08-09", "location": "Öregrund", "organizer": "Öregrunds RK", "class": "3B" } ]

webtracking_results.json — Resultat

{ "races": [ { "race_id": 1234, "results": [ { "position": 1, "boat": "B-85", "driver": "Max Samuelsson", "codriver": "Joel Schöneberg", "club": "RBR", "time": "01:23:45", "class": "3B" } ] } ] }

svemo_results.json — SVEMO Resultat

{ "competitions": [ { "id": 17530, "name": "Roslagsloppet", "date": "2026-08-08", "branch": "Offshore", // Offshore | Rundbana | Aquabike "branches": ["Offshore"], // fler vid blandtävling "organizer": "Öregrunds RK", "discovery_source": "public", "status": "published", // published | partial | not_published | pending | fetch_error "schema": 2, "checked_at": "2026-08-26 11:04", "classes": { // nyckel = klassnamn som SVEMO skriver det "3B": [ { "position": 1, "driver": "Förnamn Efternamn", "club": "RBR", "points_official": 25 } ] } } ], "coverage": { // blev listan verkligen hämtad? "seasons": { "2026": { "status": "ok", // ok | incomplete "branches": { "Offshore": {"status": "ok", "observed": 7} } } }, "last_successful_discovery_at": "2026-08-26 11:04" } }

Används av build_champions.py för att beräkna SM/RM-ställningar, och av build_resultat.py och build_kalender.py. Poängen i tabellerna räknas alltid från placering — points_official är SVEMOs egen kolumn, som saknar SM-bonusen och bara visas som tooltip. status skiljer ”SVEMO har inte publicerat något” från ”vi kunde inte fråga”, och coverage gör en misslyckad hämtning omöjlig att förväxla med en tom säsong.

news_feed.json — Nyhetskällor

{ "scraped_at": "2026-04-17 00:00", "total": 30, "articles": [ { "title": "UIM World Championship Round 3", "date": "2026-04-15", "url": "https://...", "excerpt": "Kort utdrag ur artikeln...", "source": "Powerboat Racing World", "source_short": "PRW" // PRW | F1H2O | PBN } ] }

Aggregerat från tre källor: Powerboat Racing World (PRW), F1H2O och Powerboat News (PBN). Används av build_news.py och build_rss.py.

weekly_digest.json — AI-sammanfattning

{ "date": "2026-04-17 00:00", "summary": "AI-genererad svensk sammanfattning...", "article_count": 30, "sources": ["F1H2O", "PBN", "PRW"] }

Genereras veckovis av AI-modell (med ZDR — Zero Data Retention — när personnamn förekommer). Visas på nyheter.html.

rules.json — Regler & Bestämmelser

[ { "title": "Tävlingsreglemente 2026", "url": "https://svemo.se/...", "type": "pdf", "branch": "Offshore" } ]

Regelsamling från SVEMO. Används på klasser.html.

Genererade utdata

Utöver HTML-sidorna genererar SVERA även följande maskinläsbara flöden:

FilFormatBeskrivning
rss.xml RSS 2.0 SVERAs egna svenska nyheter (från index.html). Inkluderar kategori-taggar och sociala delningsbeskrivningar.
rss-intl.xml RSS 2.0 Internationella racerbåtsnyheter (PRW, F1H2O, PBN). Uppdateras veckovis.
champions.html HTML SM/RM-mästarställningar för offshore. Poäng räknas från placering; förarens och navigatörens klubb löses upp var för sig ur anmälningslistorna.
aquabike.html HTML SM-ställning i aquabike. Använder SVEMO:s egen poängkolumn rakt av — ingen placeringstabell, ingen startgräns, inget SM-tillägg. Heat summeras aldrig till en rundtotal; en runda som bara publicerat heat redovisas som lucka.
klubbliga.html HTML Klubbliga per gren: offshore på placeringspoäng, aquabike på SVEMO:s poäng, rundbana på medaljer (SVEMO slutade publicera rundbanepoäng 2024). Varje plats i båten räknas för sin egen klubb.

Automationsbot (Charlie Webber)

SVERA drivs av en autonom bot — Charlie Webber — som hanterar både schemalagda uppdateringar och email-styrda uppgifter.

Schemalagt flöde

Daglig cron-körning (06:00): scrapers hämtar data → builders genererar HTML → innehållskontroll (hash-jämförelse) → deploy. ”Uppdaterad”-datum ändras bara när innehåll faktiskt ändrats.

Email-pipeline

Admin kan skicka uppgifter via email. Boten klassificerar komplexiteten (LOW/MEDIUM/HIGH) och delegerar till rätt AI-motor. Vid personuppgifter används alltid Zero Data Retention (ZDR) för integritetsskydd.

AI-sammanfattning

Internationella nyheter sammanfattas veckovis på svenska av AI. När artiklar innehåller personnamn dirigeras bearbetningen genom en ZDR-modell (Zero Data Retention) som inte lagrar någon data efter behandling.

Databearbetning

Event-sammanslagning (kalender)

SVEMO TAM returnerar separata poster för varje gren (Rundbana, Offshore, Aquabike) även när de hålls på samma plats och datum. SVERAs builder slår ihop dessa till en rad med flera gren-badges. Matchning sker på date + location.

SM/RM-poängberäkning

SM-poäng räknas enbart från deltävlingar med 3 eller fler startande ekipage i klassen. Deltävlingar med färre än 3 ger RM-poäng. Poängskalan: 25, 20, 16, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.

Resultatfiltrering

Klasser PB (Patrullbåt) och R (Räddning) filtreras bort från resultatvisningen då de inte är tävlingsklasser.

För tredjeparter

SVERA erbjuder i nuläget inget publikt REST-API, men våra datakällor och format är öppet dokumenterade för transparens. Om du vill bygga en tjänst som använder samma datakällor:

RiktlinjeBeskrivning
Respektera intervallerScrapa inte oftare än var 48:e timme från samma källa. Regler och nyheter räcker med veckovis.
Identifiera din botAnvänd en tydlig User-Agent, t.ex. MinApp-Bot/1.0 (kontakt@example.com).
Cacha lokaltSpara data lokalt och undvik redundanta anrop. Använd tidsstämplar för att avgöra om ny data behövs.
Använd publika källorPrioritera publika endpoints (ta.svemo.se, uim.sport, webtracking.se) framför autentiserade.
KällhänvisningAnge källa om du visar data vidare, t.ex. ”Data från SVEMO via SVERA”.

Vill du integrera med SVERA?

Vi är öppna för samarbeten och datadelning. Kontakta oss om du bygger en tjänst eller app kring svensk båtracing.

Kontakta oss →