Skip to main content
The TIC LENS search API is built on Typesense, a lightning-fast search engine that stores its index in RAM. This makes it ideal for search-as-you-type, autocomplete, geo-search, and other latency-sensitive applications. All features described in the Typesense API (v29) are available through our proxy endpoints.

Collections

CollectionEndpointMinimum plan
Companies/search-public/companiesPro+
Persons/search-public/personsEnterprise+
Workplaces/search-public/workplacesMax+
Vehicles/search-public/vehiclesPro+
Properties/search-public/propertiesMax+
Bankruptcies/search-public/bankruptciesMax+
Financial reports/search-public/reportsEnterprise+

Parameters

ParameterTypeDescription
qstringThe search query. Use * to match all documents.
query_bystringComma-separated list of fields to search in.
filter_bystringFilter expression (see Typesense filter docs).
sort_bystringComma-separated list of fields to sort by.
per_pageintNumber of results per page (max 50; persons max 5).
pageintPage number (1-based).
POST is recommended for complex queries. GET is convenient for quick lookups and search-as-you-type.

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"
Read more in the Typesense geo-search docs.

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. Typesense only supports Unix timestamps.

SNI codes — 2007 and 2025

Since December 2024, Statistics Sweden (SCB) has 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:
ValueTypeDescription
0CreatedAsShelfCompanyCompany was created as a shelf company
1SuspectedForQuickLiquidationSuspected quick liquidation
3AffiliatedWithArticleAffiliated with one or more articles
5SuspectedAddressAddress has been flagged
7PresentOnWarningListPresent on certain warning lists
8AnnualReportDiscrepanciesAnnual report contains discrepancies
9AuditorResignationAuditor has resigned
10RegistrationIssues with registration
11RegisterChangesRegistry change triggered a policy
12PenaltyFeesPenalized by a fee
13BeneficialOwnerIssues with beneficial owner registration
14ClaimsClaims from government agencies

Intelligence subtypes

Filter by intelligence.companyIntelligenceSubType using the string value:
SubtypeDescription
BS_MISMATCHBalance sheet doesn’t balance
AGM_TO_LATEAnnual general meeting held too late
AR_TO_LATEAnnual report submitted too late
MISSING_AUDITORMissing required auditor
LIQUIDATION_REQUIREDSubject to liquidation requirements
F_TAX_REVOKEDF-tax registration revoked
AUDITOR_DISCOURGESAuditor discourages the balance/result sheet
AUDITOR_ACCOUNTING_ISSUESAuditor mentions accounting issues
AUDITOR_EARLY_RESIGNATIONAuditor made an early resignation
NEGATIVE_SHARECAPITALNegative share capital in balance sheet
FORBIDDEN_LOANManagement 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 by Statistics Sweden 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.