Skip to Content

The Best Datreal Yet: Real Estate Maps, a New Design, Dark Mode. Read the Changelog

Datreal

Baltic & Nordic Company Registry API Documentation

Public API for company information, sanctions checks, person monitoring, and real-estate lookup across Latvia, Lithuania, Estonia, Finland and Sweden.

  • Quick Start
  • Use Cases
  • Endpoints
  • Technical Details
  • LLM Setup Guide
  • MCP Server

Table of Contents

  • Quick Start
  • Use Cases
  • Endpoints
  • Technical Details
  • LLM Setup Guide
  • MCP Server

Quick Start

The API is available without registration or authentication. All endpoints support CORS, so they can be used directly from the browser.

Base URL
https://datreal.com/api/public/v1

Example

Quick Start · cURL
curl "https://datreal.com/api/public/v1/companies/search?q=tallink&countryCode=EE&limit=5"

Use Cases

Endpoints grouped by use case so you can pick the right one without reading the full reference.

Lookup & Search

Search and pull full company profiles, address autocomplete and basic firmographics.

  • Search Companies
  • Get Company Details
  • Address Autofill
  • Get Company Financials

Ownership & Persons

Shareholders, beneficial owners (UBO) and identifier-backed person-to-company matches.

  • Get Shareholders & UBOs
  • Check Person by Name and Birth Date

Compliance

Sanctions, blacklists and tax compliance checks across LV, LT, EE, FI, SE.

  • Get Company Compliance
  • Get Company Taxes
  • Check Sanctions

Monitoring

Time-windowed change feeds - new registrations and other near-real-time signals.

  • New Company Registrations for Person

Real Estate

Search cadastre real estate and get per-object detail with recorded sales and value estimates where available.

  • Search Real Estate
  • Get Real Estate Details

API Discovery

Self-describing root that lists every endpoint and its parameters.

  • API Discovery

Endpoints

Lookup & Search

Search and pull full company profiles, address autocomplete and basic firmographics.

GET /companies/search

Search companies by name, address or registration number.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
limit(optional)
Result count (1-100, default: 20)
nace(optional)
NACE code prefix (e.g. J or 62). Can replace q.
page(optional)
Result page (starts at 1). Deep pages have a bounded search window.
q(optional)
Search query (minimum 2 characters). Required unless nace is provided.
GET /companies/search · cURL
curl "https://datreal.com/api/public/v1/companies/search?q=tallink&countryCode=EE&limit=5"

GET /companies/{regcode}

Get detailed information about a specific company, including sanctions status.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
regcode(required)
Company Registration Number
Response Includes
  • Basic information (name, address, legal form)
  • Registration and Closure Dates
  • Taxpayer rating and VAT status
  • NACE Code and Description
  • Financial Reports
  • Sanctions Status (IsSanctioned: True/false)
GET /companies/{regcode} · cURL
curl "https://datreal.com/api/public/v1/companies/40003245752?countryCode=LV"

GET /companies/autofill

Get company address and VAT data for form autofill. Optimized for address autocomplete in hobby projects.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
limit(optional)
Max results (1-50, default: 10)
q(required)
Company name or registration number (min. 2 characters)
Response Includes
  • Registration Number (Regcode)
  • Company Name
  • Full Legal Address
  • VAT Number (If Registered)
  • Country code (LV, LT, etc.)
GET /companies/autofill · cURL
curl "https://datreal.com/api/public/v1/companies/autofill?q=maxima&countryCode=LV&limit=5"

GET /companies/{regcode}/financials

Get yearly financial reports for a company. Returns 404 when no reports are filed.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
regcode(required)
Company Registration Number
Response Includes
  • reports - one entry per fiscal year: revenue, profit, assets, equity, employees, cash flow
  • totalYears - number of fiscal years returned
GET /companies/{regcode}/financials · cURL
curl "https://datreal.com/api/public/v1/companies/40003245752/financials?countryCode=LV"

Ownership & Persons

Shareholders, beneficial owners (UBO) and identifier-backed person-to-company matches.

GET /companies/{regcode}/shareholders

