TIC

The TIC LENS search API runs on an in-memory search index. This makes it ideal for search-as-you-type, autocomplete, geo-search, and other latency-sensitive applications.

Collections

Collection Endpoint Minimum plan
Companies /search-public/companies Pro+
Persons /search-public/persons Enterprise+
Workplaces /search-public/workplaces Max+
Vehicles /search-public/vehicles Pro+
Properties /search-public/properties Max+
Bankruptcies /search-public/bankruptcies Max+

Parameters

Parameter Type Description
q string The search query. Use * to match all documents.
query_by string Comma-separated list of fields to search in.
filter_by string Filter expression, see Filter syntax.
sort_by string Comma-separated list of fields to sort by, each with :asc or :desc.
per_page int Number of results per page (max 50; persons max 5).
page int Page number (1-based).
include_fields string Comma-separated list of the fields each hit returns, nothing else: a field (names), a nested field (mostRecentRegisteredAddress.city) or a whole object (mostRecentFinancialSummary).
exclude_fields string Comma-separated list of fields to leave out of each hit, in the same forms as include_fields. With both, exclude_fields removes from what include_fields keeps.

POST is recommended for complex queries. GET is convenient for quick lookups and search-as-you-type.

Filter syntax

Expression Matches
field:value A string field containing the value, or a number field equal to it
field:=value A string field equal to the value
field:[a, b] Any of the values
field:!=value Everything except the value
field:>100, field:>=100, field:<100, field:<=100 Numeric comparisons
field:[10..100] A numeric range, both ends included
field:(lat, lng, 5 km) A geo point within the radius (km or mi)

Combine expressions with && (and) and || (or), and group them with parentheses. Wrap values that contain spaces or commas in backticks. In a GET query string, encode && as %26%26.

Search by name

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=Volvo&query_by=names.nameOrIdentifier"

Search by registration number

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=5565199493&query_by=registrationNumber"

Search by phone number (E.164)

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=+46850565800&query_by=phoneNumbers.e164PhoneNumber"

Geo-search within a radius

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=*&query_by=mostRecentRegisteredAddress.streetAddress&filter_by=mostRecentRegisteredAddress.location:(57.6799,12.09162,0.300 km)&sort_by=mostRecentRegisteredAddress.location(57.6799,12.09162):asc"

Sorting on location(lat, lng):asc returns the nearest first.

Filter by companyId

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=*&query_by=registrationNumber&filter_by=companyId:[3508351]"

Search by SNI industry code

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=45111&query_by=sniCodes.sni_2007Code"

Stock-listed companies

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=OMX+Stockholm&query_by=stock.marketExchangeName"

Intelligence records

curl -H "x-api-key: YOUR_API_KEY" \
  "https://lens-api.tic.io/search-public/companies?q=*&query_by=registrationNumber&filter_by=intelligence.companyIntelligenceSubType:['MISSING_AUDITOR']%26%26intelligence.score:>254"

POST with complex filters

POST lets you send structured search requests in JSON with complex filter expressions:

curl -X POST "https://lens-api.tic.io/search-public/companies" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "q": "*",
    "query_by": "registrationNumber",
    "filter_by": "mostRecentFinancialSummary.fn_NumberOfEmployees:>100 && mostRecentRegisteredAddress.city:Stockholm",
    "sort_by": "mostRecentFinancialSummary.rs_NetSalesK:desc",
    "per_page": 20,
    "page": 1
  }'

Pro tier filtering

On the Pro plan, company search automatically excludes certain legal entity types and ceased companies. Max and Enterprise plans have unfiltered access to all records.

Redacted properties

Depending on your plan, certain properties may be excluded from search results. The response includes a redacted array listing the omitted fields:

{
  "redacted": ["mostRecentDebtorSummary", "currentBeneficialOwners"]
}

Date handling

All date fields are in Unix epoch seconds (seconds since 1970-01-01 00:00:00 UTC). Companies registered before 1970 will have negative values. Filter dates with numeric comparisons on the epoch value.

SNI codes - 2007 and 2025

Since December 2024, industry codes have been migrating from SNI 2007 to SNI 2025. We recommend searching on both sniCodes.sni_2007Code and sniCodes.sni_2025Code during the transition. Search results include both code systems.

Intelligence types

Intelligence records flag discrepancies found in company data. Each record has a score between 0 (informational) and 255 (severe).

When filtering by intelligence.companyIntelligenceType, use the numeric value:

Value Type Description
0 CreatedAsShelfCompany Company was created as a shelf company
1 SuspectedForQuickLiquidation Suspected quick liquidation
3 AffiliatedWithArticle Affiliated with one or more articles
5 SuspectedAddress Address has been flagged
7 PresentOnWarningList Present on certain warning lists
8 AnnualReportDiscrepancies Annual report contains discrepancies
9 AuditorResignation Auditor has resigned
10 Registration Issues with registration
11 RegisterChanges Registry change triggered a policy
12 PenaltyFees Penalized by a fee
13 BeneficialOwner Issues with beneficial owner registration
14 Claims Claims from government agencies

Intelligence subtypes

Filter by intelligence.companyIntelligenceSubType using the string value:

Subtype Description
BS_MISMATCH Balance sheet doesn’t balance
AGM_TO_LATE Annual general meeting held too late
AR_TO_LATE Annual report submitted too late
MISSING_AUDITOR Missing required auditor
LIQUIDATION_REQUIRED Subject to liquidation requirements
F_TAX_REVOKED F-tax registration revoked
AUDITOR_DISCOURGES Auditor discourages the balance/result sheet
AUDITOR_ACCOUNTING_ISSUES Auditor mentions accounting issues
AUDITOR_EARLY_RESIGNATION Auditor made an early resignation
NEGATIVE_SHARECAPITAL Negative share capital in balance sheet
FORBIDDEN_LOAN Management report mentions a forbidden loan

See the full list of subtypes in the API reference.

Category fields

Fields starting with c (e.g. cTurnoverInterval, cNbrEmployeesInterval) are statistical category fields compiled weekly from official business statistics across all legal entity types. Each contains:

  • categoryCode - numeric code
  • categoryCodeDescription - human-readable description

These are useful for filtering across company types that don’t submit annual reports.