OpenTender

Agenter

Fyra sätt att använda OpenTender. Välj det som passar dig — eller använd alla.

Rekommenderas

MCP — för AI-agenter

Låt Claude Code, Kilo Code eller Cline söka åt dig.

REST API — för system

Bygg eget system eller script.

Prompt — för Hermes & ChatGPT

Klistra in en prompt så vet agenten allt.

Webbläsare

Sök direkt här på webben.

MCP — för AI-agenter

Låt din AI-assistent söka och läsa upphandlingar åt dig — utan att du öppnar webbläsaren.

Så här kopplar du in

Lägg till detta i din AI-klients konfiguration:

{
  "mcpServers": {
    "opentender": {
      "command": "python",
      "args": ["-m", "mcp_server"],
      "cwd": "/path/to/opentender",
      "env": {
        "DB_PATH": "/data/opentender.db"
      }
    }
  }
}

Verktyg din agent får

search_tenders

Sök upphandlingar med nyckelord, kategori eller region.

get_tender

Full info om en upphandling, inklusive om konto krävs.

match_profile

Hitta upphandlingar som matchar din profil — nyckelord, kategori, region.

get_stats

Översikt: hur många upphandlingar finns och från vilka källor.

list_providers

Vilka källor har ni och vilka kräver konto för att ansöka?

list_regions

Vilka län finns med i databasen?

list_cpv_top

Vanligaste kategorierna. Ex: "72" för IT, "45" för bygg.

get_authority

Alla upphandlingar från en organisation, t.ex. Trafikverket.

sync_now

Hämta ny data nu. Vänta en minut och kolla sedan statistiken.

Full dokumentation: MCP.md på GitHub ↗

REST API — för system

För den som vill bygga eget system eller script.

Endpoints

GET /api/health Status, antal upphandlingar, cron-schema
GET /api/stats Statistik per källa, top upphandlare, senaste syncs
GET /api/tenders?q=&source=&authority=&cpv=&page= Sök upphandlingar, paginerat
GET /api/tenders/{id} En specifik upphandling
POST /api/sync Trigga daglig sync (202, körs i bakgrunden)
POST /api/backfill?days=90 Hämta mer historik från TED EU

Exempel

curl "https://opentender.liteit.se/api/tenders?q=it-konsult&source=mercell"
curl "https://opentender.liteit.se/api/tenders/42"

Full OpenAPI-spec: /openapi.json

Prompt — för Hermes, ChatGPT, Claude

Klistra in detta i din AI-assistent så kan den söka upphandlingar direkt via REST API.

Kopiera hela texten nedan och klistra in som första meddelande — agenten får då full kontext om OpenTender, API-endpoints och hur den söker.

Du har tillgång till OpenTender — en öppen databas för svenska offentliga upphandlingar.

API: Base URL är https://opentender.liteit.se
Inga API-nycklar behövs. Alla endpoints är öppna.

## Endpoints

GET /api/tenders?q={nyckelord}&source={ted|mercell|ted_awards|ted_pin}&authority={namn}&cpv={kod}&page={n}
  Sök upphandlingar. Paginerat med 25 per sida.
  Parametrar är valfria — bara q ger fulltextsökning.
  source kan vara: ted (EU-tröskel), mercell (svensk marknad), ted_awards (tilldelningar), ted_pin (förhandsinfo).

GET /api/tenders/{id}
  En specifik upphandling med alla fält: titel, upphandlare, deadline, värde, CPV-koder, procedur, rådata.

GET /api/stats
  Översikt: antal per källa, topp-upphandlare, senaste synk.

POST /api/sync
  Trigga en ny sync (hämta senaste datan). Returnerar 202, körs i bakgrunden.

## Tips

- CPV-kod "72" = IT, "45" = bygg, "50" = reparation, "79" = juridik, "85" = hälsovård.
- Söker du deadline snart? Sortera med sort=deadline i q-parametern.
- PIN (ted_pin) = upphandlingar som planeras, innan formell annons.
- Awards (ted_awards) = avslutade upphandlingar med vinnare och pris.
- Alla datum är ISO 8601 (t.ex. 2026-09-18+02:00).

## Exempel

"Hitta IT-upphandlingar i Stockholm med deadline inom 30 dagar"
→ GET /api/tenders?q=IT&source=mercell
  Filtrera svaret på deadline > idag och < idag+30d.

"Vad har Trafikverket öppet just nu?"
→ GET /api/tenders?authority=Trafikverket

"Visa de 5 senaste tilldelningarna"
→ GET /api/tenders?source=ted_awards&page=1

Börja alltid med att hämta /api/stats för aktuell översikt.