Guide
Integration patterns
How the API resources combine in common B2B flows.
1. Onboarding business customers
Let the customer enter their company registration number once. Then pull the registry fields automatically and check that the business is still active.
-
GET /companies/{id}gives name, address, status and tax registrations. -
GET /companies/{id}/historyshows reported insolvency proceedings and former names. -
GET /companies/{id}/financials/latestgives the most recently reported size and equity ratio.
2. Selection and enrichment
Start with a narrow segment and only pull more data for the companies that genuinely matter.
-
GET /companies?county=…&sni=…&revenue_min=…&sort=revenuebuilds the base selection. -
GET /companies/{id}/webadds the verified website and LinkedIn profile. -
GET /companies/{id}/contactretrieves an email address when the plan has contact allowance left. -
GET /companies/{id}/workplacesshows local presence and the head office.
Always respect advertising_block. The unique-companies limit is sized for targeted selections and ongoing integrations, not for copying the whole registry.
3. Monitoring a portfolio of companies
Combine insider trading and short positions with your own list of companies and instruments.
-
Poll
GET /changes?dataset=insider_transactions&after=…at whatever interval suits your product. - Save the page cursor after a successful run and continue from there next time.
-
Build your own alerts for purchases using
direction=buyand a meaningfulmin_value. -
Use
GET /market/insider-summary?days=30for a quick net picture per company.
# Enkel bevakningsloop: hämta allt nytt sedan förra körningen.
cursor = load_saved_cursor() # None första gången
params = {"dataset": "insider_transactions", "limit": 200}
if cursor:
params["cursor"] = cursor
else:
params["after"] = "2026-08-01"
while True:
page = session.get(f"{BASE}/changes", params=params, timeout=30).json()
handle(page["data"])
if not page["has_more"]:
break
params = {"dataset": "insider_transactions", "limit": 200, "cursor": page["next_cursor"]}
save_cursor(page["next_cursor"])
4. Company and trademark monitoring
-
GET /changes?dataset=insolvency&after=…finds new insolvency observations. -
GET /changes?dataset=new_companies&after=…surfaces newly registered companies as a running feed. -
GET /trademarks/changes?kind=expiring&until=…finds marks approaching their expiry date. -
GET /trademarks?query=…searches for marks resembling a name you are watching.
Recommendations for production
- Cache stable registry data when the same company is read often. Twenty-four hours is a reasonable starting point.
- Keep cache lifetimes short for market feeds, where the value is in the freshness.
-
Log
X-Request-Idalongside your own correlation id for fast debugging. -
Put
/statusin your monitoring so you can tell a source problem apart from a fault in your own integration.