Technical screeners
This API returns the Nifty 500 stocks that show a given MACD or moving-average crossover, or an overbought or oversold Money Flow Index (MFI), on end-of-day data.
USE CASE
Find Nifty 500 stocks with a fresh Golden Crossover or an oversold MFI, to build a swing-trading watchlist.
Note
This API takes only screener_id. The stocks scanned, the columns returned and the sort are fixed. Sending any other 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. - This API is part of the Data APIs and works with access tokens of all app types (100, 102 and 200).
- There are 6 Technical screeners: Bullish MACD Crossover (MACD line crosses above the signal line), Bearish MACD Crossover (MACD line crosses below the signal line), Golden Crossover (50-day moving average crosses above the 200-day), Death Crossover (50-day crosses below the 200-day), Overbought by MFI and Oversold by MFI.
- Take the
screener_idfromscreeners_technicalin the Configuration API. - Every screener scans the Nifty 500 (
iw010). - The columns depend on the screener.
symboltickeris always first, then the columns in the table below. - Rows are sorted by 1-day change: highest first for Bullish MACD Crossover, Golden Crossover and Oversold by MFI; lowest first for Bearish MACD Crossover, Death Crossover and Overbought by MFI. So Overbought by MFI starts with the stocks that fell the most today, and Oversold by MFI with the stocks that rose the most. The 1-day change itself is not returned.
- The response holds
header(one object per column:unique_key,description,data_type),body(one array per row, values in header order),total_count(number of rows returned) andlast_update_time(Unix epoch seconds).bodyis empty when no stock qualifies. - How fresh the data is: Technical screeners work on end-of-day data. Until 15:30 IST they return the previous trading day's end-of-day results; these do not change during the session, and
last_update_timeshows 09:15 IST of the current day. At 15:30 IST the results are replaced with the current day's, andlast_update_timeshows 15:30. The exception ismcap_q, which follows the live price during the session.
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.
Request Attributes
| Attribute | Data Type | Description |
|---|---|---|
screener_id* | string | Mandatory. Screener id from the screeners_technical array. Only the screener_id query parameter is accepted. |
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 | Result payload with header, body, error, and last_update_time |
Columns
| Screener | Columns after symbolticker |
|---|---|
| Bullish MACD Crossover, Bearish MACD Crossover | today_changes__macd_x_centre (boolean: MACD crossed the centre line today), macd (day MACD), macdsignal (day MACD signal line) |
| Golden Crossover, Death Crossover | sma_50_sma_200_diff (% distance of the 50-day SMA over the 200-day SMA), sma_50 (day SMA 50), sma_200 (day SMA 200), mcap_q (market cap, ₹) |
| Overbought by MFI, Oversold by MFI | mfi (day MFI), mcap_q (market cap, ₹) |
Screener ids
Take the id from this table or from Configuration.
| Screener | screener_id |
|---|---|
| Bullish MACD Crossover | macd_crossed_above_signal_line |
| Bearish MACD Crossover | macd_crossed_below_signal_line |
| Golden Crossover | golden_crossover_end_of_day |
| Death Crossover | death_crossover_end_of_day |
| Overbought by MFI | mfi_overbought |
| Oversold by MFI | mfi_oversold |
Example request
screener_id=mfi_overbought
Errors
| HTTP | code | When | message |
|---|---|---|---|
| 400 | -50 | screener_id missing | screener_id is required |
| 400 | -50 | screener_id unknown, or taken from another Screeners API | invalid screener_id |
| 400 | -50 | Any other parameter | unsupported query parameter: NAME |
| 401 | -16 | Missing or wrong token | Could not authenticate the user |
| 405 | -50 | Method other than GET | method not allowed; use GET |
| 429 | Rate limit crossed | Wait, then retry |
In the message above, NAME stands for the parameter you sent.
Notes
- Unlike Standard screeners, the response does not return the applied settings or
fetch_time.
Last updated on