List published shareholders and beneficial owners (UBOs), including ownership percentages, share counts, entity types and counterpart registration codes for drilling into ownership chains.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
regcode(required)
Company Registration Number
Response Includes
  • shareholders - list of shareholders with name, regcode, share count and value
  • beneficialOwners - published UBO list with ownership share, nationality and registration date
  • shareholders[].ownershipPercent / beneficialOwners[].ownershipPercent
  • shareholders[].regcode - drill-through to the parent legal entity
GET /companies/{regcode}/shareholders · cURL
curl "https://datreal.com/api/public/v1/companies/40003245752/shareholders?countryCode=LV"

GET /people/check

Check matched company roles for a person where public identifiers allow confident linking.

Parameters
birthDate(required)
Birth date in ISO format (YYYY-MM-DD)
limit(optional)
Max companies per person (1-100, default: 50)
name(required)
Person's full name (min. 2 characters)

Returns matched roles where public person identifiers allow confident linking: beneficial owner, officer, member, shareholder, micro-enterprise

GET /people/check · cURL
curl "https://datreal.com/api/public/v1/people/check?name=Jānis%20Bērziņš&birthDate=1985-03-15"

Compliance

Sanctions, blacklists and tax compliance checks across LV, LT, EE, FI, SE.

GET /companies/{regcode}/compliance

Get VAT registration, tax rating, tax debt and compliance flags in one small payload.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
regcode(required)
Company Registration Number
Response Includes
  • vatNumber / vatStatus / vatRegisteredAt - VAT registration
  • taxRating / taxDebtAmount / hasTaxDebt - tax standing
  • isBlacklisted / isSuspendedActivity / hasMissingFinancialReports and other flags
  • Sanctions Status (IsSanctioned: True/false)
GET /companies/{regcode}/compliance · cURL
curl "https://datreal.com/api/public/v1/companies/40003245752/compliance?countryCode=LV"

GET /companies/{regcode}/taxes

Get recent year-by-year tax payments for a company, including income tax, social tax, total tax, and employee count.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
regcode(required)
Company Registration Number
Response Includes
  • taxPayments - up to 3 most recent years with available tax data
  • taxPayments[].totalTax / incomeTax / socialTax - yearly tax payment amounts
  • taxPayments[].employees - filed employee count for the year
GET /companies/{regcode}/taxes · cURL
curl "https://datreal.com/api/public/v1/companies/40003245752/taxes?countryCode=LV"

GET /companies/{regcode}/sanctions

Check if a company is on the sanctions list and get detailed information.

Parameters
countryCode(optional)
Filter by country code (LV, LT, EE, FI, SE)
regcode(required)
Company Registration Number
GET /companies/{regcode}/sanctions · cURL
curl "https://datreal.com/api/public/v1/companies/40003245752/sanctions?countryCode=LV"

Monitoring

Time-windowed change feeds - new registrations and other near-real-time signals.

GET /people/new-registrations

Get newly linked company roles for a matched person in the last N hours. Used for identifier-backed monitoring via cron jobs.

Parameters
birthDate(required)
Birth date in ISO format (YYYY-MM-DD)
hours(optional)
Time window in hours (1-168, default: 24)
limit(optional)
Max companies to return (1-1000, default: 100)
name(required)
Person's full name (min. 2 characters)
GET /people/new-registrations · cURL
curl "https://datreal.com/api/public/v1/people/new-registrations?name=Jānis%20Bērziņš&birthDate=1985-03-15&hours=24"

Real Estate

Search cadastre real estate and get per-object detail with recorded sales and value estimates where available.

GET /real-estate/search

Search cadastre real estate by address or cadastral number with object-type, owner-type, municipality, area, value, built-year and floor filters.

