If you have the task of making many API queries with complex selections from a financial database, then our powerful Screener API tool is perfect for you.

The Screener API allows users to filter out companies with defined parameters – such as market capitalization, exchange, industry, dividend yield, and a bunch of others – in a fraction of a second.

For example, how to filter out companies in the biological sector with a capitalization of 2 to 5 billion, starting with A, with a dividend yield > 9% and which yesterday had growth from 10% to 20% and, if desired, with a number of conditions. In our screener, you will receive a ready-made sample for analysis in a fraction of a second.

Quick Start

The Screener API is available under ‘All World Extended’ and ‘All-In-One’ data packages. Each Screener API request consumes 5 API calls. The Screener API is a powerful tool that helps you filter out tickers with the given parameters.

The example of URL for the Screener API:

https://eodhistoricaldata.com/api/screener?api_token=YOUR_API_TOKEN&sort=market_capitalization.desc&filters=[["market_capitalization",">",1000],["name","match","apple"],["code","=","AAPL"],["exchange","=","us"],["sector","=","Technology"]]&limit=10&offset=0
  • filters: String. OPTIONAL. Usage: filters=[[“field1”, “operation1”, value1],[“field2”, “operation2”, value2] , … ]. Filters out tickers by different fields.
  • signals: String. OPTIONAL. Usage: signals=signal1,signal2,…,signalN. Filter out tickers by signals, the calculated fields.
  • sort: String. OPTIONAL. Usage: sort=field_name.(asc|desc). Sorts all fields with type ‘Number’ in ascending/descending order.
  • api_token: String. REQUIRED. Your api_token to access the API. You will get it after registration.
  • limit: Number. OPTIONAL. The number of results should be returned with the query. Default value: 50, minimum value: 1, maximum value: 100.
  • offset: Number. OPTIONAL. The offset of the data. Default value: 0, minimum value: 0, maximum value: 1000. For example, to get 100 symbols starting from 200 you should use limit=100 and offset=200.

The output for the API request above will be as follows:

Register & Get Data

Filtering data with Fields

You can use fields to filter the data. Fields have two types: Strings and Numbers. For strings should be used String Operations and for Numbers should be used Numeric Operations (see the chapter “List of Operations” in this documentation). For example, you can filter all companies with Market Capitalization above 1 billion, have only positive EPS within the ‘Personal Products’ industry, and with name started with the letter ‘B’.

List of Supported Fields

  • code: String. Filters by the ticker code.
  • name: String. Filters by the ticker name.
  • exchange: String. Filters by the exchange code. The list of all exchange codes is here. In addition, it’s possible to use ‘NYSE’ and ‘NASDAQ’ exchange codes to filter out only tickers from these exchanges.
  • sector: String. Filters by sector. The list of sectors and industries is here.
  • industry: String. Filters by industry. The list of sectors and industries is here.
  • market_capitalization: Number. Filters by Market Capitalization, the latest value. Please note, that input for market_capitalization in USD.
  • earnings_share: Number. Filters by Earnings-per-share (EPS), the latest value.
  • dividend_yield: Number. Filters by Dividend yield, the latest value.
  • refund_1d_p: Number. The last day gain/loss in percent. Useful to get top gainers, losers for the past day.
  • refund_5d_p: Number. The last 5 days gain/loss in percent. Useful to get top gainers, losers for the past week.
  • avgvol_1d: Number. The last day volume.
  • avgvol_200d: Number. The average last 200 days volume.

We are always working on new fields and can add new fields by request.

List of Operations

String operations are supported for all fields with the type ‘String’. Numeric Operations are supported for all fields with type ‘NUMBER’:

  • String Operations: [‘=’, ‘match’].
  • Numeric Operations: [‘=’, ‘>’, ‘<‘, ‘>=’, ‘<=’].

Filtering Data with Signals

You can use signals to filter tickers by different calculated fields. All signals are pre-calculated on our side. For example, if you need only tickers that have new lows for the past 200 days and the Book Value is negative, you can use the parameter ‘signal’ with the following value, to get all tickers with the criteria:

signals=bookvalue_neg,200d_new_lo

List of supported Signals

  • 50d_new_lo, 50d_new_hi, 200d_new_lo, 200d_new_hi – filters tickers that have new 50/200 days lows or new 50/200 days highs.
  • bookvalue_neg, bookvalue_pos – filters tickers with positive Book Value or with Negative Book Value.
  • wallstreet_lo, wallstreet_hi – filters tickers that have a price lower or higher than expected by Wall Street analysts.

We are always working on new signals and can add new signals by request.

Important Notes

Please note that each API request for Screener API consumes 5 API calls. We are also open to any feedback and ready to add any new field and signal you are interested in our Screener API. Just send us an email to support@eodhistoricaldata.com.

The Screener API is available under ‘All World Extended’ and ‘All-In-One’ data packages. Each Screener API request consumes 5 API calls. We are always working on new signals and supported and can add new signals and supported fields by request.

For commercial use and creation of a financial application, send us a request to support@eodhistoricaldata.com

Register & Get Data