Configuration
This API returns the list of all screeners and the exact values each screener accepts. Every id you send to the other three Screeners APIs comes from this response.
USE CASE
Load the list of screeners once, to build a screener menu or to check a request before you run a Standard, Candlestick or Technical screener.
Note
This API takes no parameters. Sending any parameter returns HTTP 400.
Details
- Send your App ID and access token in the Authorization header as
APP_ID:ACCESS_TOKEN. - Only GET is supported. Any other method returns HTTP 405.
- This API is part of the Data APIs and works with access tokens of all app types (100, 102 and 200).
- The response holds the keys listed in the table below.
- Every screener has:
id(send it asscreener_id),name,category,description,conditions(the rule a row must meet),order_byandorder(the default sort),default_universeandsupported_params(the only parameters it accepts besidesscreener_id). - Standard screeners also have
universe_group,column_group,default_timeframeandallowed_timeframes. For a screener that takes no timeframe,default_timeframeis null andallowed_timeframesis empty. - Candlestick and Technical screeners have an empty
supported_params, because they take onlyscreener_id. - The
screeners_standardarray contains the following screener categories: - Each object in
screeners_standard,screeners_technical, andscreeners_candlestickrepresents an available screener. - Columns
- Price & Volume
- Returns
- F&O
- Valuation Ratios
- Growth
- Margin & Profitability
- P&L – Annual
- Quarterly
- Balance Sheet
- Solvency & Liquidity
- Cash Flow
- Others
- The column
idcan also appear in theorder_byfield of a screener object. - The
timeframesarray contains the supported periods for measuring price changes. - Universes
- Broad indices
- Sector indices
- NSE, BSE, and F&O stocks
- Sector and industry groups
- ETFs and other instruments
- ETF instrument classifications
The `columns` array contains the fields supported in screener results. Columns are grouped into categories such as:
A universe defines the group of instruments on which a screener is applied.
Cash-market universes
The `universes` array includes:Futures universes
Returned in `universes_futures`.Options universes
Returned in `universes_options`.Plan limits
Standard plan
- 50 requests per day
Prime plan
- As per Prime API rate limits: 10 requests per second, 500 per minute and 5,00,000 per day
For rate limits and all other plan details, see Plans & rate limits.
Screener types
| Screener type | Description |
|---|---|
Custom Screeners | Includes predefined screeners based on price movement, volume, breakouts, futures, options, commodities, fundamentals, ETFs, and other market conditions. These screeners are returned in the screeners_standard array. |
Technical Crossovers and Momentum | Includes screeners based on technical indicators, moving-average crossovers, and momentum conditions such as MACD, Golden Crossover, Death Crossover, and Money Flow Index signals. These screeners are returned in the screeners_technical array. |
Candlestick Screeners – EOD | Includes end-of-day candlestick pattern screeners used to identify bullish, bearish, reversal, and continuation patterns. These screeners are returned in the screeners_candlestick array. |
Custom screener categories
| Category | Description |
|---|---|
Intraday Screeners | Identifies intraday price movement, volume activity, gaps, reversals, circuit activity, and stocks trading near their daily highs or lows. |
Breakout with Volume | Identifies stocks reaching new highs or lows across different periods with higher-than-average trading volume. |
Technical Crossovers and Momentum | Identifies consecutive higher highs, lower lows, higher closes, and lower closes based on recent price movement. |
Commodities Futures | Identifies commodity futures based on price movement, premium, open interest, position buildup, and expiry. |
Futures Scan | Identifies futures contracts based on price movement, premium, open interest, and long or short position activity. |
Options Trading | Identifies options contracts based on premium movement, open-interest changes, and long or short position activity. |
Fresh Breakouts | Identifies stocks reaching new periodic highs or lows or crossing key support and resistance levels. |
Near Breakouts | Identifies stocks trading close to their periodic or all-time highs and lows. |
Fundamentals | Identifies companies based on valuation, growth, profitability, debt, dividend, and cash-flow conditions. |
ETF | Identifies exchange-traded funds based on price movement, proximity to yearly highs or lows, and instrument classification. |
Screener object
| Attribute | Data Type | Description |
|---|---|---|
id | string | Unique identifier of the screener. Use this value when requesting results for a specific screener. |
name | string | Display name of the screener. |
category | string | Category under which the screener is grouped. |
description | string | Brief explanation of the market condition identified by the screener. |
conditions | string | Conditions used to identify matching instruments. This field can be empty for system-defined technical or candlestick screeners. |
order_by | string | Column identifier used to sort the screener results. |
order | string | Sorting direction applied to the results. Supported values are asc and desc. |
Column object
| Attribute | Data Type | Description |
|---|---|---|
id | string | Unique identifier of the column. |
name | string | Display name of the column. |
category | string | Category under which the column is grouped. |
Timeframes
| Timeframe | Description |
|---|---|
1 minute | Percentage change over one minute. |
5 minutes | Percentage change over five minutes. |
15 minutes | Percentage change over 15 minutes. |
30 minutes | Percentage change over 30 minutes. |
1 hour | Percentage change over one hour. |
1 day | Percentage change for the current trading day. |
1 week | Percentage change over one week. |
1 month | Percentage change over one month. |
3 months | Percentage change over three months. |
6 months | Percentage change over six months. |
Year to date | Percentage change from the beginning of the current calendar year. |
52 weeks | Percentage change over the previous 52 weeks. |
2 years | Percentage change over two years. |
3 years | Percentage change over three years. |
5 years | Percentage change over five years. |
All time | Percentage change across the complete available trading history. |
Timeframe object
| Attribute | Data Type | Description |
|---|---|---|
id | string | Unique identifier of the timeframe. |
name | string | Display name of the timeframe. |
| Universe | Description |
|---|---|
Index Based Futures | Includes futures contracts based on supported market indices. |
Stock Based Futures | Includes futures contracts based on individual stocks. |
Commodity Based Futures | Includes supported commodity futures contracts. |
| Universe | Description |
|---|---|
Index Based Options | Includes options contracts based on supported market indices. |
Stock Based Options | Includes options contracts based on individual stocks. |
Commodity Based Options | Includes supported commodity options contracts. |
Universe object
| Attribute | Data Type | Description |
|---|---|---|
id | string | Unique identifier of the universe. |
name | string | Display name of the universe. |
category | string | Category under which the universe is grouped. |
Response Attributes
| Attribute | Data Type | Description |
|---|---|---|
s | string | ok / error |
code | int | This is the code to identify specific responses |
message | string | This is the message to identify the specific error responses |
data | object | Contains screeners_standard, screeners_technical, screeners_candlestick, columns, timeframes, universes, universes_futures, and |
universes_options | array | s |
Sorting behaviour
Screener results are sorted using the values returned in `order_by` and `order`.order_byidentifies the column used for sorting.
ascsorts the values from lowest to highest.
descsorts the values from highest to lowest.
For example, the top_gainers screener uses t0_per_change with the sorting order desc, which displays instruments with the highest one-day percentage change first.
Response keys
| Attribute | What it holds | Use it for |
|---|---|---|
screeners_standard | 111 Standard screeners | screener_id of the Standard API |
screeners_candlestick | 23 Candlestick screeners | screener_id of the Candlestick API |
screeners_technical | 6 Technical screeners | screener_id of the Technical API |
columns | The 118 Standard fields: id, name (display label) and category | fields and order_by |
column_groups | Which field ids each group allows: equity (103), fno (45), commodity (45) | The fields a screener accepts |
universes, universes_futures, universes_options | Universe ids and names (97, 3 and 3) | universe |
universe_groups | Which universe ids each group allows | The universes a screener accepts |
timeframes | The 16 timeframe ids, from t0_1min (1 minute) to alltime (all time) | timeframe |
option_types, expiry_types | CE, PE and W (weekly), M (monthly) | option_type; reading expiries |
expiries | Upcoming expiries of fw001, fw002, ow001 and ow002, each with epoch, date and display | expiry |
How to build a valid Standard request
- Find the screener in
screeners_standard. Note itsid,universe_group,column_group,allowed_timeframesandsupported_params. fields: pick up to 10 ids fromcolumn_groups[column_group].universe: pick one id fromuniverse_groups[universe_group]. Leave it out to usedefault_universe.timeframe: pick one ofallowed_timeframes. Leave it out to usedefault_timeframe.expiry: only ifexpiryis insupported_paramsand the universe isfw001,fw002,ow001orow002. Use an epoch fromexpiries[universe].- Send only the parameters listed in
supported_params.
Notes
- The expiry lists change as contracts expire, so call this API at least once a day.
supported_paramscan listexpiryfor a screener that also runs on commodity universes. Commodity universes do not accept an expiry, so checkexpiriesfor the universe before you send one.- A field's
idandnamehere are theunique_keyanddescriptionof the same field in a screener's response header. - The
conditionsfield describes the default logic used by a predefined screener. It can be empty for technical, candlestick, expiry-based or instrument-classification screeners whose calculation logic is managed internally.
Last updated on