Parameters
bbox(optional)
Bounding box: west,south,east,north in WGS84 degrees
countryCode(optional)
Country whose cadastre to search. Omit to search all supported countries.
hasBusiness(optional)
Only objects linked to a business; use 1 to enable
hasListings(optional)
Only objects with an active listing; use 1 to enable
hasSales(optional)
Only objects with a recorded sale; use 1 to enable
maxArea(optional)
Maximum land/building/premises area in m²
maxBuiltYear(optional)
Maximum building/premises construction year
maxValue(optional)
Maximum cadastral value in the object's local currency
maxFloors(optional)
Maximum floors above ground
maxSalePrice(optional)
Maximum recorded sale price in the transaction's local currency
minArea(optional)
Minimum land/building/premises area in m²
minBuiltYear(optional)
Minimum building/premises construction year
minValue(optional)
Minimum cadastral value in the object's local currency
minFloors(optional)
Minimum floors above ground
minSalePrice(optional)
Minimum recorded sale price in the transaction's local currency
municipality(optional)
Municipality name, or several separated by commas
objectType(optional)
Property object type
ownerType(optional)
Effective owner classification, not owner identity
limit(optional)
Maximum results (1-100, default: 20)
page(optional)
Result page (starts at 1). Deep pages have a bounded search window.
q(optional)
Address text or cadastral/property identifier
GET /real-estate/search · cURL
curl "https://datreal.com/api/public/v1/real-estate/search?q=Br%C4%ABv%C4%ABbas%20iela&countryCode=LV&objectType=building&ownerType=legal_person&minBuiltYear=1900&minFloors=2&limit=5"

GET /real-estate/{cadastralNumber}

Cadastre facts, matched recorded sales, and a comparable-sales value estimate for one object.

Parameters
cadastralNumber(required)
Cadastral or property identifier
countryCode(required)
Country the identifier belongs to. Identifiers are not globally unique.
scheme(required)
Identifier scheme returned by real-estate search
GET /real-estate/{cadastralNumber} · cURL
curl "https://datreal.com/api/public/v1/real-estate/01000302015?countryCode=LV&scheme=LV_CADASTRAL_OBJECT"

API Discovery

Self-describing root that lists every endpoint and its parameters.

GET /

API discovery endpoint that returns full documentation in JSON format.

GET / · cURL
curl "https://datreal.com/api/public/v1"

Technical Details

CORS
All endpoints support CORS with * origin, allowing direct browser access to the API.
Rate Limits
Rate limits are applied to prevent abuse. Company endpoints: 20 req/10s. Real-estate endpoints: 20 req/10s. Person check: 20 req/10s. New registrations: 10 req/60s.
Error Codes
  • 400 - Invalid request (missing or invalid parameters)
  • 404 - apiDocs.error404
  • 429 - Rate Limit Exceeded
  • 500 - apiDocs.error500

LLM Setup Guide

Use this guide to configure AI assistants and language models to work with the Datreal.com API. The prompt below contains all the information an LLM needs to understand and use the API correctly.

Copy for LLM

Copy this prompt and paste it into your LLM (ChatGPT, Claude, etc.) to enable it to use the Datreal.com API for Baltic and Nordic company lookups.

