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 following:

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.
  • 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.

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 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.

Register & Get Data

Comments

    1. EOD Historical Data Support Article Author

      Thanks for the suggestion, we will add this field, however, the ‘filing_date’ we have for the moment only for US tickers.

    1. EOD Historical Data Support Article Author

      Thanks for the suggestion, we already support market capitalization as a filter and will add revenue. I can suggest using EPS as a good relative indicator since revenue is an absolute indicator not so useful for stock comparison.

  1. David

    I would like to see:
    – Beta
    – Profit Margin
    – Price
    – PE Ratio
    – 13 week price change
    – Volume 10 day average / Volume 90 day average

  2. David

    Regarding the Signals implementation:

    1) In your explanation above,it would be a good idea to edit the “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:” to use ‘signals’ instead of ‘signal’, since ‘signals’ is the correct parameter AFAICT even if only one signal is being sent.
    IE: For US, this works: &signals=wallstreet_lo

    2) I have been unable to get Signals to work if more than one is set up – except for the exact example you provide above:
    &signals=bookvalue_neg,200d_new_lo works on US

    But these do not:
    &signals=bookvalue_neg,50d_new_lo
    &signals=wallstreet_lo,200d_new_hi

    In fact, single parameters of the 50d variety do not return anything:
    &signals=50d_new_hi
    &signals=50d_new_lo

    3) &signals=wallstreet_lo and &signals=wallstreet_hi seems to be working correctly on US.

    4) Regarding exchange coverage for Signals, I was unable to get any response from other exchanges – I tested against about 10 different exchanges.

    1. David

      Please ignore my note about the use of ‘signal’ and ‘signals’ as I am now seeing that ‘signal’ sometimes works. Can you clarify the correct syntax for single and multiple signals please.

  3. Yannik

    When will the content from above be integrated in the screener api? I‘m looking forward to subscribe, when the contents are integrated.
    Thanks for you answer!

    1. EOD Historical Data Support Article Author

      Hello, what exact ‘content from above’ you mean? Please write to web chat or email and we will provide you ETA or explain how to use Screener API.

  4. Yannik

    It would be very nice, if relative revenue growth (1y, 2y, 3y,5y), relative EPS growth (1y, 2y, 3y,5y), Book value per share and asset-dept ration would be integrated in the screener filters 🙂 Thanks!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.