Agentanbud

Providers

Vi är transparenta: det här är datakällorna vi läser, hur vi når dem, och deras nuvarande status.

Alla svenska upphandlingar måste enligt lag publiceras enligt offentlighetsprincipen, men plattformarna som samlar in dem äger sina egna API:er och sina egna villkor. Vi speglar bara det som är publikt tillgängligt och länkar alltid tillbaka till originalannonsen via tender_url — vi är aldrig den slutgiltiga källan.

Aktiva providers

Mercell (public search API) mercell Live
1 057 upphandlingar i DB
Beskrivning
Svensk upphandlingsplattform som speglar Tendsign, e-Avrop, Kommersannons, TED och andra. Levererar ~65-70% av svensk volym via ett öppet, oautentiserat JSON-API.
Metod
REST GET (oautentiserat, polite user-agent)
URL-mönster
https://search-service-api.discover.app.mercell.com/public/api/v1/search
Auth
Nej
Tekniska detaljer
GET /public/api/v1/search?page=N&pageSize=100
Returns paginated JSON. Filter syntax is lossy — we walk pages
and dedupe on (source_system, source_id). ~525 SE records / 100 pages / 80s.
Headers: User-Agent (polite), Accept: application/json.
No API key required.
TED EU — Contract Notices ted Live
8 312 upphandlingar i DB
Beskrivning
EU-kommissionens officiella databas för upphandlingar över EU-tröskelvärden. Vi filtrerar på Sverige (buyer-country=SWE) och hämtar öppna upphandlingar (notice-subtype 7, 29). Svarar på frågan: "Vad kan jag lägga anbud på?"
Metod
REST POST (JSON body med query + fields + filters)
URL-mönster
https://api.ted.europa.eu/v3/notices/search
Auth
Nej
Tekniska detaljer
POST /v3/notices/search
Body: {"query": "buyer-country = SWE AND publication-date >= 20260101",
       "fields": [...], "limit": 100, "page": 1}
Returns notice metadata. Only covers EU-threshold procurements,
not all Swedish tenders. Polite User-Agent required.
TED EU — Contract Awards ted_awards Live
6 161 upphandlingar i DB
Beskrivning
Tilldelningsbeslut från TED — visar VILKA kontrakt som redan har tilldelats, till vem och till vilket värde. Marknadsintelligence för småföretag: "Vem vann senast?" notice-subtypes 16–19 (standard, sectoral, concessions, defence).
Metod
REST POST (samma API som ted, annan subtype-filter)
URL-mönster
https://api.ted.europa.eu/v3/notices/search
Auth
Nej
Tekniska detaljer
POST /v3/notices/search
Body: {"query": "buyer-country = SWE AND notice-subtype = \"16\" OR \"17\" ...",
       "fields": ["winner-name", "result-value-lot", ...]}
Winner fields are requested but often empty in search results —
full data lives in the notice XML body. ~18k SWE awards/year.
TED EU — Prior Information Notices ted_pin Live
329 upphandlingar i DB
Beskrivning
Förhandsinformation om kommande upphandlingar. Myndigheter meddelar att de PLANERAR att upphandla — innan formell annons publiceras. Tidigast möjliga signal för småföretag att förbereda sig. notice-subtypes 4, 5, 25, 26.
Metod
REST POST (samma API, subtype-filter för PIN)
URL-mönster
https://api.ted.europa.eu/v3/notices/search
Auth
Nej
Tekniska detaljer
POST /v3/notices/search
Body: {"query": "buyer-country = SWE AND notice-subtype = \"4\" OR \"5\" ...",
       "fields": ["estimated-value-lot", "future-notice", ...]}
~1k SWE PINs/year. Low volume but high strategic value.

Planerade providers

Kända plattformar vi vill spegla men som kräver mer jobb (vanligtvis: inloggning, headless browser, eller mer komplex HTML-scraping).

Tendsign (Visma MeForm) — ~36% av offentlig.ai:s volym

Plattform för svenska upphandlingar från kommuner och myndigheter. Inget publikt API. Scraping kräver Selenium + headless browser. Referens: yuril93/tendsign.com-scraping (Selenium, 2019 — kan behöva uppdateras).

e-Avrop — respekterad, INTE speglad

Vi respekterar e-Avrops robots.txt (Disallow: /). De har gjort ett aktivt val att blockera crawling. Det är deras rätt — plattformen äger sin data, även om underliggande upphandlingar är offentliga handlingar.

Om du vill ha e-Avrop-data: gå direkt till e-Avrop eller använd Mercell som speglar den mesta av e-Avrops data ändå.

Det här är ett medvetet val: vi tror att öppna data byggs bäst genom samarbete, inte konfrontation.

Clira (Esource) — ~5% av volymen

