REST API

Company data REST API.
One shape, six markets.

A typed JSON REST API for every listed and private company across the US, Sweden, Norway, Finland, the UK, and Denmark. Profiles, financials, ownership, news, and a cross-company event stream from one OpenAPI-described surface. Drop-in React components ship alongside, tree-shakeable from @regna-verkt/ui.

Från $9/mån · 14 dagars provperiod · Inget betalkort krävs
Same call, four ways

One request shape, curl, TypeScript, Python.

A profile lookup against Spotify AB's Swedish org number. Same endpoint, same response, three transports plus the literal JSON the server returns.

$ curl https://regnaverkt.com/api/v1/se/companies/5567037485 \
    -H "Authorization: Bearer rk_live_..."
Endpoints

Endpoints, one shape per market.

Each path returns the same typed JSON regardless of jurisdiction. Pass a 10-digit Swedish or Norwegian org number, a Finnish business ID, a UK Companies House number, or a US-prefixed SEC CIK and the response shape stays identical.

GET /api/v1/companies/{org_number}

Profile lookup. Name, sector, registered date, status, listed flag, latest reported revenue.

GET /api/v1/companies?country=SE&q=...

Search by name, industry, region, or company size. Cursor-paginated.

GET /api/v1/companies/{org_number}/financials

Annual and quarterly financials. Revenue, operating result, equity, employees.

GET /api/v1/companies/{org_number}/ownership

Shareholder structure with ownership percentages, reconciled across filings.

GET /api/v1/companies/{company_id}/events

Per-company event stream: filings, ownership crossings, status changes, and news. Cursor-paginated.

GET /api/v1/events?since=... (planned)

Cross-company event stream. Tracked in #222. Until it ships, fan out per-company calls or subscribe to webhooks.

The full surface, including request parameters and every response field, is in the developer docs.

Frontend

Drop-in React components, tree-shakeable.

For frontend integrations, the same data ships as pre-wired React components in @regna-verkt/ui. Per-component imports keep the bundle lean, so a single <CompanyCard /> on a marketing page does not pull the chart library or the chat client. Pass a publishable key and a company id and the component fetches its own data.

// app.tsx
import { CompanyCard } from '@regna-verkt/ui'
import { FinancialsTable } from '@regna-verkt/ui'
import { KeyStats } from '@regna-verkt/ui'

<CompanyCard      companyId="5567037485" publishableKey={key} />
<FinancialsTable  companyId="5567037485" publishableKey={key} years={5} />
<KeyStats         companyId="5567037485" publishableKey={key} />
<CompanyCard />

Compact company summary - name, org number, industry, key metrics.

<FinancialsTable />

Multi-year financials table - revenue, operating result, equity, year-over-year delta.

<KeyStats />

Market cap, P/E, P/B, dividend yield, beta, 52-week range for listed issuers.

<OwnershipChart />

Shareholder pie chart and top-N list, reconciled from filings.

<NewsFeed />

Chronological press releases and corporate events, deduped across sources.

<EventsCalendar />

Upcoming and past corporate events - earnings, dividends, AGM, splits.

See the full component catalogue →
Auth, schemas, spec

Bearer auth, OpenAPI, Postman.

Authentication

Bearer token in every request

A single header authenticates every call. Keys live in your dashboard; the rk_live_ prefix is the secret server-side variant. rk_public_ publishable keys are domain-bound for browser use.

Authorization: Bearer rk_live_...
OpenAPI 3.1

Generate clients in any language

The full surface is described in OpenAPI 3.1. Hand it to openapi-typescript, datamodel-code-generator, or any OpenAPI client generator.

https://regnaverkt.com/api/openapi.json
Postman (planned)

Importable collection

Auto-generated Postman / Insomnia / Bruno collection with example payloads. Tracked in #223. For now, import the OpenAPI spec above directly.

Rate limits

Predictable monthly quota

From 1,200 req/month on Basic up to 400,000 req/month on Business. Soft per-second burst limits keep noisy neighbours from tripping the quota.

See the pricing comparison →

Ready to integrate?

Get started with a Basic plan from $9/mo. No card required for the 14-day trial.