FöretagsAPI
    POST/v1/sni/search

    SNI-sökning

    Sök efter företag baserat på deras SNI-kod (branschklassificering).

    Översikt

    SNI-sökning-endpointen låter dig hitta företag som har en specifik SNI-kod registrerad som en av sina affärsverksamheter. Du kan även filtrera på stad. Som standard returneras alla bolag med någon omsättningssignal, exakt från digital årsredovisning eller intervall från SCB:s storleksklass (cirka 85 % av aktiva aktiebolag). Skicka exact_only: true för att smala av till bolag med exakta nyckeltal från digital årsredovisning (cirka 60 %). Detta är användbart för marknadsundersökningar, konkurrentanalys eller för att hitta företag i en specifik bransch.

    Flera SNI-koder
    Svenska företag kan ha upp till 5 SNI-koder (sni1-sni5) registrerade. Denna sökning hittar företag där den angivna koden finns i något av dessa fält.
    Resultatbaserad debitering

    1 kredit = 1 returnerat företag.

    Om du begär 100 företag och 47 hittas, debiteras du 47 krediter. Fältet creditsCharged i metadata visar alltid exakt vad som debiterades.

    Skydd mot överförbrukning: Din limit begränsas automatiskt till din kvarvarande kvot. Du kan inte av misstag förbruka mer än du har.
    Om stora resultatmängder
    Populära SNI-koder som 62100 (Dataprogrammering) kan ha ~15 000 företag totalt. Använd paginering med offset för att hämta data i omgångar.
    Omsättningssignal: exakt eller intervall
    SNI-sökning visar som standard alla bolag med någon omsättningssignal: exakt nettoomsättning från digital årsredovisning (cirka 60 % av aktiva aktiebolag) eller ett storleksintervall från SCB:s storleksklass (lyfter täckningen till cirka 85 % och inkluderar HB, KB, BRF, EK med flera). Varje bolag har en revenue_estimate-envelope (och en motsvarande employees_estimate) med fält type (exact, interval eller none), value, interval_low/interval_high och en källangivelse source (annual_report eller scb). Skicka exact_only: true för att smala av till bolag med exakta nyckeltal från digital årsredovisning. Källa: Bolagsverket, SCB och PRV.

    Förfrågan

    Förfrågningskropp

    Skicka ett JSON-objekt med SNI-koden att söka efter, samt valfria filter:

    json
    {
      "sni_code": "70200",
      "city": "Stockholm",
      "limit": 10
    }

    Parametrar

    Parameter Typ Obligatorisk Beskrivning
    sni_code string Obligatorisk 5-siffrig SNI-kod (t.ex. "70200").
    city string Valfri Filtrera på stadsnamn (skiftlägesokänslig, partiell matchning).
    limit number Valfri Max antal företag per anrop. Standard: 100, Max: 100.
    offset number Valfri Pagineringsoffset. Standard: 0.
    exact_only boolean Valfri Smala av till bolag med exakta nyckeltal från digital årsredovisning (cirka 60 % av aktiva aktiebolag). Standard: false, vilket inkluderar både exakt nettoomsättning och SCB:s storleksklass-intervall (cirka 85 % täckning). När true påverkas även revenue-filter och sortering: enbart exakt nettoomsättning räknas som signal.
    has_annual_report boolean Valfri Explicit filter på digital årsredovisning. true = endast bolag med årsredovisning, false = endast bolag utan. Standard: utelämnad (inget filter). För att smala av till bolag med exakta nyckeltal, använd hellre exact_only, vars semantik även styr revenue-filter och sortering.
    min_revenue number Valfri Lägsta omsättning i hela SEK. Matchar på exakt nettoomsättning ELLER SCB-intervall som överlappar gränsvärdet. Sätt exact_only: true för att enbart matcha på exakt nettoomsättning.
    max_revenue number Valfri Högsta omsättning i hela SEK. Matchar på exakt nettoomsättning ELLER SCB-intervall som överlappar gränsvärdet. Sätt exact_only: true för att enbart matcha på exakt nettoomsättning.
    sort string Valfri Sortering av resultat. Värden: revenue_desc (störst omsättning först, default), revenue_asc, name (bokstavsordning).
    Paginering
    Använd offset och limit för paginering. Fältet hasMore i svaret indikerar om fler resultat finns.

    Kvoter och begränsningar

    Plan Månatlig kvot Max resultat per anrop
    Free 500 krediter 100 företag
    Starter 5 000 krediter 100 företag
    Pro 50 000 krediter 100 företag

    Kodexempel

    Här är exempel på flera programmeringsspråk:

    curl
    1
    2
    3
    4
    5
    # Sök företag med SNI-kod, filtrera på stad curl -X POST 'https://data.foretagsapi.se/v1/sni/search' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -d '{"sni_code": "70200", "city": "Stockholm", "limit": 10}'

    Svar

    Lyckat svar (200 OK)

    Returnerar ett JSON-objekt med matchande företag:

    json
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    { "companies": [ { "id": 123456, "name": "Konsultbolaget AB", "orgNumber": "5567012345", "legalForm": "AB", "postalAddress": { "street": "Storgatan 1", "postalCode": "11122", "city": "STOCKHOLM" }, "registrationDate": "2015-03-15", "deregistrationDate": null, "deregistrationReason": null, "businessDescription": "Företagskonsulttjänster", "ongoingRestructuring": null, "ftgstat": 1, "jestat": null, "jurform": 49, "reklamsparr": 1, "sniCodes": { "sni1": "70200", "sni2": null, "sni3": null, "sni4": null, "sni5": null, "sni1_name": "Konsultverksamhet avseende företagsledning", "sni2_name": null, "sni3_name": null, "sni4_name": null, "sni5_name": null }, "score": 1.0, "hasDigitalAnnualReport": true, "financials": { "year": 2023, "taxonomy": "k2", "currency": "SEK", "revenue": 8200000, "operatingResult": 940000, "netResult": 712000, "totalAssets": 5100000, "equity": 3050000, "solidity": 0.598, "operatingMargin": 0.1146, "employees": 7, "fiscalYearStart": "2023-01-01", "fiscalYearEnd": "2023-12-31" }, "revenue_estimate": { "value": 8200000, "type": "exact", "interval_low": null, "interval_high": null, "reference_year": 2023, "source": "annual_report", "scb_class": null, "label_sv": null }, "employees_estimate": { "value": 7, "type": "exact", "interval_low": null, "interval_high": null, "source": "annual_report", "scb_class": null, "label_sv": null } } ], "metadata": { "sniCode": "70200", "sniDescription": "Konsultverksamhet avseende företagsledning och företagsstyrning", "city": "Stockholm", "resultCount": 10, "totalCount": 4523, "offset": 0, "limit": 10, "hasMore": true, "creditsCharged": 10, "filters": { "hasAnnualReport": null, "exactOnly": false, "minRevenue": null, "maxRevenue": null, "sort": "revenue_desc" }, "processingTimeMs": 230, "timestamp": "2026-01-29T12:00:00.000Z", "mode": "api" } }

    Metadata-fält

    Fält Typ Beskrivning
    sniCode string SNI-koden som söktes
    sniDescription string | null Beskrivning av SNI-koden
    city string | null Stadsfilter som användes (om angivet)
    resultCount number Antal företag i detta svar
    totalCount number Totalt antal matchande företag
    offset number Aktuell pagineringsoffset
    limit number Limit som användes
    hasMore boolean True om fler resultat finns att hämta
    creditsCharged number Antal krediter som debiterades
    filters object Återspeglar de aktiva filtren för anropet: hasAnnualReport (boolean | null), exactOnly (boolean), minRevenue (number | null), maxRevenue (number | null) och sort (string). Användbart för att visa tillämpade filter i klienten.
    processingTimeMs number Bearbetningstid i millisekunder
    timestamp string ISO 8601 tidsstämpel
    mode string Alltid "api" för autentiserade anrop

    Företagsfält

    Varje företag i companies-arrayen innehåller:

    Fält Typ Beskrivning
    name string Företagets namn
    orgNumber string 10-siffrigt organisationsnummer
    id number Internt databas-ID
    legalForm string Juridisk form som textkod (kortform). Vanliga värden: AB (Aktiebolag), HB (Handelsbolag), KB (Kommanditbolag), BRF (Bostadsrättsförening), EK (Ekonomisk förening). Enskilda firmor ingår för närvarande inte i datasetet.
    postalAddress object Objekt med street, postalCode, city
    registrationDate string Registreringsdatum (YYYY-MM-DD)
    deregistrationDate string | null Avregistreringsdatum om företaget är avregistrerat
    businessDescription string Verksamhetsbeskrivning
    ftgstat number F-skattestatus (0=aldrig, 1=aktiv, 9=inaktiv)
    reklamsparr number Reklamspärr (0=okänd, 1=ingen spärr, 2=spärrad). Värdet 2 betyder att mottagaren har avsagt sig direktreklam via post, telefon eller kombo. Gäller ej e-post. Källa: Bolagsverket och SCB.
    jestat number | null Status för juridisk enhet (1=aktiv, null=ej tillgänglig)
    jurform number | null Juridisk formkod (numerisk). Vanliga: 10=Enskild firma, 31=Handelsbolag, 49=Aktiebolag, 51=Ekonomisk förening
    ongoingRestructuring string | null Kod för pågående avveckling/rekonstruktion. Prefix: LI=likvidation, KK=konkurs, FR=företagsrekonstruktion. Null om inget pågår.
    deregistrationReason string | null Orsakskod vid avregistrering. Vanliga: KKAV-AVORG (konkurs), FUAV-AVORG (fusion), LIAV-AVORG (likvidation). Null om ej avregistrerat.
    score number Matchningspoäng 0.0-1.0 (vid SNI-sökning baserat på relevans)
    sniCodes object Upp till 5 SNI-koder med beskrivningar
    hasDigitalAnnualReport boolean Sant om företaget har lämnat in digital årsredovisning och finansiell data finns i systemet. Alltid med i svaret.
    financials object | null Finansiell data från senaste årsredovisning, eller null om data saknas. Fält: year, revenue, operatingResult, netResult, totalAssets, equity, solidity, operatingMargin, employees, med mera. Alla belopp i hela SEK. Negativa värden är legitima.
    revenue_estimate object Källmedveten omsättnings-envelope. type: "exact" = värdet kommer från digital årsredovisning (samma som financials.revenue). type: "interval" = SCB-baserad omsättningsklass; interval_low/interval_high ger bandets gränser, label_sv är en färdigformaterad svensk etikett (t.ex. "1-5 Mkr" eller "≥ 10 mdkr"). type: "none" = ingen storleksuppgift finns. Övriga fält: value, source ("annual_report"|"scb"|null), reference_year, scb_class.
    employees_estimate object Källmedveten anställda-envelope. Samma struktur som revenue_estimate men för antal anställda (saknar reference_year). För bolag med digital årsredovisning är value samma som financials.employees. För bolag utan AR finns ofta ett SCB-intervall (BRF, HB, KB och ekonomiska föreningar omfattas).

    SNI-koder objekt

    json
    {
      "sni1": "70200",
      "sni2": "62020",
      "sni3": null,
      "sni4": null,
      "sni5": null,
      "sni1_name": "Konsultverksamhet avseende företagsledning",
      "sni2_name": "Datakonsultverksamhet",
      "sni3_name": null,
      "sni4_name": null,
      "sni5_name": null
    }

    Användningsområden

    Vanliga användningsområden för SNI-sökning inkluderar:

    • Marknadsundersökning: Hitta företag i en specifik branschsektor (standard inkluderar både exakt nettoomsättning och SCB-intervall)
    • Konkurrentanalys: Identifiera företag med liknande affärsverksamhet
    • Lead-generering: Bygg riktade listor för B2B-försäljning
    • Branschrapporter: Aggregera data för sektoranalys

    Paginering

    Använd offset och limit för att paginera. Fältet hasMore indikerar om fler resultat finns.

    json
    // Sida 1
    {"sni_code": "70200", "limit": 100, "offset": 0}
    
    // Sida 2
    {"sni_code": "70200", "limit": 100, "offset": 100}
    
    // Sida 3
    {"sni_code": "70200", "limit": 100, "offset": 200}

    Felsvar

    Status Fel Orsak
    400 Missing required parameter: sni_code Ingen SNI-kod angavs
    400 Invalid SNI code format. Must be 5 digits. Koden är inte exakt 5 siffror
    400 Threshold exceeded SNI-koden har >5000 företag utan stadsfilter. Lägg till city-parameter.
    405 Method not allowed Använd POST, inte GET
    402 Krediterna är slut. Uppgradera din plan eller köp fler krediter. Månatlig kvot/krediter slut
    429 Rate limit exceeded Per-minut-cap (Cloudflare) uppnådd — vänta och försök igen
    500 Database error during search Internt fel (försök igen)

    Exempel på threshold-fel (400)

    Returneras när SNI-koden har över 5000 företag och inget stadsfilter anges:

    json
    {
      "error": "Threshold exceeded",
      "message": "SNI-koden 70200 har 85 393 företag. Lägg till ett stadsfilter för att begränsa resultaten.",
      "requiresCity": true,
      "totalCount": 85393,
      "sniCode": "70200"
    }

    Exempel på kvotfel (402)

    json
    {
      "error": "Krediterna är slut. Uppgradera din plan eller köp fler krediter."
    }

    Vi använder cookies för att förbättra din upplevelse och analysera trafiken. Läs mer