Code
1# Datreal.com API Integration Guide2
3You are integrating with the Datreal.com public API for Baltic and Nordic (LV, LT, EE, FI, SE) company and real-estate data. Here is everything you need to know:4
5## Base URL6https://datreal.com/api/public/v17
8## Authentication9No authentication required. The API is publicly accessible.10
11## Available Endpoints12
13### 1. Search Companies14GET /companies/search?q={query}&countryCode={countryCode}&limit={limit}&page={page}15- countryCode (optional): Country code to filter results (LV, LT, EE, FI, SE).16- limit (optional): Maximum results (1-100); minimum 1; maximum 100; default 2017- nace (optional): Filter by NACE code prefix (section letter or numeric code, e.g. J or 62). Can be used without q to browse companies by activity18- page (optional): Result page number. Deep pages are bounded to the search result window.; minimum 1; default 119- q (optional): Search query (minimum 2 characters). Required unless nace is provided20- Returns: Paginated matching companies with regcode, name, address, status, page and pageSize21
22### 2. Address Autofill23GET /companies/autofill?q={query}&countryCode={countryCode}&limit={limit}24- q (required): Company name or registration number, minimum 2 characters25- countryCode (optional): Country code to filter (LV, LT, EE, FI, SE)26- limit (optional): Results count, 1-50, default 1027- Returns: Slim company rows with address and VAT number for forms28
29### 3. Get Company Details30GET /companies/{regcode}?countryCode={countryCode}31- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.32- regcode (required): Company registration number33- Returns: Full company details including financials, tax rating, VAT status, sanctions status34
35### 4. Get Company Financials36GET /companies/{regcode}/financials?countryCode={countryCode}37- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.38- regcode (required): Company registration number39- Returns: Yearly financial reports with revenue, profit, assets, equity and employees, plus totalYears40
41### 5. Get Shareholders & Beneficial Owners42GET /companies/{regcode}/shareholders?countryCode={countryCode}43- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.44- regcode (required): Company registration number45- Returns: available shareholders[], beneficialOwners[], totalShareholders, totalBeneficialOwners where registries publish ownership data46
47### 6. Get Company Compliance48GET /companies/{regcode}/compliance?countryCode={countryCode}49- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.50- regcode (required): Company registration number51- Returns: VAT registration, tax rating, tax debt, sanctions signals and compliance flags52
53### 7. Get Company Taxes54GET /companies/{regcode}/taxes?countryCode={countryCode}55- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.56- regcode (required): Company registration number57- Returns: Up to 3 recent yearly tax payment rows with totalTax, incomeTax, socialTax, and employees58
59### 8. Check Sanctions60GET /companies/{regcode}/sanctions?countryCode={countryCode}61- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.62- regcode (required): Company registration number63- Returns: Sanctions status and list of any active sanctions64
65### 9. Check Person66GET /people/check?name={name}&birthDate={birthDate}&limit={limit}67- birthDate (required): Birth date in ISO format (YYYY-MM-DD)68- limit (optional): Maximum number of companies to return per person; minimum 1; maximum 100; default 5069- name (required): Full name of the person (minimum 2 characters)70- Returns: Matched company roles where public person identifiers allow confident linking (board member, shareholder, beneficial owner, etc.)71
72### 10. New Registrations73GET /people/new-registrations?name={name}&birthDate={birthDate}&hours={hours}&limit={limit}74- birthDate (required): Birth date in ISO format (YYYY-MM-DD)75- hours (optional): Time window in hours to check for new registrations; minimum 1; maximum 168; default 2476- limit (optional): Maximum number of companies to return; minimum 1; maximum 100; default 10077- name (required): Full name of the person (minimum 2 characters)78- Returns: Newly linked company roles for matched people within the time window79
80### 11. Search Real Estate81GET /real-estate/search?q={query}&countryCode={countryCode}&bbox={bbox}&hasBusiness={hasBusiness}&hasListings={hasListings}&hasSales={hasSales}&maxArea={maxArea}&maxBuiltYear={maxBuiltYear}&maxValue={maxValue}&maxFloors={maxFloors}&maxSalePrice={maxSalePrice}&minArea={minArea}&minBuiltYear={minBuiltYear}&minValue={minValue}&minFloors={minFloors}&minSalePrice={minSalePrice}&municipality={municipality}&objectType={objectType}&ownerType={ownerType}&limit={limit}&page={page}82- bbox (optional): Viewport bounding box as west,south,east,north in WGS84 degrees83- countryCode (optional): Country whose cadastre to search (LV, LT, EE, FI, SE). Omit to search all supported cadastres..84- hasBusiness (optional): Only objects linked to a business; use 1 to enable85- hasListings (optional): Only objects with an active listing; use 1 to enable86- hasSales (optional): Only objects with a recorded sale; use 1 to enable87- maxArea (optional): Maximum land/building/premises area in m²88- maxBuiltYear (optional): Maximum building/premises construction year89- maxValue (optional): Maximum cadastral value in the object's local currency90- maxFloors (optional): Maximum floors above ground91- maxSalePrice (optional): Maximum recorded sale price in the transaction's local currency92- minArea (optional): Minimum land/building/premises area in m²93- minBuiltYear (optional): Minimum building/premises construction year94- minValue (optional): Minimum cadastral value in the object's local currency95- minFloors (optional): Minimum floors above ground96- minSalePrice (optional): Minimum recorded sale price in the transaction's local currency97- municipality (optional): Municipality name, or several comma-separated98- objectType (optional): Property object type99- ownerType (optional): Effective owner classification (not owner identity)100- limit (optional): Maximum number of results; minimum 1; maximum 100; default 20101- page (optional): Result page number. Deep pages are bounded to the search result window.; minimum 1; default 1102- q (optional): Address text or cadastral/property identifier103- Returns: Matching cadastre objects with address, municipality, area, value, and coordinates104
105### 12. Get Property Details106GET /real-estate/{cadastralNumber}?countryCode={countryCode}&scheme={identifierScheme}107- cadastralNumber (required): Cadastral/property identifier108- countryCode (required): Country the identifier belongs to (LV, LT, EE, FI, SE). Required because identifiers are not globally unique across supported cadastres.109- scheme (required): Identifier scheme returned by real-estate search (for example LV_CADASTRAL_OBJECT)110- Returns: Cadastre facts, matched transaction history, and value estimate where available111
112## Rate Limits113- Company endpoints: 20 requests per 10 seconds114- Real-estate endpoints: 20 requests per 10 seconds115- Person check: 20 requests per 10 seconds116- New registrations: 10 requests per 60 seconds117
118## Response Format119All responses are JSON. Successful responses return 200 OK.120
121## Error Codes122- 400: Invalid request (missing or invalid parameters)123- 404: Company or person not found124- 429: Rate limit exceeded125- 500: Server error126
127## CORS128All endpoints support CORS with * origin, allowing direct browser access.129
130## Caching131Responses are cached for 30 minutes with stale-while-revalidate of 1 hour.132
133## Example Usage134To search for a company: GET https://datreal.com/api/public/v1/companies/search?q=example&limit=10135To get company details: GET https://datreal.com/api/public/v1/companies/40003245752?countryCode=LV136To check sanctions: GET https://datreal.com/api/public/v1/companies/40003245752/sanctions?countryCode=LV137To search real estate: GET https://datreal.com/api/public/v1/real-estate/search?countryCode=LV&municipality=Rīga&objectType=land&ownerType=legal_person&minBuiltYear=1900

