API reference
Search companies
Search and filter companies by location, industry, size and financial values.
- Access
-
Scope
companies - Cost
- 1 unit per row in the response
Combine registry data and financial measures in one selection. Range filters must use the matching sort order: revenue_min, for example, requires that you also send sort=revenue. That keeps response times stable even for large selections.
Choose a sort order
| Value | Order | Can be combined with |
|---|---|---|
revenue (default) | Revenue, descending | revenue_min / revenue_max |
employees | Employee count, descending | employees_min / employees_max |
registered | Registration date, descending | registered_after / registered_before |
name | Company name, A to Z | No range filters |
Parameters
Parameters not marked as required may be omitted.
| Name | Type | What the field does |
|---|---|---|
sort
|
string |
Determines the ordering, and which range filters you may use.
Default: revenue
|
limit
|
integer |
How many rows the page should contain, from 1 to 100.
Default: 25
|
cursor
|
string |
Continue from next_cursor in the previous response.
|
active
|
boolean |
Set to true for active companies, or false for the rest.
|
status
|
string |
active, dissolved, inactive.
|
legal_form
|
string |
Legal form, e.g. AB (limited company), HB (trading partnership), EK (co-operative).
|
city
|
string | Match an exact postal town. Case is ignored. |
county
|
string |
The two-digit county code from Statistics Sweden, for example 14 for Västra Götaland.
|
municipality
|
string | The four-digit municipality code from Statistics Sweden. |
sni
|
string | Match an exact five-digit SNI industry code. |
employees_class
|
string | The two-digit employee size class from Statistics Sweden. |
has_financials
|
boolean | Restrict the selection to companies with at least one set of accounts. |
listed
|
boolean | Restrict the selection to listed companies. |
revenue_min / revenue_max
|
integer |
Lower or upper bound for revenue in SEK. Requires sort=revenue.
|
employees_min / employees_max
|
integer |
Lower or upper bound for employee count. Requires sort=employees.
|
registered_after / registered_before
|
date |
Registered after or before an ISO date. Requires sort=registered.
|
Request and response
The example shows a request against the production environment and a successful response.
curl "https://firmainfo.se/api/v1/companies?county=14&revenue_min=100000000&limit=2" \
-H "Authorization: Bearer $FIRMAINFO_API_KEY"
{
"data": [
{
"id": "5560125790",
"name": "Aktiebolaget Volvo",
"registration_number": "556012-5790",
"legal_form": "AB",
"status": "active",
"city": "GÖTEBORG",
"sni_primary": "70100",
"registration_date": "1915-05-05",
"financials_latest": {
"fiscal_year_end": "2024-12-31",
"revenue": 526816000000,
"profit": 55215000000,
"employees": "97923.00"
}
}
],
"has_more": true,
"next_cursor": "eyJ2IjoxLCJzIjoicmV2ZW51ZSIsImYiOiI4YzE..."
}
Good to know
-
An unknown query parameter returns
422, so a typo cannot slip through unnoticed. -
The cursor is signed and bound to your filters. If the filters change mid-pagination you get
400 cursor_conflict. - A selection can be paged through for at most 400 pages. Contact us if you need a larger, recurring extract.