Search

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

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+
Financial reports /search-public/reports Enterprise+

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 Typesense filter docs).
sort_by string Comma-separated list of fields to sort by.
per_page int Number of results per page (max 50, persons max 5).
page int Page 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"
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": "Volvo",
    "query_by": "names.nameOrIdentifier",
    "per_page": 10,
    "page": 1
  }'

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"
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": "5565199493",
    "query_by": "registrationNumber",
    "per_page": 5,
    "page": 1
  }'

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 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 about geo-search 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 filters

POST allows you to 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:

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