Swedish Company Data
Look up a Swedish company at Bolagsverket by organisation number, including identity, status, address and recorded proceedings.
Example
{
"org_number": "556703-7485"
} {
"status": "active",
"is_active": true,
"sni_codes": [
{
"code": "60100",
"description": "Radiosändning och distribution av ljudinspelningar"
}
],
"legal_form": "Övriga aktiebolag",
"org_number": "556703-7485",
"vat_number": "SE556703748501",
"company_name": "Spotify AB",
"company_type": "Aktiebolag",
"country_code": "SE",
"legal_form_code": "49",
"registered_date": "2006-05-10",
"alternative_names": [],
"company_type_code": "AB",
"deregistered_date": null,
"ongoing_procedures": [],
"registered_address": {
"city": "STOCKHOLM",
"street": "Regeringsgatan 19",
"country": "Sverige",
"co_address": null,
"postal_code": "11153"
},
"business_description": "Bolaget har till föremål för sin verksamhet att bedriva Internetrelaterade tjänster...",
"deregistration_reason": null
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
org_number | string | Yes | Swedish organisationsnummer (10 digits, e.g. 556703-7485) |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
status | one of active, deregistered, unknown | Always (present in every successful answer) |
is_active | boolean or null | Always (present in every successful answer) |
sni_codes | array | Always (present in every successful answer) |
legal_form | string or null | Usually (present for most inputs) |
org_number | string | Always (present in every successful answer) |
vat_number | string | Always (present in every successful answer) |
company_name | string | Always (present in every successful answer) |
company_type | string | Always (present in every successful answer) |
country_code | string | Always (present in every successful answer) |
legal_form_code | string or null | Usually (present for most inputs) |
registered_date | string or null | Always (present in every successful answer) |
alternative_names | array | Always (present in every successful answer) |
company_type_code | string | Always (present in every successful answer) |
deregistered_date | string or null | Sometimes (present only for some inputs) |
ongoing_procedures | array | Always (present in every successful answer) |
registered_address | object or null | Usually (present for most inputs) |
business_description | string or null | Usually (present for most inputs) |
deregistration_reason | string or null | Sometimes (present only for some inputs) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "swedish-company-data",
"inputs": {
"org_number": "556703-7485"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "swedish-company-data",
"inputs": {
"org_number": "556703-7485"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "swedish-company-data",
inputs: {
"org_number": "556703-7485"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="swedish-company-data",
inputs={
"org_number": "556703-7485",
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/swedish-company-data?org_number=556703-7485' Limitations
Registry data only; no financial statements
Bolagsverket’s open company data covers names, legal forms, status, addresses, SNI codes, registration dates and insolvency flags. Annual-report figures such as revenue, profit, employee counts and equity are not included.
What to do instead: Order an annual report or financial statement extract from Bolagsverket.
Organisation number required; no name search
Looks up companies by organisation number only; it does not search by name.
What to do instead: Find the organisation number on an official company document or in the registry, then pass it as `org_number`.
Enskild näringsidkare may return multiple entries
Sole traders (enskild näringsidkare) can have several companies registered under the same personal identity number. Lookup returns only the first entry, so other registrations under that number are not included.
What to do instead: Prefer aktiebolag organisationsnummer (10 digits starting 2–9) for unambiguous single-entry lookups.
Deregistered company data may be historical only
Deregistered companies (avregistrerad) still return registry data, but the data reflects the state at deregistration. `is_active` is false and `deregistered_date` is populated.
What to do instead: Always check the `is_active` and `deregistered_date` fields before using returned data for live decisions.
Bundled checks that include it
- Nordic KYC — Sweden €1.50
- Vendor Onboarding Check €1.50
- KYB Essentials — Sweden €1.50
- KYB Complete — Sweden €2.50
- Invoice Verify — Sweden €2.50
Related tools
- Australian Company Data €0.05
- Austrian Company Data €0.05
- Belgian Company Data €0.05
- Brazilian Company Data €0.05
- Canadian Company Data €0.80
- Company News €0.05