AI-driven upphandlingsplattform. Backend (api.clira.io) är Sanctum-skyddat och kräver inloggning. Offentlig annonsvisning finns på public.clira.io men data är client-side-renderad. Möjlig lösning: konto + scraping, eller headless browser.

Kommersannons (Elite / upphandling.se) — ~12% av volymen (delvis via Mercell)

Samlar flera kommuners upphandlingar. Inget publikt API. Innehåll är delvis JS-renderat. Möjlig men inte trivial scraping.

Trafikverket, Polisen, kommunsajter — ~10% av volymen, spritt över ~100 sajter

Myndigheter och kommuner kör ofta sina egna upphandlingssystem. Vissa är i Mercell, andra inte. Hög arbetsinsats, låg marginal per sajt.

Ekosystem — andra verktyg som hjälper svenska företag

Agentanbud är en spegel. Det finns andra verktyg som gör kompletterande saker. Hela kedjan behövs för att småföretag ska kunna navigera offentlig upphandling utan att anlita konsulter.

🏛️ Upphandlingsmyndigheten myndighet, fri tillgång

Sveriges myndighet för upphandlingsstöd. Lagar, vägledning, hållbarhetskriterier, verktyg för annonsering. Den formella källan.

🔗 upphandlingsmyndigheten.se

💡 PublicInsight SaaS + rådgivning, betaltjänst

Fokus på insikt och hjälp: vem upphandlar vad, hur stor är din marknad, matchning mot din profil. Det unika är människorna — affärscoacher och anbudsproffs som kan stötta, kvalitetssäkra eller sköta hela anbudet. Bra nästa steg om du vill ha handpåläggning.

🔗 publicinsight.se

🇪🇺 TED EU EU-myndighet, fri tillgång

Alla EU-tröskelvärden. Den ursprungliga datakällan vi speglar för svenska notiser. Rättsligt bindande publiceringskanal.

🔗 ted.europa.eu

🤖 isakskogstad/Upphandlingsdata-MCP open source, MCP

MCP-server som ger Claude Code / Kilo Code direktåtkomst till svensk upphandlingsdata från Upphandlingsmyndigheten + TED. Vår syskon.

🔗 github.com/isakskogstad/...

🆓 offentlig.ai gratis, sluten

Gratis AI-bevakning av svenska upphandlingar — samma demokratiserings-idé som vi. Skillnaden är öppenheten: deras kod och datakällor är inte publika, och de erbjuder inget öppet API eller MCP. Där är vi motsatsen — se jämförelsen nedan.

🔗 offentlig.ai

🏢 Plattformarna (Mercell, Tendsign, e-Avrop, Clira) affärsmodeller

De som faktiskt driver marknaden. Mercell, Tendsign (Visma), e-Avrop, Clira, Kommersannons. Mercell konsoliderar — de förvärvar Vismas Opic och TendSign. Vi speglar där de tillåter, och rekommenderar att gå direkt till dem för att lämna anbud.

Vår roll: inte konkurrent — komplement

Vi gör inte ansökningarna enklare. Det gör PublicInsight. Vi gör inte reglerna tydligare. Det gör Upphandlingsmyndigheten. Vi är bara en öppen spegel som gör det enklare att upptäcka vad som faktiskt publiceras.

Vad som skiljer oss

Flera tjänster bevakar upphandlingar — några gratis, de flesta mot betalning. Nästan alla är slutna destinationer med inbyggd AI: du använder deras verktyg, i deras gränssnitt. Vi valde motsatsen på tre punkter:

📖 Öppen källkod

Hela plattformen är MIT-licensierad på GitHub. Du kan läsa exakt hur datan hämtas, granska den, och köra din egen kopia.

🔍 Transparenta källor

Vi redovisar öppet varje datakälla, hur vi når den och vad den kräver — precis den här sidan. Inga svarta lådor.

🤖 Din egen agent

Öppet REST-API och MCP-server. Du kopplar in din AI-assistent — vi bygger ingen egen AI du måste använda.

Det gör oss mindre till en produkt och mer till infrastruktur: något andra verktyg, forskare och agenter kan bygga vidare på. Koppla in din agent →

Om du är en utvecklare som vill bygga något bättre: fork this repo. Vår kod är MIT-licensierad. Våra scrapers är skrivna för att vara lätta att porta, modifiera och förbättra. Använd det vi byggt, eller bygg om det från grunden — vi hejar på båda.

Om du representerar en plattform (Mercell, Tendsign, e-Avrop, Clira) och vill diskutera öppna API:er, datadelning eller samarbete: öppna en issue eller kontakta oss.

Bidra

Saknar du en provider? Öppna en issue eller PR på GitHub. Varje ny källa är ungefär 150–300 rader Python + registrering i scraper/orchestrator.py.