MCP Server

Connect Claude Desktop, Claude Code, or any MCP-compatible AI client directly to our company data using the Model Context Protocol (MCP). No API keys needed.

Setup for Claude Code

Run this command in your terminal to add the MCP server to Claude Code:

Code
claude mcp add datreal --transport http https://datreal.com/api/mcp

Setup for Claude Desktop

Add the following to your Claude Desktop configuration file:

Code
1{2  "mcpServers": {3    "datreal": {4      "type": "url",5      "url": "https://datreal.com/api/mcp"6    }7  }8}
macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
%APPDATA%\Claude\claude_desktop_config.json

MCP Server Endpoint

Server URL (Streamable HTTP)
https://datreal.com/api/mcp

Available Tools

search_companies
Search companies by name, address, or registration number across LV, LT, EE, FI, SE.
get_company_details
Get full company info: name, address, legal form, VAT, tax rating, NACE code, sanctions, officers, activities, insolvency/liquidation proceedings, structural units, 3 latest tax-payment years, and latest financials.
get_company_financials
Get multi-year financial statements: revenue, profit, assets, equity, employees, liabilities, and cash flow.
get_shareholders
Available shareholders and beneficial owners (UBOs) with ownership percentages, share counts and counterpart regcodes where registries publish them.
get_company_compliance
Get VAT number, tax rating, sanctions status, tax debt, blacklist status, and all compliance flags.
search_real_estate
Search cadastre real estate by address or cadastral number with object-type, owner-type, municipality, area, value, built-year and floor filters.
get_real_estate_details
Cadastre facts, matched recorded sales, and a comparable-sales value estimate for one object.
check_company_sanctions
Check whether a company is on a sanctions list and get the matching entries.
get_company_taxes
Get year-by-year tax payments: income tax, social tax, total tax and employees.
check_person
Find a person's company roles by full name and birth date.
get_person_new_registrations
Get a person's company roles linked in the last N hours, for monitoring.

Example Usage

Once connected, you can ask Claude questions like:

  • "What is the revenue of SIA Maxima Latvija?"
  • "Show me the financial history of company 40003245752"
  • "Is this company sanctioned? Check regcode 40003245752"
  • "Find Estonian companies named Bolt"
  1. Home
  2. Baltic & Nordic Company Registry API Documentation

Explore

  • Search Datreal
  • Industries
  • Comparisons
  • Real Estate

Useful

  • Salary Calculator
  • Unemployment Benefit Calculator
  • Dividend Tax Calculator
  • Maternity Benefit Calculator
  • Sick Leave Calculator
  • Glossary
  • Find Companies in One Step

For Developers

  • API Solutions
  • API Documentation
  • MCP Server

Contact

Share feedback, ask a question, or contribute.

© 2026 Datreal

  • Changelog
  • Privacy Policy
  • Terms of Use
  • Legal and Data Notice
•Status Opens in a New Tab
—
•
•