{"_id":"5paisa-ts-sdk","name":"5paisa-ts-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"5paisa-ts-sdk","version":"1.0.0","description":"Modern TypeScript SDK for 5paisa Trading APIs","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build"},"engines":{"node":">=18"},"dependencies":{"papaparse":"^5.5.3"},"devDependencies":{"@types/node":"^20.11.30","typescript":"^5.9.3","ts-node":"^10.9.2"},"repository":{"type":"git","url":"git+https://github.com/AmitManna99/5paisa-ts-sdk.git"},"keywords":["5paisa","trading-api","broker-sdk","algo-trading","typescript","nodejs"],"_id":"5paisa-ts-sdk@1.0.0","gitHead":"e4c673a068820f66ae48a6e5e2b9d986e4374c9c","bugs":{"url":"https://github.com/AmitManna99/5paisa-ts-sdk/issues"},"homepage":"https://github.com/AmitManna99/5paisa-ts-sdk#readme","_nodeVersion":"22.14.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-Ru8ijPaSK1YJWDq+d3lIc8Irb/LU8TztRbVasIj0kQIzyZq5br/8jSY5Arq40E4SOo69z3KukIaq1hhUSyyN1g==","shasum":"927acb53ae4f1b51a1bd64b5ff86b92fb50876cc","tarball":"https://registry.npmjs.org/5paisa-ts-sdk/-/5paisa-ts-sdk-1.0.0.tgz","fileCount":38,"unpackedSize":25506,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHQs2NuMC/3aFKQQUoC6PgI4oY+1fsO9/xImoU/e6cdCAiACxz2q4fhUHu5YGOhBZtvVGeBg0I2sqBRldei0O1tyXA=="}]},"_npmUser":{"name":"amitmanna99","email":"manna.amit99@gmail.com"},"directories":{},"maintainers":[{"name":"amitmanna99","email":"manna.amit99@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/5paisa-ts-sdk_1.0.0_1769255831394_0.1461950808070105"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-24T11:57:11.006Z","1.0.0":"2026-01-24T11:57:11.555Z","modified":"2026-01-24T11:57:11.806Z"},"maintainers":[{"name":"amitmanna99","email":"manna.amit99@gmail.com"}],"description":"Modern TypeScript SDK for 5paisa Trading APIs","homepage":"https://github.com/AmitManna99/5paisa-ts-sdk#readme","keywords":["5paisa","trading-api","broker-sdk","algo-trading","typescript","nodejs"],"repository":{"type":"git","url":"git+https://github.com/AmitManna99/5paisa-ts-sdk.git"},"bugs":{"url":"https://github.com/AmitManna99/5paisa-ts-sdk/issues"},"license":"MIT","readme":"# 5paisa TypeScript SDK\r\n\r\nA **modern, lightweight, TypeScript-first SDK** for interacting with **5paisa Trading APIs**.\r\nDesigned for **Node.js 18+**, with strong typing, modular services, and zero deprecated dependencies.\r\n\r\n---\r\n\r\n## ✨ Features\r\n\r\n- ✅ TypeScript-first with `.d.ts` support\r\n- ✅ No deprecated libraries (`axios`, `request`, `node-pandas` removed)\r\n- ✅ Clean service-based API (`auth`, `orders`, `market`)\r\n- ✅ Native `fetch` (Node.js 18+)\r\n- ✅ Safe payload builders (no shared mutable state)\r\n- ✅ GitHub & npm install support\r\n\r\n---\r\n\r\n## 📦 Installation\r\n\r\n### From GitHub (recommended during development)\r\n\r\n```bash\r\nnpm install git+https://github.com/AmitManna99/5paisa-ts-sdk.git\r\n```\r\n\r\n### From npm (once published)\r\n\r\n```bash\r\nnpm install 5paisa-ts-sdk\r\n```\r\n\r\n---\r\n\r\n## ⚙️ Requirements\r\n\r\n- **Node.js >= 18**\r\n- 5paisa API credentials\r\n  (Get them from: [https://tradestation.5paisa.com/apidoc](https://tradestation.5paisa.com/apidoc))\r\n\r\n---\r\n\r\n## 🚀 Quick Start\r\n\r\n### 1️⃣ Create Client\r\n\r\n```ts\r\nimport { FivePaisaClient } from \"5paisa-ts-sdk\";\r\n\r\nconst client = new FivePaisaClient({\r\n  appName: \"my-app\",\r\n  userId: \"YOUR_USER_ID\",\r\n  password: \"YOUR_PASSWORD\",\r\n  userKey: \"YOUR_VENDOR_KEY\",\r\n  encryptionKey: \"YOUR_ENCRYPTION_KEY\",\r\n  clientCode: \"YOUR_CLIENT_CODE\",\r\n  appSource: 1234,\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🔐 Authentication\r\n\r\n### Option 1: Login using TOTP + PIN\r\n\r\n```ts\r\nconst requestToken = await client.auth.getRequestToken(\"TOTP_CODE\", \"PIN\");\r\n\r\nawait client.auth.getAccessToken(requestToken);\r\n\r\n// Client is now authenticated\r\n```\r\n\r\n---\r\n\r\n### Option 2: Login using Access Token (recommended for automation)\r\n\r\n```ts\r\nawait client.auth.setAccessToken(\"EXISTING_ACCESS_TOKEN\");\r\n```\r\n\r\n---\r\n\r\n### Option 3: OAuth Login (Browser Flow)\r\n\r\n1. Redirect user to:\r\n\r\n```\r\nhttps://dev-openapi.5paisa.com/WebVendorLogin/VLogin/Index\r\n  ?VendorKey=<YOUR_USER_KEY>\r\n  &ResponseURL=<YOUR_REDIRECT_URL>\r\n```\r\n\r\n2. Extract `RequestToken` from redirect URL\r\n3. Exchange it for access token:\r\n\r\n```ts\r\nawait client.auth.getAccessToken(requestToken);\r\n```\r\n\r\n---\r\n\r\n## 📊 Holdings & Positions\r\n\r\n### Fetch Holdings\r\n\r\n```ts\r\nconst holdings = await client.orders.getHoldings();\r\nconsole.log(holdings);\r\n```\r\n\r\n---\r\n\r\n### Fetch Positions\r\n\r\n```ts\r\nconst positions = await client.orders.getPositions();\r\nconsole.log(positions);\r\n```\r\n\r\n---\r\n\r\n## 🧾 Orders\r\n\r\n### Place Order\r\n\r\n```ts\r\nawait client.orders.placeOrder({\r\n  scripCode: 1660,\r\n  qty: 1,\r\n  orderType: \"BUY\",\r\n  exchange: \"N\",\r\n  price: 208,\r\n});\r\n```\r\n\r\n---\r\n\r\n### Modify Order\r\n\r\n```ts\r\nawait client.orders.modifyOrder({\r\n  exchangeOrderID: \"1100000007628729\",\r\n  qty: 1,\r\n  price: 210,\r\n  exchange: \"N\",\r\n  exchangeType: \"C\",\r\n  isIntraday: false,\r\n});\r\n```\r\n\r\n---\r\n\r\n### Cancel Order\r\n\r\n```ts\r\nawait client.orders.cancelOrder(\"1100000007973827\");\r\n```\r\n\r\n---\r\n\r\n## 🧠 BO / CO Orders\r\n\r\n### Place BO-CO Order\r\n\r\n```ts\r\nawait client.orders.placeBOCOOrder({\r\n  scripCode: 1660,\r\n  qty: 1,\r\n  limitPrice: 205,\r\n  triggerPrice: 0,\r\n  targetPrice: 217,\r\n  side: \"BUY\",\r\n  exchange: \"N\",\r\n  exchangeType: \"C\",\r\n});\r\n```\r\n\r\n---\r\n\r\n### Modify BO-CO Order (Profit / SL Leg)\r\n\r\n```ts\r\nawait client.orders.modifyBOCOOrder({\r\n  exchOrderId: \"1100000008697274\",\r\n  price: 215,\r\n});\r\n```\r\n\r\n---\r\n\r\n## 📈 Market Data\r\n\r\n### Market Feed\r\n\r\n```ts\r\nconst feed = await client.market.getMarketFeed([\r\n  {\r\n    Exch: \"N\",\r\n    ExchType: \"D\",\r\n    Symbol: \"NIFTY 27 MAY 2021 CE 14500.00\",\r\n    Expiry: \"20210527\",\r\n    StrikePrice: \"14500\",\r\n    OptionType: \"CE\",\r\n  },\r\n]);\r\n\r\nconsole.log(feed);\r\n```\r\n\r\n---\r\n\r\n### Market Feed by Scrip\r\n\r\n```ts\r\nconst feed = await client.market.getMarketFeedByScrip([\r\n  {\r\n    Exch: \"N\",\r\n    ExchType: \"C\",\r\n    ScripCode: 1660,\r\n    ScripData: \"RELIANCE_EQ\",\r\n  },\r\n]);\r\n```\r\n\r\n---\r\n\r\n### Market Depth\r\n\r\n```ts\r\nconst depth = await client.market.getMarketDepth([\r\n  { Exchange: \"N\", ExchangeType: \"C\", ScripCode: 1660 },\r\n]);\r\n```\r\n\r\n---\r\n\r\n## ⏱ Historical Data\r\n\r\n```ts\r\nconst candles = await client.market.getHistoricalData({\r\n  exchange: \"N\",\r\n  exchangeType: \"C\",\r\n  scripCode: 1660,\r\n  timeframe: \"1m\",\r\n  from: \"2021-05-31\",\r\n  to: \"2021-06-01\",\r\n});\r\n```\r\n\r\nSupported timeframes:\r\n\r\n```\r\n['1m', '5m', '10m', '15m', '30m', '60m', '1d']\r\n```\r\n\r\n---\r\n\r\n## 📚 API Structure Overview\r\n\r\n```ts\r\nclient.auth; // authentication & tokens\r\nclient.orders; // holdings, orders, positions\r\nclient.market; // market feed, depth, historical data\r\n```\r\n\r\n---\r\n\r\n## 🛡️ Notes & Best Practices\r\n\r\n- Always **store access tokens securely**\r\n- Prefer **access-token login** for long-running services\r\n- SDK expects **Node.js 18+**\r\n- This SDK does **not manage retries / rate limits** yet\r\n\r\n---\r\n\r\n## 🧪 Development\r\n\r\n```bash\r\nnpm run dev\r\n```\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nMIT\r\n\r\n---\r\n\r\n## 🚧 Roadmap\r\n\r\n- Typed API responses\r\n- Runtime validation (Zod)\r\n- Retry & rate-limit handling\r\n- WebSocket feed support\r\n- npm public release\r\n","readmeFilename":"README.md","_rev":"1-d78fdfb0463461d531c2dd5893650582"}