Hoppa till innehållet

REST-API

Hämta bolag

Bolagsprofil: namn, form, status, säte och bransch. Med detail=full även adresser, F-skatt, moms, verksamhet, tidigare namn och aktiekapital.

Visa som .md
http
GET /api/v1/companies/{org_number}
OperationScopePris per uppslag
get_company (bolag, kort profil)companies:read0,10 kr
get_company_full (bolag, hela profilen (detail=full))companies:read0,15 kr

Parametrar#

NamnVarTypStandardBeskrivning
org_number (krävs)pathstring–Organisationsnummer, tio siffror med eller utan bindestreck (569900-0013 eller 5699000013). Tolv siffror med sekel går också.
detailquery"concise" | "full"conciseconcise ger en kort profil (cirka 300 tokens). full ger hela profilen och kostar mer.

Headers: Authorization: Bearer … (krävs) och Idempotency-Key (valfri).

Exempel#

Kort profil#

curl -s "https://app.bolagskvarnen.se/api/v1/companies/569900-0013" \
  -H "Authorization: Bearer $GETBOLAG_KEY"
Svar från sandlådanHTTP 200
application/json
{
  "status": "ok",
  "data": {
    "org_number": "569900-0013",
    "name": "Exempelbolaget i Norrland AB",
    "legal_form": {
      "code": "AB",
      "text": "Aktiebolag"
    },
    "is_sole_trader": false,
    "status": {
      "active": true,
      "code": 100,
      "text": "Aktiv",
      "detailed": "Aktiv",
      "date": null
    },
    "registered_date": "2015-03-10",
    "deregistered_date": null,
    "dissolved_date": null,
    "seat": {
      "municipality": "Umeå",
      "region": "Västerbottens län"
    },
    "industry": {
      "sni_code": "62010",
      "text": "Dataprogrammering"
    }
  },
  "meta": {
    "request_id": "284702a3-b711-4f84-8312-2b5162046656",
    "source": [
      "sandbox"
    ],
    "attribution": [
      {
        "source": "getbolag-sandbox",
        "supplier": "Bolagskvarnen",
        "notice": "Påhittad testdata. Inga riktiga bolag eller personer."
      }
    ],
    "retrieved_at": "2026-11-12T12:07:09.895Z",
    "data_updated_at": "2026-10-26T06:00:00Z",
    "cost_sek": 0,
    "environment": "test",
    "database": "Bolagskvarnen (bolagskvarnen.se)",
    "publisher": "Bolagskvarnen, ett varumärke i Bolagskällan AB (559555-5946)",
    "coverage": {
      "company": "available"
    }
  }
}
SandlådaPåhittad testdata ur sandlådan.

Hela profilen#

bash
curl -s "https://app.bolagskvarnen.se/api/v1/companies/569900-0013?detail=full" \
  -H "Authorization: Bearer $GETBOLAG_KEY"
Svar från sandlådanHTTP 200
application/json
{
  "status": "ok",
  "data": {
    "org_number": "569900-0013",
    "name": "Exempelbolaget i Norrland AB",
    "legal_form": {
      "code": "AB",
      "text": "Aktiebolag"
    },
    "is_sole_trader": false,
    "status": {
      "active": true,
      "code": 100,
      "text": "Aktiv",
      "detailed": "Aktiv",
      "date": null
    },
    "registered_date": "2015-03-10",
    "deregistered_date": null,
    "dissolved_date": null,
    "seat": {
      "municipality": "Umeå",
      "region": "Västerbottens län"
    },
    "industry": {
      "sni_code": "62010",
      "text": "Dataprogrammering"
    },
    "formed_date": "2015-03-02",
    "f_tax": {
      "registered": true,
      "start_date": "2015-04-01",
      "end_date": null
    },
    "vat": {
      "registered": true,
      "start_date": "2015-04-01",
      "end_date": null
    },
    "phone": "08-000 00 00",
    "workplaces": 1,
    "employees_interval": "10 - 19 anställda",
    "turnover_interval": "10 000 - 19 999 tkr",
    "business_activity": "Bolaget ska utveckla och sälja programvara samt bedriva därmed förenlig verksamhet.",
    "addresses": [
      {
        "type": "postal",
        "co": null,
        "street": "Testvägen 1",
        "zipcode": "90000",
        "town": "UMEÅ",
        "country": "SE",
        "current": true
      },
      {
        "type": "visiting",
        "co": null,
        "street": "Exempelgatan 2",
        "zipcode": "90001",
        "town": "UMEÅ",
        "country": "SE",
        "current": true
      }
    ],
    "previous_names": [
      {
        "date": "2019-06-01",
        "old_name": "Exempelbolaget AB",
        "new_name": "Exempelbolaget i Norrland AB"
      }
    ],
    "share_capital": {
      "share_capital": 50000,
      "number_of_shares": 500
    }
  },
  "meta": {
    "request_id": "e3676bc0-2ceb-49d9-9975-2d6b2cf3bf16",
    "source": [
      "sandbox"
    ],
    "attribution": [
      {
        "source": "getbolag-sandbox",
        "supplier": "Bolagskvarnen",
        "notice": "Påhittad testdata. Inga riktiga bolag eller personer."
      }
    ],
    "retrieved_at": "2026-11-12T12:07:09.895Z",
    "data_updated_at": "2026-10-26T06:00:00Z",
    "cost_sek": 0,
    "environment": "test",
    "database": "Bolagskvarnen (bolagskvarnen.se)",
    "publisher": "Bolagskvarnen, ett varumärke i Bolagskällan AB (559555-5946)",
    "coverage": {
      "company": "available",
      "addresses": "available",
      "share_capital": "available"
    }
  }
}
SandlådaPåhittad testdata ur sandlådan.

