jData=<JSON payload>&jKey=<AccessToken> — requires a valid AccessToken from Login.
Overview
SearchScrip resolves a free-text search string (stext) into one or more matching contracts on an exchange, each with its numeric token. This is the standard way to go from a human-readable symbol to the token required by Get Quotes, Place Order, and the streaming APIs.
Purpose
Use this for building a symbol search/autocomplete UI, or programmatically resolving an option/future symbol (e.g. a specific strike and expiry) before placing an order or subscribing to its feed. For bulk/offline lookups across the whole instrument universe, prefer downloading the Symbol Master file instead of calling this endpoint per symbol.
Parameters
Field
Type
Required
Description
uid
string
required
Your account/client ID.
exch
string
required
Exchange segment to search within, e.g. NSE, NFO, BSE, MCX.
stext
string
required
Search text — full or partial trading symbol. For derivatives, the exact contract string (e.g. NIFTY28JUL26C24100) must match the exchange's naming convention precisely.
No contract matched stext on the given exch — usually means the symbol/expiry string doesn't match exchange naming, or the contract hasn't been listed for that expiry yet. This is a normal "no results" response, not a transport error — the HTTP status is 404 but the body is well-formed.
Session_Expired
Access token expired or invalid — re-authenticate via Token Renewal.
Best practices
Always check stat before reading values — a "no match" response still returns HTTP 404 with a JSON body, so don't assume a non-200 means the request itself failed.
For option contracts, get the exact tsym format from Option Chain or the Symbol Master rather than hand-building the string — a one-character mismatch in date/strike format returns zero matches.
Cache resolved tokens for the trading session; tokens are stable intraday.
Your debug log's 404 for NIFTY28JUL26C24100 on NFO is a no-match response, not a service error — worth double-checking the expiry date/strike format against a symbol you know is currently listed (e.g. via Option Chain) before assuming the API itself is broken.
API Endpoint
POSThttps://api.shoonya.com/NorenWClientAPI/SearchScripapplication/x-www-form-urlencodedjData=<JSON payload>&jKey=<AccessToken>— requires a validAccessTokenfrom Login.Overview
SearchScrip resolves a free-text search string (
stext) into one or more matching contracts on an exchange, each with its numerictoken. This is the standard way to go from a human-readable symbol to the token required by Get Quotes, Place Order, and the streaming APIs.Purpose
Use this for building a symbol search/autocomplete UI, or programmatically resolving an option/future symbol (e.g. a specific strike and expiry) before placing an order or subscribing to its feed. For bulk/offline lookups across the whole instrument universe, prefer downloading the Symbol Master file instead of calling this endpoint per symbol.
Parameters
NSE,NFO,BSE,MCX.NIFTY28JUL26C24100) must match the exchange's naming convention precisely.Request example
Response example
Error handling
{"stat":"Not_Ok","emsg":"No Data : "}stexton the givenexch— usually means the symbol/expiry string doesn't match exchange naming, or the contract hasn't been listed for that expiry yet. This is a normal "no results" response, not a transport error — the HTTP status is 404 but the body is well-formed.Best practices
statbefore readingvalues— a "no match" response still returns HTTP 404 with a JSON body, so don't assume a non-200 means the request itself failed.tsymformat from Option Chain or the Symbol Master rather than hand-building the string — a one-character mismatch in date/strike format returns zero matches.Python example
Notes
Your debug log's 404 for
NIFTY28JUL26C24100on NFO is a no-match response, not a service error — worth double-checking the expiry date/strike format against a symbol you know is currently listed (e.g. via Option Chain) before assuming the API itself is broken.