{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"4e71e8bc-d7e5-432c-b8ce-1315b40e24ed","name":"INDstocks Trading API","description":"Everything you need to trade programmatically on INDstocks — accounts, live market data,  \norders, GTT (smart) orders, portfolio, and margins. This collection is **self-contained**:  \nimport it, add your token, and start sending requests. Every request below has its own  \ndocumentation, a saved example response, and automatic tests.\n\n> **Base URL:** `https://api.indstocks.com` \n  \n\n---\n\n## 1\\. Get your access token\n\n1. Log in at [<b>www.indstocks.com</b>](http://www.indstocks.com).\n    \n2. Go to **FnO** → **Algos** → Claim Your Algo Trading Access\n    \n3. Go to **Access Tokens,** setup your **Static IP**\n    \n4. Generate and copy your access token. Treat it like a password.\n    \n\nThe token authenticates every request in this collection. Treat it like a password — anyone  \nwith it can trade on your account.\n\n## 2\\. Set up this collection (one time, \\~30 seconds)\n\n1. In Postman: **Import** → drop in both files (`...collection.json` and `...environment.json`).\n    \n2. Top-right **environment selector** → choose **INDstocks – Environment**.\n    \n3. Click the environment (eye icon), paste your token into **`access_token`**, and save.\n    \n4. Open any request and hit **Send**. That's it.\n    \n\nYou do **not** need to add an `Authorization` header yourself — the collection sends it for you  \nusing the `access_token` variable. Nothing is hardcoded, so the file is safe to share.\n\n## 3\\. Authentication\n\nEvery protected endpoint requires this header:\n\n```\nAuthorization: <your_access_token>\n\n ```\n\n**Important:** it's the **raw token — no** **`Bearer`** **prefix.** This collection is preconfigured to  \nsend `Authorization: {{access_token}}` automatically (set once at the collection level, inherited  \nby every request).\n\n## 4\\. Conventions\n\n| Topic | Detail |\n| --- | --- |\n| Format | JSON request and response bodies. **Exception:** _Get Instrument List_ returns raw CSV. |\n| Timestamps | IST (India Standard Time), as **Unix epoch milliseconds** unless a field says otherwise. |\n| Response shape | Success: `{ \"status\": \"success\", \"data\": {...} }`. Error: `{ \"status\": \"error\", \"message\": \"...\", \"error_type\": \"...\" }`. |\n| IDs | Order IDs are prefixed by type: `EQ-` equity, `DRV-` derivative, `GTT-` smart/GTT order. |\n| Instrument identifier | `SECURITY_ID` (a.k.a. scrip code / instrument token). Look it up in the Instruments CSV. |\n| Quote scrip codes | `SEGMENT_TOKEN` format, e.g. `NSE_3045`, `NFO_51011`. Comma-separate for multiple. |\n\n## 5\\. Rate limits\n\nExceeding a limit returns HTTP **429**. Space out your calls or add a client-side rate limiter.\n\n| Category | Per second | Per day |\n| --- | --- | --- |\n| Order APIs (place / modify / cancel) | 10 | — |\n| Data APIs (historical, instruments) | 5 | 100,000 |\n| Quote APIs (full / LTP / depth) | 5 | 100,000 |\n| Non-Trading APIs (profile, funds, books, portfolio) | 15 | 100,000 |\n\nAdditional rule: a single order may be **modified at most 25 times**.\n\n## 6\\. Order rules you must know\n\n- **No pure MARKET orders via API.** If you send `order_type: \"MARKET\"`, it is automatically  \n    converted to a **LIMIT** order at the current live price before it reaches the exchange.\n    \n- **`algo_id`** **is required on every order.** Use **`99999`** for NSE and **`9999999999999999`**  \n    for BSE. (These are preset as `{{algo_id_nse}}` and `{{algo_id_bse}}`.)\n    \n- **Stop-loss / target legs need a limit price.** If you set `sl_trigger_price` you must also send  \n    `sl_limit_price`; same for `tgt_trigger_price` + `tgt_limit_price`. Otherwise the order is rejected.\n    \n\n## 7\\. Error format & common cases\n\nAll errors use the same shape and an HTTP 4xx/5xx status:\n\n``` json\n{ \"status\": \"error\", \"message\": \"A human-readable reason\", \"error_type\": \"TokenException\" }\n\n ```\n\n| Situation | Typical HTTP | What to do |\n| --- | --- | --- |\n| Missing / expired token | 403 | Regenerate the token and update `access_token`. |\n| Bad or missing field | 400 | Read `message`; fix the request body/params. |\n| Too many requests | 429 | You hit a rate limit (see §5). Back off and retry. |\n| Server issue | 5xx | Transient. Retry idempotent reads; for orders, check the order book before resending. |\n\n## 8\\. Environment variables\n\nSet these in the **INDstocks – Environment** file. Only `access_token` is required to start.\n\n| Variable | Required | Meaning | Example |\n| --- | --- | --- | --- |\n| `access_token` | ✅ | Your API token (sent as the Authorization header). | _(your token)_ |\n| `base_url` | ✅ | API base URL (preset). | `https://api.indstocks.com` |\n| `security_id` | — | Instrument identifier for order requests. | `500112` |\n| `scrip_codes` | — | Quote lookup codes, `SEGMENT_TOKEN`, comma-separated. | `NSE_3045` |\n| `segment` | — | Default segment for books/positions. | `DERIVATIVE` |\n| `interval` | — | Candle interval for historical data. | `1minute` |\n| `start_time` / `end_time` | — | Historical range (epoch ms, IST). | `1750055540000` |\n| `order_id` | — | Auto-filled after placing an order; reused by modify/cancel/details. | `DRV-2049` |\n\n`algo_id_nse` (`99999`) and `algo_id_bse` (`9999999999999999`) are preset at the collection level.\n\n## 9\\. How examples and tests work\n\n- **Examples:** every request has at least one saved **example response** (taken from the docs).  \n    Open a request → **Examples** dropdown (top-right) to see the expected shape before you send.\n    \n- **Tests:** each request runs assertions automatically after you Send (see the **Test Results**  \n    tab) — it checks the status code, the `status: success` flag, and key fields.\n    \n- **Chaining:** _Place Order_ and _Place Smart Order_ automatically save the returned `order_id`  \n    into a variable, so _Modify_, _Cancel_, and _Order Details_ work without copy-pasting.\n    \n\n## 10\\. Troubleshooting / FAQ\n\n**\"401 Unauthorized\" on every request.** Your `access_token` is empty, wrong, or expired. Re-check  \nstep 1–2. Make sure the **INDstocks – Environment** is selected (top-right).\n\n**\"Could not send request\" / connection error.** Confirm `base_url` is `https://api.indstocks.com`  \nand you have internet access.\n\n**A GET request seems to ignore its body.** A few endpoints (_Order Details_, _Calculate Margin_,  \nthe _Option Chain_ utilities) send a JSON body on a `GET` request. Postman supports this, but some  \ncorporate proxies strip GET bodies. If a call misbehaves behind a proxy, try a different network.\n\n**My order didn't behave like a market order.** Correct — pure MARKET orders are converted to LIMIT  \nat the live price (see §6).\n\n**Variables like** **`{{security_id}}`** **show as unresolved.** Set them in the environment, or type a real  \nvalue directly into the request.\n\n---\n\n_Unofficial collection generated from the public documentation at_ `_api-docs.indstocks.com_`_. If any__behaviour here differs from the official docs, the official docs are authoritative._","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"56363899","team":21440139,"collectionId":"4e71e8bc-d7e5-432c-b8ce-1315b40e24ed","publishedId":"2sBY4LShyj","public":true,"publicUrl":"https://documenter-api.postman.tech/view/56363899/2sBY4LShyj","privateUrl":"https://go.postman.co/documentation/56363899-4e71e8bc-d7e5-432c-b8ce-1315b40e24ed","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"04BC94"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":"INDmoney Trading APIs | Algo Trading"}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":"https://content.pstmn.io/20647536-1dfb-40c2-a0bf-9e777709af25/R3JvdXAgNDI3MzIwMzE1LnBuZw==","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"04BC94"}},{"name":"light","logo":"https://content.pstmn.io/0a9e36a9-f339-4437-afe0-8dc1b32ae44f/R3JvdXAgNDI3MzIwMzEzLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"04BC94"}}]}},"version":"8.12.3","publishDate":"2026-07-13T09:11:45.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"INDmoney Trading APIs | Algo Trading","description":""},"logos":{"logoLight":"https://content.pstmn.io/0a9e36a9-f339-4437-afe0-8dc1b32ae44f/R3JvdXAgNDI3MzIwMzEzLnBuZw==","logoDark":"https://content.pstmn.io/20647536-1dfb-40c2-a0bf-9e777709af25/R3JvdXAgNDI3MzIwMzE1LnBuZw=="}},"statusCode":200},"environments":[{"name":"INDstocks - Environment","id":"9ca16295-859f-4e88-916d-4e44b994a0a1","owner":"56363899","values":[{"key":"base_url","value":"https://api.indstocks.com","enabled":true,"type":"default"},{"key":"access_token","value":"","enabled":true,"type":"secret"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/17a293969c47e32de27192ca7dc4f417766dde9c0f60652ee7f3833461bbcb39","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"INDstocks - Environment","value":"56363899-9ca16295-859f-4e88-916d-4e44b994a0a1"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBY4LShyj"}