Skip to main content
We provide an easy to use search API based on Typesense lightning-fast search database. That means that all features described in Typesense API version 29 is available in our API. Search index is stored on RAM memory meaning requests to our search serves very fast and you can use it for search-as-you-type, autocomplete and other applications. We today provide four rich search collections: In companies search you can query and filter by more than 187 fields listed in the next chapter. Examples on what you can query on:
  • Company Id (our system wide identifier for global companies used across all API calls)
  • Country code (ISO 2 letters)
  • Registrationnumber (For local region)
  • Most recent purpose
  • Names (all historic and current names)
  • Phonenumbers
  • Email addresses
  • Hyperlinks
  • Bankaccounts
  • Addresses (registered, visting and mailing address)
  • Document and case history
  • Stock
  • LEI
  • PIC (European Commission)
  • Franchises and licences
  • Involvement by representatives
  • Company representatives
  • Beneficial owners
  • Property tax
  • Vehicles
The response model (schema) depends on your query and if you use faceting. If you do plain search we have added to our OpenAPI Schema the default response model namned TypesenseCompanyDocument.

OpenAPI Schema

Look for the model name TypesenseCompanyDocument in the schema definition.

Important about redacted properties

Depending on price plan certain properties may not be included. For simplicity we add an object called redacted which contains a list of redacted properties. An example below shows how the JSON response would look like if you for example don’t have AUDITOR_ACCOUNTING_ISSUES to the properties mostRecentDebtorSummary and currentBeneficialOwners.
json

Fields indexed

The following fields are currently indexed in memory. These can be used in the query_by parameter and filter_by. Remember this is not the schema of the JSON response since it contains a large number of additional properties.

Category fields

Fields starting with the letter c are category fields. They contain typical intervals across all company types. Category fields are objects with the same type containing categoryCode, categoryCodeDescription and categoryCode2. categoryCode is the actual code used to describe the category and categoryCodeDescription contains a formatted string describing the categoryCode. categoryCode2 typically contains for example the year and month (formatted YYYYMM) or year (YYYY) for the various categories. Example: cTurnoverInterval contains is an object containing the turnover interval. cTradeImportInterval contains is an object containing the import interval (e.g how much the company is importing per year). Category fields are efficient when you query across multiple company types since only limited companies (Aktiebolag) typically submit annual reports (some exceptions other legal types may be required to submit an annual report). Therefore the goverment agency, Statistics Sweden, weekly compiles data across all legal entities types that we acquire and makes it easier to search within.

Unix time only

Typesense only allows unix timestamps to be indexed so search will only present time by the number of non-leap seconds that have elapsed since 00:00:00 UTC on 1st January 1970, the Unix epoch. Since we may have timestamps earlier than 1st January 1970 negative number of seconds may appear.

European Commission and participant status

ecParticipant.validationStatus can contain the following statuses: Declared Organisation registered by self-registrant. Will remain in this status if the validation is done decentrally by the National Agency. Validated Organisation validated centrally by REA (Research Executive Agency). Suspended The legal entity is “frozen” because of an external reason (Bankruptcy, etc.) as a result of central validation by REA (Research Executive Agency). Sleeping Some data was passed, but the contact person does not react on any demands from the REA (Research Executive Agency) validation team. Deprecated When duplication is identified by REA (Research Executive Agency), the validity will be Deprecated and the master PIC will be associated. Will not be published in the search. Blocked Blocked during the validation process by REA (Research Executive Agency).

Enums

Enums have been stored as plain text in search making it easier to service and not having to remember their numeric values.

Intelligence types

Intelligence records contains information about various discrepancies that we find in data. A record contains a score between 0 and 255 representing the significance of the discrepancy. If the score equals 0 is means it’s just for information while 255 means the discrepancy is very significant. Each intelligence record also comes with a human English text describing the discrepancy called intelligence.notes. List of intelligence.companyIntelligenceType below in the table. Please note that while searching you need to enter the value (Int32) and not the name itself. Value 2,4 and 6 are unused currently. They may appear in search result currently just for testing. The intelligence.externalId is used to reference an id containing the orgin of the intelligence record. If for example the intelligence record is of type: AnnualReportDiscrepancies (8) it means the external id represents the id of the annual report.

Intelligence subtypes

Certain intelligence types have subtypes to further describe what has been found. The intelligence.companyIntelligenceSubType is an enum text to make it easier to filter based on search. List of subtypes. Please note you need to filter by string when using intelligence.companyIntelligenceSubType. Check back continuously since we are adding more subtypes.

Examples

We have put together a few example of how you can use search to efficiently query the millions of companies we track.

Search for companies at at specific street

cURL

Search for a specific phone number in E164 format

What is E.164? E164 format is an international format for phone numbers. E.164 numbers are formatted [+] [country code] [subscriber number including area code] and can have a maximum of fifteen digits.
cURL

Search for companies within a certain geographic area

Search for companies covering a 300 meters radius around the provided location by latitude and longitude in WGS84 format. Read more about geosearch here.
cURL

Filter for a specific companyId

Filters allows you to narrow down your search. This example shows how to specifically match only the company with id 3508351. Read more about filters here.
cURL

Search for companies with specific industry names or codes

Searches for companies that have a number of specific industry codes as defined in SNI 2007 standard. You can search either for the name as described in the standard or the code itself.
cURL

Search for stock listed companies

Searches for companies listed on market exchange name, OMX Stockholm,
cURL

Search for companies that have sold to public actors

Searches for companies that have sold to Gävle municipality.
cURL

Search for intelligence records

Searches for companies that have passed auditor requirements by third consecutive year. Note that the score should exceed 254.
cURL
Multi search enables you to carry out multi searches in one request by posting a json model to the search endpoint. Typesense have a description of the feature in their documentation. Here is an example of how to use multisearch while searching for a company registration number, e-mail, stock ticker and LEI code.
cURL

Response model

The search response for example when you search for our company would look like the example below for our company.
The registrationDate is in Unix epoch seconds e.g the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT). Same applies for various dates since Typesense requires dates to be serialized to epoch. For example listingDate (stock) and nextRenewalDate (lei) are both epoch.
Search response for companies