Bolaget finns inte#

bash
curl -s "https://app.bolagskvarnen.se/api/v1/companies/569900-0096" \
  -H "Authorization: Bearer $GETBOLAG_KEY"
Svar från sandlådanHTTP 404
application/json
{
  "status": "error",
  "error": {
    "code": "not_found",
    "message": "Det finns inget bolag eller ingen person med det numret i källan."
  },
  "meta": {
    "request_id": "856ea236-0a05-4bf1-9557-6152bbb7ed9f",
    "source": [
      "sandbox"
    ],
    "attribution": [
      {
        "source": "getbolag-sandbox",
        "supplier": "Bolagskvarnen",
        "notice": "Påhittad testdata. Inga riktiga bolag eller personer."
      }
    ],
    "retrieved_at": "2026-11-12T12:07:09.896Z",
    "data_updated_at": "2026-10-26T06:00:00Z",
    "cost_sek": 0,
    "environment": "test",
    "database": "Bolagskvarnen (bolagskvarnen.se)",
    "publisher": "Bolagskvarnen, ett varumärke i Bolagskällan AB (559555-5946)",
    "coverage": {
      "company": "not_found"
    }
  }
}
SandlådaPåhittad testdata ur sandlådan.

Felaktigt organisationsnummer#

bash
curl -s "https://app.bolagskvarnen.se/api/v1/companies/569900-0014" \
  -H "Authorization: Bearer $GETBOLAG_KEY"
Svar från sandlådanHTTP 400
application/json
{
  "status": "error",
  "error": {
    "code": "invalid_org_number",
    "message": "Ange ett organisationsnummer med tio siffror, till exempel 569900-0013."
  }
}
SandlådaPåhittad testdata ur sandlådan.

Om svaret#

  • status.active är true för bolag som inte är avregistrerade eller upplösta.
  • is_sole_trader är true för enskilda firmor.
  • industry.sni_code är SNI 2007 med fem siffror.
  • Med detail=full tillkommer bland annat addresses, f_tax, vat, business_activity, previous_names och share_capital. coverage säger för varje sektion om något fanns.
  • Fält som saknas i registret är null. null betyder okänt, inte noll eller nej.

Felkoder#

KodHTTPVad du gör
invalid_org_number400Skicka tio siffror, med eller utan bindestreck, till exempel 569900-0013.
invalid_parameter400Kontrollera parametrarna mot endpointens tabell. Okända parametrar avvisas i stället för att ignoreras.
not_found404Kontrollera numret. Inte hittat debiteras inte.
entity_cap_exceeded429Bolag och personer du redan hämtat i dag går att hämta igen. Behöver du ett högre tak, kontakta support.
unauthorized401Skicka Authorization: Bearer gb_test_… eller gb_live_…. Kontrollera att hela nyckeln kom med. En OAuth-token gäller en timme; förnya den med refresh-token.
insufficient_scope403Skapa en nyckel med rätt scope under Konto → Nycklar. Se scopes.
email_not_verified403Klicka på länken i bekräftelsemejlet, eller skicka ett nytt från Konto.
user_disabled403Be kontots ägare att aktivera användaren, eller använd en egen nyckel.
account_not_active403Använd en testnyckel tills kontot är godkänt. Status syns under Konto.
blocked_by_phase503Använd en testnyckel mot sandlådan. Vi meddelar när live-data öppnar. Se sandlådan.
suspended503Kontakta support@getbolag.se.
rate_limited429Vänta så många sekunder som Retry-After anger och försök igen. Se takt och tak.
insufficient_credits402Fyll på under Konto → Krediter.
monthly_cap_reached402Höj taket under Konto, eller vänta till nästa månad.
key_daily_cap_reached402Höj nyckelns tak under Konto → Nycklar, eller vänta till nästa dygn.
invalid_idempotency_key400Skicka ett kort, unikt värde per uppslag, till exempel ett UUID.
idempotency_key_reused422Använd en ny nyckel för varje nytt uppslag. Samma nyckel gäller bara när exakt samma anrop görs om. Se Idempotency-Key.
internal_error500Försök igen med samma Idempotency-Key. Ange request_id om du kontaktar support.

Samma uppslag i MCP: verktyget gb_get_company. Se MCP.