UNPKG

upstox-js-sdk

Version:

The official Node Js client for communicating with the Upstox API

631 lines (557 loc) 21.2 kB
let UpstoxClient = require('upstox-js-sdk'); const { accessToken } = require('./DataToken'); var defaultClient = UpstoxClient.ApiClient.instance; var OAUTH2 = defaultClient.authentications['OAUTH2']; OAUTH2.accessToken = accessToken; var apiInstance = new UpstoxClient.UserApi(); var apiVersion = "2.0"; // String | API Version Header apiInstance.getProfile(apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error in get profile"); } } }); apiInstance.getUserFundMargin(apiVersion, null, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error in get funds and margin"); } } }); apiInstance = new UpstoxClient.ChargeApi(); var instrumentToken = "NSE_EQ|INE669E01016"; var quantity = 56; var product = "D"; var transactionType = "BUY"; var price = 23.4; var apiVersion = "2.0"; apiInstance.getBrokerage(instrumentToken, quantity, product, transactionType, price, apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error get brokerage"); } } }); let instruments =[ new UpstoxClient.Instrument("NSE_EQ|INE669E01016",1,"D","BUY"), new UpstoxClient.Instrument("NSE_EQ|INE917I01010",2,"D","BUY")]; let postMarginRequest = new UpstoxClient.MarginRequest(instruments) apiInstance.postMargin(postMarginRequest, (error, data, response) => { if (error) { console.log("error in post margin api call"); console.error(error.response.text); } else { if(data.status != "success") console.log("error in post margin api call"); } }); var apiInstance = new UpstoxClient.OrderApi(); var body = new UpstoxClient.PlaceOrderRequest(1, UpstoxClient.PlaceOrderRequest.ProductEnum.D, UpstoxClient.PlaceOrderRequest.ValidityEnum.DAY, 0.0, "NSE_EQ|INE528G01035",UpstoxClient.PlaceOrderRequest.OrderTypeEnum.MARKET,UpstoxClient.PlaceOrderRequest.TransactionTypeEnum.BUY, 0, 0.0, true); var apiVersion = "2.0"; apiInstance.placeOrder(body, apiVersion, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI1052") console.log("error in place order"); } else { console.log("place order= " + JSON.stringify(data)); // console.log("error in place order else block"); } }); var body = new UpstoxClient.ModifyOrderRequest(UpstoxClient.ModifyOrderRequest.ValidityEnum.DAY,0,"240111010331447",UpstoxClient.ModifyOrderRequest.OrderTypeEnum.MARKET,0); var apiVersion = "2.0"; // String | API Version Header apiInstance.modifyOrder(body, apiVersion, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010") console.log("error in MODIFY order"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); var orderId = "240111010403654"; apiInstance.cancelOrder(orderId, apiVersion, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010") console.log("error in CANCEL order"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance.getOrderBook(apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error in get order book"); } } }); var opts = { 'orderId': "240112010371054" }; apiInstance.getOrderDetails(apiVersion, opts, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010") console.log("error in get order details"); } else { if(data.status != "success"){ console.log("error in get order details"); } } }); apiInstance.getTradeHistory(apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error in get order details"); } } }); var orderId = "240111010861817"; var apiVersion = "2.0"; apiInstance.getTradesByOrder(orderId, apiVersion, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010") console.log("get trades by order"); } else { if(data.status != "success"){ console.log("error in get order details"); } } }); var apiInstance = new UpstoxClient.PortfolioApi(); var body = new UpstoxClient.ConvertPositionRequest("NSE_EQ|INE528G01035",UpstoxClient.ConvertPositionRequest.NewProductEnum.D,UpstoxClient.ConvertPositionRequest.OldProductEnum.I,UpstoxClient.ConvertPositionRequest.TransactionTypeEnum.BUY,1); // ConvertPositionRequest | var apiVersion = "2.0"; // String | API Version Header apiInstance.convertPositions(body, apiVersion, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI1035") console.log("error in convert position"); } else { console.log('API called successfully. Returned data: '); } }); apiInstance.getHoldings(apiVersion,(error,data,response)=>{ if(error) { console.log(error); } else { if(data.status != "success"){ console.log("error in get holdings"); } } }); apiInstance.getPositions(apiVersion,(error,data,response)=>{ if(error) { console.log(error); } else{ if(data.status != "success"){ console.log("error in get position"); } } }) var apiInstance = new UpstoxClient.TradeProfitAndLossApi(); var segment = "EQ"; // String | Segment for which data is requested can be from the following options EQ - Equity, FO - Futures and Options, COM - Commodity, CD - Currency Derivatives var financialYear = "2324"; // String | Financial year for which data has been requested. Concatenation of last 2 digits of from year and to year Sample:for 2021-2022, financial_year will be 2122 var apiVersion = "2.0"; // String | API Version Header var opts = { 'fromDate': "02-04-2023", // String | Date from which data needs to be fetched. from_date and to_date should fall under the same financial year as mentioned in financial_year attribute. Date in dd-mm-yyyy format 'toDate': "20-03-2024" // String | Date till which data needs to be fetched. from_date and to_date should fall under the same financial year as mentioned in financial_year attribute. Date in dd-mm-yyyy format }; apiInstance.getTradeWiseProfitAndLossMetaData(segment, financialYear, apiVersion, opts, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance.getTradeWiseProfitAndLossData(segment, financialYear, 1, 5, apiVersion, opts, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance.getProfitAndLossCharges(segment, financialYear, apiVersion, opts, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance = new UpstoxClient.HistoryApi(); var instrumentKey = "NSE_EQ|INE669E01016"; var interval = "1minute"; var toDate = "2023-11-13"; var fromDate = "2023-11-12"; apiInstance.getHistoricalCandleData1(instrumentKey, interval, toDate, fromDate,apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance.getHistoricalCandleData(instrumentKey, interval, toDate, apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); var interval = "1minute"; apiInstance.getIntraDayCandleData(instrumentKey, interval, apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance = new UpstoxClient.MarketQuoteApi(); var apiVersion = "2.0"; var symbol = "NSE_EQ|INE669E01016"; apiInstance.getFullMarketQuote(symbol, apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance.ltp(symbol,apiVersion, (error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); interval = "1d"; apiInstance.getMarketQuoteOHLC(symbol, interval,apiVersion, (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance = new UpstoxClient.OptionsApi(); apiInstance.getPutCallOptionChain("NSE_INDEX|Nifty 50",(error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); apiInstance.getOptionContracts("NSE_INDEX|Nifty 50",null,(error, data, response) => { if (error) { console.error(error); } else { if(data.status != "success"){ console.log("error trade wise profit and loss"); } } }); var apiInstance1 = new UpstoxClient.MarketHolidaysAndTimingsApi(); apiInstance1.getExchangeTimings("2024-01-22",(error, data, response) => { if (error){ console.log(error); } else { if(data.status != "success"){ console.log("market timings get exchange timings"); } } }) apiInstance1.getHoliday("2024-01-22",(error, data, response) => { if (error){ console.log(error); } else { if(data.status != "success"){ console.log("market timings get holiday error"); } } }); apiInstance1.getHolidays((error, data, response) => { if (error){ console.log(error); } else { if(data.status != "success"){ console.log("market timings get holiday error"); } } }); apiInstance1.getMarketStatus("NSE", (error, data, response) => { if (error){ console.log(error); } else { if(data.status != "success"){ console.log("market timings get holiday error"); } } }); apiInstance = new UpstoxClient.PostTradeApi(); opts = { segment: "EQ" } apiInstance.getTradesByDateRange("2023-04-01","2024-08-30",1,1000,opts,(error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success") console.log("error in post trade") } }); let orderApiInstance = new UpstoxClient.OrderApi(); let orderStatusId = "240926010304511"; let optsOrderStatus = { orderId: orderStatusId }; orderApiInstance.getOrderStatus(optsOrderStatus,(error,data,response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010") console.log("error in order status"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }) apiInstance = new UpstoxClient.OrderApi(); body = [] one_req = new UpstoxClient.MultiOrderRequest(1,"D","DAY",8.9,true,"NSE_EQ|INE669E01016","LIMIT","BUY",0,9,true,"tag_should_be_tg1"); one_req.tag = "tg1" body = body.concat(one_req); body = body.concat(new UpstoxClient.MultiOrderRequest(1,"D","DAY",8.9,true,"NSE_EQ|INE669E01016","LIMIT","BUY",0,9.0,true,"cid2")); apiInstance.placeMultiOrder(body, (error, data, response) => { if (error) { console.error(error.response.text); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); opts = { 'tag': 'unknown_tag' } apiInstance.cancelMultiOrder(opts, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI1109") console.log("error in CANCEL Multi order"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance.exitPositions(opts, (error, data, response) => { if (error) { if((JSON.parse(error.response.text).errors[0].errorCode != "UDAPI1111") && (JSON.parse(error.response.text).errors[0].errorCode != "UDAPI1113")) console.log("error in Exit all order"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance = new UpstoxClient.OrderApiV3(); let entryRule = new UpstoxClient.GttRule(UpstoxClient.GttRule.StrategyEnum.ENTRY, UpstoxClient.GttRule.TriggerTypeEnum.ABOVE, 100); body = new UpstoxClient.GttPlaceOrderRequest(UpstoxClient.GttPlaceOrderRequest.TypeEnum.SINGLE, 1, UpstoxClient.GttPlaceOrderRequest.ProductEnum.D, [entryRule],"NSE_EQ|INE669E01016", UpstoxClient.GttPlaceOrderRequest.TransactionTypeEnum.BUY); apiInstance.placeGTTOrder(body, (error, data, response) => { if (error) { console.error(error.response.text); } else { console.log('GTT place order ' + JSON.stringify(data)); } }); body = new UpstoxClient.ModifyOrderRequest(UpstoxClient.ModifyOrderRequest.ValidityEnum.DAY,0,"2501270424977",UpstoxClient.ModifyOrderRequest.OrderTypeEnum.MARKET,12); body.quantity = 1; apiInstance.modifyOrder(body, (error, data, response) => { if (error) { if((JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010")) console.log("error in gtt modify"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); body = new UpstoxClient.GttCancelOrderRequest("GTT-C25040064103"); apiInstance.cancelGTTOrder(body, (error, data, response) => { if (error) { if((JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010")) console.log("error in gtt cancel"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance.getGttOrderDetails({gttOrderId: 'GTT-C2504000164103'}, (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error in gtt get order details"); } } }); body = new UpstoxClient.PlaceOrderV3Request(1,UpstoxClient.PlaceOrderV3Request.ProductEnum.D, UpstoxClient.PlaceOrderV3Request.ValidityEnum.DAY, 7.2,"NSE_EQ|INE669E01016",UpstoxClient.PlaceOrderV3Request.OrderTypeEnum.LIMIT, UpstoxClient.PlaceOrderV3Request.TransactionTypeEnum.BUY,0,0,true); let opt = {"slice": true} apiInstance.placeOrder(body, opt, (error, data, response) => { if (error) { console.error(error.response.text); } else { console.log('place order V3 => ' + JSON.stringify(data)); } }); body = new UpstoxClient.ModifyOrderRequest(UpstoxClient.ModifyOrderRequest.ValidityEnum.DAY,0,"2505010177418",UpstoxClient.ModifyOrderRequest.OrderTypeEnum.MARKET,1); body.quantity = 1; apiInstance.modifyOrder(body, (error, data, response) => { if (error) { if((JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010")) console.log("error in modify order v3"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance.cancelOrder("2503050177418", (error, data, response) => { if (error) { if((JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100010")) console.log("error in cancel order v3"); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance = new UpstoxClient.PortfolioApi(); apiInstance.getMtfPositions((error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error get mtf positions"); } } }); const historicalApiInstance = new UpstoxClient.HistoryV3Api(); historicalApiInstance.getHistoricalCandleData("NSE_EQ|INE669E01016", "minutes", "1", "2025-04-04", (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error historical candle data v3"); } } }); historicalApiInstance.getHistoricalCandleData1("NSE_EQ|INE669E01016", "minutes", "1", "2025-05-04","2025-04-04",(error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error historical candle data v3"); } } }); historicalApiInstance.getIntraDayCandleData("NSE_EQ|INE669E01016", "minutes", "1", (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error historical candle data v3"); } } }) let marketQuoteApiInstance = new UpstoxClient.MarketQuoteV3Api(); marketQuoteApiInstance.getMarketQuoteOHLC("I1", {instrumentKey: "NSE_EQ|INE669E01016"}, (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error market quote v3"); } } }); marketQuoteApiInstance.getLtp({instrumentKey: "NSE_EQ|INE669E01016"}, (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error market quote ltp"); } } }); marketQuoteApiInstance.getMarketQuoteOptionGreek({instrumentKey: "NSE_FO|38606"}, (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error market option greek"); } } }); let expiredInstrumentsApiInstance = new UpstoxClient.ExpiredInstrumentApi(); expiredInstrumentsApiInstance.getExpiries("NSE_INDEX|Nifty 50", (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error get expiries"); } } }); expiredInstrumentsApiInstance.getExpiredFutureContracts("NSE_INDEX|Nifty 50", "2025-04-24", (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error get getExpiredFutureContracts"); } } }); expiredInstrumentsApiInstance.getExpiredHistoricalCandleData("NSE_FO|54452|24-04-2025", "1minute","2025-04-24", "2025-01-03", (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error get getExpiredHistoricalCandleData"); } } }); expiredInstrumentsApiInstance.getExpiredOptionContracts("NSE_INDEX|Nifty 50", "2025-04-24", (error, data, response) => { if (error) { console.error(error.response.text); } else { if(data.status != "success"){ console.log("error get getExpiredOptionContracts"); } } }); setTimeout(() => { apiInstance = new UpstoxClient.LoginApi(); opts = { 'code': "{your_auth_code}", 'clientId': "{your_client_secret}", 'clientSecret': "{your_client_secret}", 'redirectUri': "{your_redirect_url}", 'grantType': "authorization_code" }; body = new UpstoxClient.IndieUserTokenRequest(); body.clientSecret = "e" apiInstance.initTokenRequestForIndieUser(body,"e", (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100069") console.log("error in indie token api " + JSON.stringify(error)); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance.token(apiVersion, opts, (error, data, response) => { if (error) { if(JSON.parse(error.response.text).errors[0].errorCode != "UDAPI100069") console.log("error in get token= " + JSON.stringify(error)); } else { console.log('API called successfully. Returned data: ' + JSON.stringify(data)); } }); apiInstance.logout(apiVersion, (error, data, response) => { if (error) { console.error(error); } else { console.log('Logout api called successfully. Returned data: ' + JSON.stringify(data)); } }); }, 5000);