Public API for company information, sanctions checks, person monitoring, and real-estate lookup across Latvia, Lithuania, Estonia, Finland and Sweden.
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
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.
Ownership & Persons
Shareholders, beneficial owners (UBO) and identifier-backed person-to-company matches.
Compliance
Sanctions, blacklists and tax compliance checks across LV, LT, EE, FI, SE.
Monitoring
Time-windowed change feeds - new registrations and other near-real-time signals.
Real Estate
Search cadastre real estate and get per-object detail with recorded sales and value estimates where available.
Endpoints
Lookup & Search
Search and pull full company profiles, address autocomplete and basic firmographics.
GET /companies/search
/companies/searchSearch 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.
curl "https://datreal.com/api/public/v1/companies/search?q=tallink&countryCode=EE&limit=5"GET /companies/{regcode}
/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)
curl "https://datreal.com/api/public/v1/companies/40003245752?countryCode=LV"GET /companies/autofill
/companies/autofillGet 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.)
curl "https://datreal.com/api/public/v1/companies/autofill?q=maxima&countryCode=LV&limit=5"GET /companies/{regcode}/financials
/companies/{regcode}/financialsGet 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
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 /people/check
/people/checkCheck 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
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
/companies/{regcode}/complianceGet 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)
curl "https://datreal.com/api/public/v1/companies/40003245752/compliance?countryCode=LV"GET /companies/{regcode}/taxes
/companies/{regcode}/taxesGet 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
curl "https://datreal.com/api/public/v1/companies/40003245752/taxes?countryCode=LV"GET /companies/{regcode}/sanctions
/companies/{regcode}/sanctionsCheck 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
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
/people/new-registrationsGet 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)
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
/real-estate/searchSearch 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
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}
/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
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.
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.error404429- Rate Limit Exceeded500- 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.
# Datreal.com API Integration Guide
You 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:
## Base URLhttps://datreal.com/api/public/v1
## AuthenticationNo authentication required. The API is publicly accessible.
## Available Endpoints
### 1. Search CompaniesGET /companies/search?q={query}&countryCode={countryCode}&limit={limit}&page={page}- countryCode (optional): Country code to filter results (LV, LT, EE, FI, SE).- limit (optional): Maximum results (1-100); minimum 1; maximum 100; default 20- 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 activity- page (optional): Result page number. Deep pages are bounded to the search result window.; minimum 1; default 1- q (optional): Search query (minimum 2 characters). Required unless nace is provided- Returns: Paginated matching companies with regcode, name, address, status, page and pageSize
### 2. Address AutofillGET /companies/autofill?q={query}&countryCode={countryCode}&limit={limit}- q (required): Company name or registration number, minimum 2 characters- countryCode (optional): Country code to filter (LV, LT, EE, FI, SE)- limit (optional): Results count, 1-50, default 10- Returns: Slim company rows with address and VAT number for forms
### 3. Get Company DetailsGET /companies/{regcode}?countryCode={countryCode}- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.- regcode (required): Company registration number- Returns: Full company details including financials, tax rating, VAT status, sanctions status
### 4. Get Company FinancialsGET /companies/{regcode}/financials?countryCode={countryCode}- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.- regcode (required): Company registration number- Returns: Yearly financial reports with revenue, profit, assets, equity and employees, plus totalYears
### 5. Get Shareholders & Beneficial OwnersGET /companies/{regcode}/shareholders?countryCode={countryCode}- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.- regcode (required): Company registration number- Returns: available shareholders[], beneficialOwners[], totalShareholders, totalBeneficialOwners where registries publish ownership data
### 6. Get Company ComplianceGET /companies/{regcode}/compliance?countryCode={countryCode}- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.- regcode (required): Company registration number- Returns: VAT registration, tax rating, tax debt, sanctions signals and compliance flags
### 7. Get Company TaxesGET /companies/{regcode}/taxes?countryCode={countryCode}- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.- regcode (required): Company registration number- Returns: Up to 3 recent yearly tax payment rows with totalTax, incomeTax, socialTax, and employees
### 8. Check SanctionsGET /companies/{regcode}/sanctions?countryCode={countryCode}- countryCode (optional): Country the registration number belongs to (LV, LT, EE, FI, SE). Omit only when the code is unique across supported company registries.- regcode (required): Company registration number- Returns: Sanctions status and list of any active sanctions
### 9. Check PersonGET /people/check?name={name}&birthDate={birthDate}&limit={limit}- birthDate (required): Birth date in ISO format (YYYY-MM-DD)- limit (optional): Maximum number of companies to return per person; minimum 1; maximum 100; default 50- name (required): Full name of the person (minimum 2 characters)- Returns: Matched company roles where public person identifiers allow confident linking (board member, shareholder, beneficial owner, etc.)
### 10. New RegistrationsGET /people/new-registrations?name={name}&birthDate={birthDate}&hours={hours}&limit={limit}- birthDate (required): Birth date in ISO format (YYYY-MM-DD)- hours (optional): Time window in hours to check for new registrations; minimum 1; maximum 168; default 24- limit (optional): Maximum number of companies to return; minimum 1; maximum 100; default 100- name (required): Full name of the person (minimum 2 characters)- Returns: Newly linked company roles for matched people within the time window
### 11. Search Real EstateGET /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}- bbox (optional): Viewport bounding box as west,south,east,north in WGS84 degrees- countryCode (optional): Country whose cadastre to search (LV, LT, EE, FI, SE). Omit to search all supported cadastres..- 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 comma-separated- objectType (optional): Property object type- ownerType (optional): Effective owner classification (not owner identity)- limit (optional): Maximum number of results; minimum 1; maximum 100; default 20- page (optional): Result page number. Deep pages are bounded to the search result window.; minimum 1; default 1- q (optional): Address text or cadastral/property identifier- Returns: Matching cadastre objects with address, municipality, area, value, and coordinates
### 12. Get Property DetailsGET /real-estate/{cadastralNumber}?countryCode={countryCode}&scheme={identifierScheme}- cadastralNumber (required): Cadastral/property identifier- countryCode (required): Country the identifier belongs to (LV, LT, EE, FI, SE). Required because identifiers are not globally unique across supported cadastres.- scheme (required): Identifier scheme returned by real-estate search (for example LV_CADASTRAL_OBJECT)- Returns: Cadastre facts, matched transaction history, and value estimate where available
## Rate Limits- Company endpoints: 20 requests per 10 seconds- Real-estate endpoints: 20 requests per 10 seconds- Person check: 20 requests per 10 seconds- New registrations: 10 requests per 60 seconds
## Response FormatAll responses are JSON. Successful responses return 200 OK.
## Error Codes- 400: Invalid request (missing or invalid parameters)- 404: Company or person not found- 429: Rate limit exceeded- 500: Server error
## CORSAll endpoints support CORS with * origin, allowing direct browser access.
## CachingResponses are cached for 30 minutes with stale-while-revalidate of 1 hour.
## Example UsageTo search for a company: GET https://datreal.com/api/public/v1/companies/search?q=example&limit=10To get company details: GET https://datreal.com/api/public/v1/companies/40003245752?countryCode=LVTo check sanctions: GET https://datreal.com/api/public/v1/companies/40003245752/sanctions?countryCode=LVTo search real estate: GET https://datreal.com/api/public/v1/real-estate/search?countryCode=LV&municipality=Rīga&objectType=land&ownerType=legal_person&minBuiltYear=1900MCP 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:
claude mcp add datreal --transport http https://datreal.com/api/mcpSetup for Claude Desktop
Add the following to your Claude Desktop configuration file:
{ "mcpServers": { "datreal": { "type": "url", "url": "https://datreal.com/api/mcp" } }}- 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"