Skip to main content

Kontakto Business Data Service (1.0.0)

Download OpenAPI specification:Download

The Kontakto Business Data Service is a high-performance, low-latency API for accessing Finnish business data from multiple sources.

Engineered with exceptional speed in mind, Kontakto is an ideal solution for powering real-time, user-facing applications where performance is critical.

Example Use Cases:

  • Instant Autocomplete: Type-ahead search boxes that feel instantaneous to the user.
  • Real-time Data Enrichment: Enrich user profiles or company records on the fly without adding user-perceptible delay.
  • Dynamic Form Validation: Validate business information (like company names or VAT numbers) as users type.

Register for an API key

Create an account at Kontakto.fi and get your API key.

Health

Health check endpoint

Returns the health status of the API and database

Responses

Response samples

Content type
application/json
{
  • "status": "healthy",
  • "timestamp": "2024-01-01T00:00:00.000Z",
  • "database": "connected"
}

API Keys

Generate a new API Key (JWT)

Generates a new JWT token for API access, after validating a Supabase token and user permissions.

Authorizations:
dashboardAuth
Request Body schema: application/json
name
required
string non-empty
organizationId
required
string <uuid>
expiresInSeconds
number
Default: 31536000

Token expiry in seconds from now (default: 1 year)

Responses

Request samples

Content type
application/json
{
  • "name": "My API Key",
  • "organizationId": "373312f2-9cba-4046-a4f1-e515a7836997",
  • "expiresInSeconds": 31536000
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "tokenId": "string",
  • "expiresAt": "string"
}

Companies

Get company by business ID

Returns company details based on the business ID

Authorizations:
apiKeyAuth
path Parameters
businessId
required
string
Example: 1234567-8

Business ID of the company

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "businessId": "string",
  • "vatId": "string",
  • "businessName": "string",
  • "auxiliaryNames": [
    ],
  • "parallelNames": [
    ],
  • "operationalStatus": true,
  • "statusAsOf": "string",
  • "statusDescription": "string",
  • "countryCode": "string",
  • "languageCode": "string",
  • "domicileCity": "string",
  • "domicileCode": "string",
  • "industryDescription": "string",
  • "industryAsOf": "string",
  • "tol2008Code": "string",
  • "legalForm": "string",
  • "legalFormCode": "string",
  • "legalFormAsOf": "string",
  • "sector": "string",
  • "establishmentDate": "string",
  • "createdAt": "string",
  • "address": [
    ],
  • "website": [
    ],
  • "domain": [
    ],
  • "phoneNumber": [
    ],
  • "register": [
    ],
  • "eInvoiceAddress": [
    ],
  • "kontaktoRating": [
    ],
  • "updateHistory": [
    ],
  • "visibilityPolicy": [
    ]
}

Search

Search companies (typeahead)

Search companies with compact results for typeahead functionality. Hides black-rated companies and companies who have requested to be hidden from Kontakto platform by default. You can use advanced search to get all companies and do the filtering manually.

Authorizations:
apiKeyAuth
query Parameters
q
string
Example: q=Ratkaisu

Search query

limit
string
Example: limit=10

Maximum number of results

Responses

Response samples

Content type
application/json
{
  • "hits": [
    ],
  • "estimatedTotalHits": 0,
  • "processingTimeMs": 0
}

Advanced company search

Search companies using filter syntax. You can use operations =, !=, >=, >, <=, <, IN, NOT IN, TO, EXISTS, NOT EXISTS, IS NULL, IS NOT NULL, IS EMPTY, IS NOT EMPTY, CONTAINS, NOT CONTAINS, STARTS WITH, NOT STARTS WITH

Authorizations:
apiKeyAuth
Request Body schema: application/json
q
string

Search query

filter
string

Filter syntax

limit
number
Default: 10

Maximum number of results (1-100, default: 10)

offset
number
Default: 0

Number of results to skip

Responses

Request samples

Content type
application/json
{
  • "q": "Kontakto",
  • "filter": "kontaktoRating.color = \"green\" AND postalAddress.city = \"Helsinki\"",
  • "limit": 10,
  • "offset": 0
}

Response samples

Content type
application/json
{
  • "hits": [
    ],
  • "query": "Kontakto",
  • "processingTimeMs": 15,
  • "limit": 10,
  • "offset": 0,
  • "estimatedTotalHits": 471
}

Postal Codes

Search postal codes

Search postal codes with compact results

Authorizations:
apiKeyAuth
query Parameters
q
string
Example: q=Helsinki

Search query

limit
string
Example: limit=10

Maximum number of results

Responses

Response samples

Content type
application/json
{
  • "hits": [
    ],
  • "estimatedTotalHits": 0,
  • "processingTimeMs": 0
}