POST /api/moneycontrol/stocks
Price: 1 credit
Get a live NSE or BSE quote for an Indian stock from Moneycontrol by stock id or page URL: price, change, OHLC, volume and delivery, 52-week and all-time range, circuit limits, market cap, P/E, P/B, EPS, book value and dividend yield (standalone and consolidated), moving averages, period returns, CAGR, order book depth, sector, ISIN, NSE symbol and BSE code
market_cap is in INR crores. Find a stock id with moneycontrol/stocks/search; the same id feeds moneycontrol/stocks/financials, quarterly_results, corporate_actions and forecast.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)stock string required — Moneycontrol stock id or moneycontrol.com stock page URL (examples: "RI", "HDF01", "https://www.moneycontrol.com/india/stockpricequote/refineries/relianceindustries/RI")exchange string nullable — Exchange to quote; by default NSE, then BSE for a stock NSE does not list (one of: "nse", "bse")@type string (default: "MoneycontrolStock")id string requiredname string nullableshort_name string nullableurl string nullableexchange string nullableisin string nullablense_symbol string nullablebse_code string nullablesector string nullableindustry string nullablesub_sector string nullablebse_group string nullablemarket_state string nullableupdated_at integer nullableprice number nullableprevious_close number nullablechange number nullablechange_percent number nullableopen number nullablehigh number nullablelow number nullableaverage_price number nullablevolume integer nullabledelivery_percent number nullabledelivery_quantity integer nullableweek52_high number nullableweek52_high_date integer nullableweek52_low number nullableweek52_low_date integer nullableall_time_high number nullableall_time_high_date integer nullableall_time_low number nullableall_time_low_date integer nullableupper_circuit number nullablelower_circuit number nullablemarket_cap number nullableshares_outstanding integer nullableface_value number nullablemarket_lot integer nullablepe number nullablepe_consolidated number nullableindustry_pe number nullablepb number nullablepb_consolidated number nullablebook_value number nullablebook_value_consolidated number nullableeps_ttm number nullableeps_ttm_consolidated number nullablecash_eps number nullabledividend_yield number nullabledividend_yield_consolidated number nullabledividend_percent number nullableseries string nullablebest_bid_price number nullablebest_bid_quantity integer nullablebest_ask_price number nullablebest_ask_quantity integer nullabletotal_buy_quantity integer nullabletotal_sell_quantity integer nullablesma_5 number nullablesma_30 number nullablesma_50 number nullablesma_150 number nullablesma_200 number nullableaverage_volume_5d number nullableaverage_volume_10d number nullableaverage_volume_20d number nullableaverage_volume_30d number nullablecagr_1y number nullablecagr_2y number nullablecagr_3y number nullablecagr_5y number nullablecagr_7y number nullablecagr_10y number nullablereturns array (default: [])@type string (default: "MoneycontrolReturn")period string requiredbase_date integer nullablebase_price number nullablechange number nullablechange_percent number nullabledepth array (default: [])@type string (default: "MoneycontrolDepthLevel")level integer requiredbid_price number nullablebid_quantity integer nullableask_price number nullableask_quantity integer nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Moneycontrol has no stock under that id on the requested exchange Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.