Company Intelligence
The Company Intelligence area lets you search for companies, look them up by registration number, and pull structured detail subsets — core information, financials, shareholders, signatories, roles, and more. It also includes bank/IBAN utilities (documented in the reference under the Bank tags).
All endpoints live under /company/v1 and are scoped.
Find a company
There are two ways in, depending on what you know.
Free-text search (cursor-paginated)
When you have a name, use search. It returns matches across supported registries
and is cursor-paginated — pass perPage and follow nextCursor.
- curl
- Python
- JavaScript
curl "https://api.lexabit.com/company/v1/search?q=acme&country=NO&perPage=10" \
-H "Authorization: Bearer $LEXABIT_TOKEN" \
-H "X-Scope: 42"
import os, requests
def search_companies(query, country="NO"):
cursor, results = None, []
while True:
resp = requests.get(
"https://api.lexabit.com/company/v1/search",
params={"q": query, "country": country, "perPage": 50, "cursor": cursor},
headers={
"Authorization": f"Bearer {os.environ['LEXABIT_TOKEN']}",
"X-Scope": "42",
},
)
resp.raise_for_status()
body = resp.json()
results += body["data"]
cursor = body["meta"].get("nextCursor")
if not cursor: # null → no more pages
return results
async function searchCompanies(query, country = "NO") {
let cursor = null;
const results = [];
do {
const params = new URLSearchParams({ q: query, country, perPage: "50" });
if (cursor) params.set("cursor", cursor);
const resp = await fetch(
`https://api.lexabit.com/company/v1/search?${params}`,
{ headers: {
Authorization: `Bearer ${process.env.LEXABIT_TOKEN}`,
"X-Scope": "42",
} },
);
const body = await resp.json();
results.push(...body.data);
cursor = body.meta.nextCursor; // null → done
} while (cursor);
return results;
}
Treat nextCursor as a black box — pass it back verbatim, don't parse or build
it yourself. Its format can change.
Direct lookup by registration number
If you already have the country + registration number, skip search:
curl "https://api.lexabit.com/company/v1/lookup?country=NO®istrationNumber=922020175" \
-H "Authorization: Bearer $LEXABIT_TOKEN" \
-H "X-Scope: 42"
Read a company and its detail subsets
Once you have a company id, GET /company/v1/companies/{id} returns the basic
record. The richer data is split into subsets so you fetch only what you
need:
| Subset | Endpoint suffix |
|---|---|
| Core information | /information |
| Financial figures | /financials |
| Credit rating | /rating — returns data only where a commercial data provider is active (none currently; see Banking & Data Providers) |
| Shareholders | /shareholders |
| Signatories | /signatories |
| Roles (board, etc.) | /roles |
| Addresses | /addresses |
| Group structure | /group-structure |
| Announcements / events | /announcements, /events |
For example, a company's financials:
curl "https://api.lexabit.com/company/v1/companies/{id}/financials" \
-H "Authorization: Bearer $LEXABIT_TOKEN" \
-H "X-Scope: 42"
Each returns the standard envelope with the subset under data. See the
API Reference → Company Intelligence for the exact fields of each subset.
Keeping data fresh
Company data is sourced from upstream registries and providers. Two endpoints control freshness:
POST /company/v1/companies/{id}/refetch— re-fetch synchronously from upstream and return the updated record.POST /company/v1/jobs/bulk-refresh— queue a background job to refresh many companies; returns202 Acceptedwith a job id you can poll under/company/v1/jobs/{jobId}.
Use refetch for one company on demand; use a job for bulk work so you're not blocked on a long synchronous call.
Generate a report
GET /company/v1/companies/{id}/report produces a PDF company report (returned
as a file, not JSON).
Where to go next
- Working with Clients & Cases — turn a looked-up company into a client of your organisation
- Data Registry — control which data subsets and providers are used
- API Reference → Company Intelligence