> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bigdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# bigdata_screen_companies

> Finds listed companies matching numeric and categorical criteria such as market cap, price, sector, industry, country and exchange.

## Overview

The Company Screener finds listed companies matching quantitative and classification criteria: market capitalization, share price, beta, trading volume, dividend per share, sector, industry, country, and exchange. Results are returned as both a CSV export and a structured data grid.

## When to Use

The Company Screener is the right tool when the user describes criteria rather than naming companies:

* "Find US technology companies worth more than \$10bn"
* "Which large-cap energy names pay a dividend?"
* "Show me low-beta healthcare stocks trading under \$50"
* "List German industrials with high trading volume"

Use `find_securities` instead when the user already names the companies, and `bigdata_company_tearsheet` when they want depth on a single company already identified.

## How It Works

The screener passes the requested filters directly to the underlying screening endpoint - no company lookup is needed, since results are discovered by criteria rather than resolved from a name or ticker.

Every numeric filter (market cap, price, beta, volume, dividend) is a bound: passing only `_more_than` or only `_lower_than` applies one side and leaves the other open, and omitting both leaves the filter out of the screen entirely. Only companies with a matching Bigdata.com Knowledge Graph entity are returned, so a screen can return fewer rows than `limit` even when more listings satisfy the filters, and results are not ranked, so a `limit` smaller than the number of matches returns an arbitrary subset - tighten the filters rather than raise the limit when a screen is too broad.

Three classification filters - `sector`, `industry`, and `exchange` - are each matched against a fixed list of known values, and an unrecognized value (a typo, the wrong case, or a code the screener doesn't cover) is rejected with an error rather than silently ignored or matched to zero rows. `country` is different: any real ISO 3166-1 alpha-2 country code is accepted, even one the screener has no listed companies for - only a code that isn't a real country is rejected.

## Parameters

| Parameter               | Type    | Required | Description                                                                                                                                                                                                                                              |
| ----------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `market_cap_more_than`  | integer | No       | Minimum market capitalization, in the listing's own trading currency (not converted). Pass the full amount, e.g. `10000000000` for \$10bn.                                                                                                               |
| `market_cap_lower_than` | integer | No       | Maximum market capitalization, in the listing's own trading currency (not converted).                                                                                                                                                                    |
| `price_more_than`       | number  | No       | Minimum share price, in the listing's own trading currency (not converted).                                                                                                                                                                              |
| `price_lower_than`      | number  | No       | Maximum share price, in the listing's own trading currency (not converted).                                                                                                                                                                              |
| `beta_more_than`        | number  | No       | Minimum beta (sensitivity to the wider market). Below 1.0 moves less than the market, above 1.0 more.                                                                                                                                                    |
| `beta_lower_than`       | number  | No       | Maximum beta. Use a value below 1.0 to screen for defensive, low-volatility names.                                                                                                                                                                       |
| `volume_more_than`      | integer | No       | Minimum average daily share volume, e.g. `1000000` to exclude illiquid listings.                                                                                                                                                                         |
| `volume_lower_than`     | integer | No       | Maximum average daily share volume.                                                                                                                                                                                                                      |
| `dividend_more_than`    | number  | No       | Minimum dividend per share paid over the last year, in the listing's own trading currency. Pass `0` to keep only dividend payers.                                                                                                                        |
| `dividend_lower_than`   | number  | No       | Maximum dividend per share paid over the last year, in the listing's own trading currency.                                                                                                                                                               |
| `sector`                | string  | No       | Company sector. Must match one of 11 known sectors exactly, e.g. `"Technology"`, `"Healthcare"`, `"Financial Services"`.                                                                                                                                 |
| `industry`              | string  | No       | Company industry, more specific than sector. Must match one of \~159 known industries exactly, e.g. `"Semiconductors"`, `"Banks - Regional"`, `"Biotechnology"`. Prefer `sector` when unsure of the exact industry name.                                 |
| `country`               | string  | No       | Two-letter ISO 3166-1 alpha-2 country code of the listing, e.g. `"US"`, `"GB"`, `"DE"`. Any real country code is accepted, though a screen returns no matches for a country with no listed companies. Also the way to keep a screen within one currency. |
| `exchange`              | string  | No       | MIC (Market Identifier Code, ISO 10383) of the exchange the company trades on, e.g. `"XNAS"` (Nasdaq), `"XNYS"` (NYSE), `"XLON"` (London Stock Exchange), `"XETR"` (Xetra). Must match one of \~71 known MIC codes exactly.                              |
| `is_etf`                | boolean | No       | `true` returns only ETFs, `false` excludes them. Omit for no ETF filter.                                                                                                                                                                                 |
| `is_fund`               | boolean | No       | `true` returns only mutual funds, `false` excludes them. Omit for no fund filter.                                                                                                                                                                        |
| `is_actively_trading`   | boolean | No       | `true` returns only currently-trading listings (most screens want this). `false` returns only delisted/suspended listings. Omit to include both.                                                                                                         |
| `limit`                 | integer | No       | Maximum number of companies to return. 1-100, default 25.                                                                                                                                                                                                |
| `metered_tokens`        | boolean | No       | When `true`, bills the exact amount of data delivered instead of a fixed per-call cost. Default `false`.                                                                                                                                                 |

<Note>
  `sector`, `industry`, and `exchange` reject a value outside their known list rather than ignoring it or matching nothing; `country` rejects anything that isn't a real ISO 3166-1 alpha-2 code, even one the screener has no listed companies for. If a screen comes back empty, check the value against the list before assuming there are no matching companies.
</Note>

## Data Returned

The response contains a CSV export of the matching companies plus a structured payload:

* **`companies`** - one row per matching company:
  * `rp_entity_id` - the RavenPack entity id
  * `symbol` - ticker symbol
  * `company_name` - full company name
  * `market_cap`, `price`, `last_annual_dividend` - in the listing's own trading currency
  * `sector`, `industry`
  * `beta`
  * `volume` - average daily share volume
  * `exchange`, `exchange_short_name`, `country`
  * `is_etf`, `is_actively_trading`
* **`metadata`** - the echoed screen parameters

<Warning>
  Market cap, price, and dividend per share are reported in each listing's own trading currency and are **not converted**. The corresponding filters apply to that raw local-currency value, so a screen spanning several countries mixes currencies and its numbers aren't directly comparable. Restrict the screen to one country or exchange when the comparison needs to be like-for-like.
</Warning>

## Use Cases

### Thematic Screening

Combine `sector` or `industry` with a market cap or price range to build a shortlist for a theme, e.g. "large-cap semiconductor companies" or "small-cap regional banks."

### Income Screening

Use `dividend_more_than` (with `0` to require a dividend at all) alongside `beta_lower_than` to find defensive income names.

### Regional Screening

Use `country` or `exchange` to keep a screen within a single market and currency, e.g. "German industrials" or "companies listed on the LSE (`XLON`)."

### Liquidity Filtering

Use `volume_more_than` to exclude illiquid listings before applying other criteria.

## Related Tools

* [`find_securities`](/mcp-reference/tools/find-securities) - when the companies are already named
* [`bigdata_company_tearsheet`](/mcp-reference/tools/bigdata-company-tearsheet) - for depth on a single company identified from the screen
* [`bigdata_portfolio_tearsheet`](/mcp-reference/tools/bigdata-portfolio-tearsheet) - for a consolidated data grid across a known list of companies
