Skip to main content
GET
List Companies

Authorizations

Authorization
string
header
required

API Key authentication using Bearer token

Headers

If-None-Match
string

ETag value from a previous response. Returns 304 Not Modified if data has not changed.

If-Modified-Since
string

HTTP date from a previous Last-Modified header. Returns 304 Not Modified if nothing has changed since.

Query Parameters

limit
integer

Number of companies to return per page (default 25, max 100).

cursor
string

Opaque pagination cursor returned as pagination.next_cursor from a previous response. Mutually exclusive with q.

fields
string

Comma-separated list of fields to include in the response. Available fields: id, name, slug, ticker, former_tickers.

q
string

Full-text search query (2-200 characters). Searches company names and aliases. Results are ranked by relevance instead of alphabetical order. Mutually exclusive with cursor.

mode
enum<string>

Set to semantic to match q by meaning rather than by name/ticker text. The match runs over each company's name, aliases, country, sector, industry and description, so it answers thematic questions a name match cannot ("defense contractors", "companies making battery cells").

Put geography in market, domicile or country rather than in q. A place name in q matches company names containing it ("Nordic ...", "Swedish ...") ahead of companies that actually do that thing.

Requires q, is mutually exclusive with cursor, and returns a single ranked page capped by limit; company, ticker, country, market, domicile, exchange, sector, listed, watchlist and is_active remain hard filters applied before the match, not after.

Each company gains a distance (raw cosine, lower is closer, rounded to 4dp). Compare it only within one response, never across responses: the scale is model-dependent. Ranking also blends in a small coverage bonus that distance does not reflect. A server-side relevance floor drops weak matches, so a page is frequently shorter than limit and can be empty. Raising limit does not recover floored rows.

The response pagination object carries count only. There is no next_cursor, since a distance ranking cannot be cursor-paginated, and the response is uncacheable (Cache-Control: no-cache, no-store, no ETag). If the query cannot be embedded the request returns 503 rather than silently falling back to name matching.

Available options:
semantic
company
string

Resolve specific company id values, comma-separated (maximum 25). This is the batch-resolve path for the company_id and company_ids values returned by the articles, stories, events and calendar endpoints. Look up a whole page of them in one request instead of one GET /companies/{identifier} per company. Every id must resolve, or the request is rejected with 400 naming the unknown ids. Results are returned in name order, not the order requested, so key off each row's id. Combined with ticker, the two filters intersect.

ticker
string

Resolve specific stock tickers, comma-separated (maximum 25). Accepts the exchange-suffixed form (e.g. VOLV-B.ST) and resolves former tickers; matching is case-insensitive. Unlike q this is an exact filter, so it returns no near-matches and supports cursor pagination. Every ticker must resolve, or the request is rejected with 400 naming the unknown values. Combined with company, the two filters intersect. A ticker shared by more than one issuer resolves to every matching company, so a batch can return more rows than the number of tickers sent. GET /companies/{identifier} tie-breaks such a ticker to a single company, this filter does not.

country
string

Legal domicile, ISO 3166-1 alpha-2 code (e.g. SE, NO, DK). Comma-separated for multiple (e.g. SE,NO). Case-insensitive. Synonym for domicile on this endpoint, kept for backward compatibility. If both country and domicile are sent, they intersect.

market
string

Filter to companies with an active equity listing in these countries' exchanges (ISO 3166-1 alpha-2, comma-separated, e.g. SE,NO). SE covers Nasdaq Stockholm, First North, Spotlight and NGM. Distinct from country/domicile (legal domicile). Includes foreign-domiciled but locally-listed issuers.

domicile
string

Filter to companies legally domiciled in these countries (ISO 3166-1 alpha-2, comma-separated). The canonical cross-surface name for what country already means on this endpoint; reaches unlisted companies and excludes foreign-domiciled but locally-listed issuers. Use market for market-coverage questions.

exchange
string

Filter by exchange MIC code, comma-separated for multiple (e.g. XSTO, XOSL,XCSE). Only companies with an active listing on the exchange match.

sector
string

Filter by industry sector (e.g. Financials, Industrials, Information Technology).

listed
string

When true, only return companies with at least one active stock exchange listing.

watchlist
string

When true, only return companies in the authenticated user's watchlist. Requires read:watchlist scope.

is_active
string

Filter by active status. When true, only return active companies. When false, only return inactive companies.

Response

Companies retrieved successfully

companies
object[]
required
pagination
object
Last modified on October 7, 2026