Skip to content

Net Position

Net Position APIs

method path description
GET https://api.mstock.trade/openapi/typea/portfolio/positions view all their existing orders
POST https://api.mstock.trade/openapi/typea/portfolio/convertposition Convert position

Net Position

This endpoint allows users to retrieve a list of their trading orders. Users can view all their existing orders

Request Headers -

  • X-Mirae-Version : Specifies the version of the API being used. In this case, it is set to 1.

  • Authorization : A token-based authentication header. The format is token api_key:access_token.

curl --location 'https://api.mstock.trade/openapi/typea/portfolio/positions' \
    --header 'X-Mirae-Version: 1' \
    --header 'Authorization: token api_key:access_token'\
import axios from 'axios';

const response = await axios.get('https://api.mstock.trade/openapi/typea/portfolio/positions', {
headers: {
    'X-Mirae-Version': '1',
    'Authorization': 'token api_key:access_token'
}
});
import requests

headers = {
    'X-Mirae-Version': '1',
    'Authorization': 'token api_key:access_token',
}

response = requests.get('https://api.mstock.trade/openapi/typea/portfolio/positions', headers=headers)
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

HttpClient client = HttpClient.newBuilder()
    .followRedirects(HttpClient.Redirect.NORMAL)
    .build();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.mstock.trade/openapi/typea/portfolio/positions"))
    .GET()
    .setHeader("X-Mirae-Version", "1")
    .setHeader("Authorization", "token api_key:access_token")
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

Request Body -

This endpoint does not require a request body or additional parameters in the query string for the retrieval of orders.

Response Structure -

The response of the request will be based on authentication outcome.

  • Success (HTTP Status 200): On successful retrieval, the server returns a JSON array of client positions.

{
    "status": "success",
    "data": {
        "net": [
            {
                "tradingsymbol": "YESBANK",
                "exchange": "NSE",
                "instrument_token": 11915,
                "product": "",
                "quantity": 100,
                "overnight_quantity": 0,
                "multiplier": 1,
                "average_price": 19.05,
                "close_price": 27.65,
                "last_price": 27.65,
                "value": 1905,
                "pnl": 0,
                "m2m": 860,
                "unrealised": 0,
                "realised": 0,
                "buy_quantity": 100,
                "buy_price": 19.05,
                "buy_value": 1905,
                "buy_m2m": 0,
                "sell_quantity": 0,
                "sell_price": 0,
                "sell_value": 0,
                "sell_m2m": 0,
                "day_buy_quantity": 100,
                "day_buy_price": 19.05,
                "day_buy_value": 1905,
                "day_sell_quantity": 0,
                "day_sell_price": 0,
                "day_sell_value": 0
            },
            {
                "tradingsymbol": "IDEA",
                "exchange": "NSE",
                "instrument_token": 14366,
                "product": "",
                "quantity": 4,
                "overnight_quantity": 0,
                "multiplier": 1,
                "average_price": 100,
                "close_price": 16.55,
                "last_price": 16.55,
                "value": 400,
                "pnl": 0,
                "m2m": -333.8,
                "unrealised": 0,
                "realised": 0,
                "buy_quantity": 4,
                "buy_price": 100,
                "buy_value": 400,
                "buy_m2m": 0,
                "sell_quantity": 0,
                "sell_price": 0,
                "sell_value": 0,
                "sell_m2m": 0,
                "day_buy_quantity": 4,
                "day_buy_price": 100,
                "day_buy_value": 400,
                "day_sell_quantity": 0,
                "day_sell_price": 0,
                "day_sell_value": 0
            }
        ],
        "day": null
    }
}
- Failure (HTTP Status 400): If authentication fails, the server will return an error message

{
    "status": "error",
    "message": "Please provide valid api version.",
    "error_type": "VersionException",
    "data": null
}

Position Converstion

Each position has one margin product. These products affect how the user's margin usage and free cash values are computed, and a user may wish to convert or change a position's margin product on timely basis.

Request Headers -

  • X-Mirae-Version : Specifies the version of the API being used. In this case, it is set to 1.

  • Authorization : A token-based authentication header. The format is token api_key:access_token.

curl --location 'https://api.mstock.trade/openapi/typea/portfolio/convertposition' \
    --header 'X-Mirae-Version: 1' \
    --header 'Authorization: token api_key:access_token'\
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'tradingsymbol=ACC' \
    --data-urlencode 'exchange=NSE' \
    --data-urlencode 'transaction_type=BUY' \
    --data-urlencode 'position_type=DAY' \
    --data-urlencode 'quantity=1' \
    --data-urlencode 'old_product=CNC' \
    --data-urlencode 'new_product=MIS'
import axios from 'axios';

const response = await axios.post(
'https://api.mstock.trade/openapi/typea/portfolio/convertposition',
new URLSearchParams({
    'tradingsymbol': 'ACC',
    'exchange': 'NSE',
    'transaction_type': 'BUY',
    'position_type': 'DAY',
    'quantity': '1',
    'old_product': 'CNC',
    'new_product': 'MIS'
}),
{
    headers: {
    'X-Mirae-Version': '1',
    'Authorization': 'token api_key:access_token'
    }
}
);
import requests

headers = {
    'X-Mirae-Version': '1',
    'Authorization': 'token api_key:access_token',
    'Content-Type': 'application/x-www-form-urlencoded',
}

data = {
    'tradingsymbol': 'ACC',
    'exchange': 'NSE',
    'transaction_type': 'BUY',
    'position_type': 'DAY',
    'quantity': '1',
    'old_product': 'CNC',
    'new_product': 'MIS',
}

response = requests.post('https://api.mstock.trade/openapi/typea/portfolio/convertposition', headers=headers, data=data)
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;

HttpClient client = HttpClient.newBuilder()
    .followRedirects(HttpClient.Redirect.NORMAL)
    .build();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.mstock.trade/openapi/typea/portfolio/convertposition"))
    .POST(BodyPublishers.ofString("tradingsymbol=ACC&exchange=NSE&transaction_type=BUY&position_type=DAY&quantity=1&old_product=CNC&new_product=MIS"))
    .setHeader("X-Mirae-Version", "1")
    .setHeader("Authorization", "token api_key:access_token")
    .setHeader("Content-Type", "application/x-www-form-urlencoded")
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

Request Body -

This endpoint does not require a request body or additional parameters in the query string for the retrieval of orders.

Field Type Description
tradingsymbol string Refer Trading Symbol in Tables
exchange string Exchange Name : NSE BSE
transaction_type string The trading side of transaction : BUY SELL
position_type string Position Type : DAY
quantity string Number of shares for the order
old_product string Product type CNC MIS MTF
new_product string Product type CNC MIS MTF

Response Structure -

The response of the request will be based on authentication outcome.

  • Success (HTTP Status 200): On successful retrieval, the server returns a JSON array of client positions.
instrument_token,exchange_token,tradingsymbol,name,last_price,expiry,strike,
  tick_size,lot_size,instrument_type,segment,exchange
1,1,GOLDSTAR,GOLDSTAR POWER LIMITED,,,,,1,SM,SM,NSE
2,2,91D101220,GOI TBILL 91D-10/12/20,,,,,1,TB,TB,NSE
  • Failure (HTTP Status 400): If the API Key is Invalid or expired.
{
    "status": "error",
    "message": "API is suspended/expired for use. Please check your API subscription and try again.",
    "error_type": "APIKeyException",
    "data": null
}