Skip to Content

Candlestick screeners

This API returns the Nifty 500 stocks that formed a given candlestick pattern on the previous trading session’s daily candle.

USE CASE

Shortlist Nifty 500 stocks that formed a Hammer, Morning Star or Bullish Engulfing pattern, as reversal candidates for the next session.

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 23 Candlestick screeners. 13 bullish: Dragonfly Doji, Inverted Hammer, Hammer, White Marubozu, Bullish Harami, Bullish Harami Cross, Bullish Engulfing Pattern, Piercing Line, Upside Tasuki Gap, Morning Star, Three White Soldiers, Bullish Kicking, Bullish Abandoned Baby. 10 bearish: Black Marubozu, Hanging Man, Shooting Star, Bearish Harami, Bearish Engulfing, Dark Cloud Cover, Bearish Harami Cross, Bearish Abandoned Baby, Identical Three Crows, Downside Tasuki Gap.
  • Take the screener_id from screeners_candlestick in the Configuration API.
  • Every screener scans the Nifty 500 (iw010).
  • Every screener returns the same 7 columns: symbolticker (symbol), week_change_p (week change %), sma_5 (day SMA 5), ema_5 (day EMA 5), sma_10 (day SMA 10), net_bullish_candlestick (day candlestick strength: bullish minus bearish) and prev_close (previous day close).
  • Rows are sorted by 1-day change: highest first for bullish patterns, lowest first for bearish patterns. 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) and last_update_time (Unix epoch seconds). body is empty when no stock formed the pattern.
  • How fresh the data is: patterns are found on the previous trading session's daily candle. Results are computed once, at 09:15 IST, and stay the same until 09:15 of the next trading day. last_update_time shows 09:15 of the current day. prev_close is the close of that candle, that is, the previous trading day's close.

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

AttributeData TypeDescription
screener_id*stringMandatory. Screener id from the screeners_candlestick array. Only the screener_id query parameter is accepted.

Response Attributes

AttributeData TypeDescription
sstringok / error
codeintThis is the code to identify specific responses
messagestringThis is the message to identify the specific error responses
dataobjectResult payload with header, body, error, and last_update_time

Screener ids

The id is not always the name in lower case (for example Bullish Abandoned Baby is abandoned_baby_bottom), so take it from this table or from Configuration.

Screenerscreener_idData Type
Dragonfly Dojidragonfly_dojiBullish
Inverted Hammerinverted_hammerBullish
HammerhammerBullish
White Marubozuwhite_marubozuBullish
Bullish Haramibullish_haramiBullish
Bullish Harami Crossbullish_harami_crossBullish
Bullish Engulfing Patternbullish_engulfing_patternBullish
Piercing Linepiercing_lineBullish
Upside Tasuki Gapupside_tasuki_gapBullish
Morning Starmorning_starBullish
Three White Soldiersthree_white_soldiersBullish
Bullish Kickingbullish_kickingBullish
Bullish Abandoned Babyabandoned_baby_bottomBullish
Black Marubozublack_marubozuBearish
Hanging Manhanging_manBearish
Shooting Starshooting_starBearish
Bearish Haramibearish_haramiBearish
Bearish Engulfingbearish_engulfingBearish
Dark Cloud Coverdark_cloud_coverBearish
Bearish Harami Crossbearish_harami_crossBearish
Bearish Abandoned Babyabandoned_baby_topBearish
Identical Three Crowsidentical_three_crowsBearish
Downside Tasuki Gapdownside_tasuki_gapBearish

Example request

screener_id=hammer

Errors

HTTPcodeWhenmessage
400-50screener_id missingscreener_id is required
400-50screener_id unknown, or taken from another Screeners APIinvalid screener_id
400-50Any other parameterunsupported query parameter: NAME
401-16Missing or wrong tokenCould not authenticate the user
405-50Method other than GETmethod not allowed; use GET
429Rate limit crossedWait, 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