---
title: "API Guide: Multi-Account Order/Position Lookup"
slug: api-guide-multi-account-order-position-lookup
date: 2026-10-14
modified: 2026-10-21
author: Bhavishya Goyal
excerpt: ""
meta_description: This guide explains how to use the latest versions of the GetOrders and GetPositions endpoints to retrieve order and position data for a master account and its linked client accounts.
focus_keyword: ""
canonical_url: "https://docs.pickmytrade.trade/docs/api-guide-multi-account-order-position-lookup/"
og_title: "API Guide: Multi-Account Order/Position Lookup"
og_description: This guide explains how to use the latest versions of the GetOrders and GetPositions endpoints to retrieve order and position data for a master account and its linked client accounts.
og_image: ""
schema_type: HowTo
categories: []
tags: []
reading_time: 8
word_count: 1963
robots: "index, follow"
lang: en-US
---

# API Guide: Multi-Account Order/Position Lookup

**Last Updated:** October 21, 2026  |  **Published:** October 14, 2026

This guide explains how to use the latest versions of the **GetOrders** and **GetPositions** endpoints to retrieve order and position data for a master account and its linked client accounts.

A single master account can query data for any client account linked through **PickMyTrade Account Management**. Once an account is linked and its API access is connected, you only need to provide the client’s email address in the API request. Use the same master token for all requests. No separate login or authentication token is required for each client account.

Before making requests, link your client accounts, enable API access, and confirm that the target account shows **Connected** in the API dashboard.

## How It Works

The process is:

1. Link the client/child accounts to your master account through **Account Management**.
2. Open the **API** dashboard and click **Enable API**.
3. Confirm that API access shows **Connected** for the accounts you want to query.
4. Log in through the API using your master account credentials to obtain an API token.
5. Use that token with the `GetOrders` or `GetPositions` endpoint.
6. Provide the target account’s email address to retrieve its data.

&gt; **Important:** Each linked client account must have an active PickMyTrade subscription for its data to be returned.

## Step 0: Link Client Accounts in Account Management

Before using `GetOrders` or `GetPositions`, every client account you want to query must be linked to your master account.

This is a one-time setup performed through the PickMyTrade web application, not through the API.

For the complete Account Management guide, see:

[PickMyTrade Account Management](https://docs.pickmytrade.trade/docs/pickmytrade-account-management/)

### Access Account Management

![](https://docs.pickmytrade.trade/wp-content/uploads/2026/10/image-1-1024x490.avif)

In the current PickMyTrade layout, **Account Management** is available directly in the left-hand navigation panel.

Click **Account Management** to open the dashboard.

The dashboard contains two tabs:

- **My Client / Child Accounts** — Displays accounts that you have added or that have granted you access.
- **My Master Account** — Displays access requests made against your account, which you can approve or reject.

### Add a Client Account

There are two ways to link a client account.

#### Option 1: Add PickMyTrade Account Details

Use this option when creating the client account yourself.

1. Enter a unique username.
2. Optionally enter an email address.
3. Click **Add to List**.

#### Option 2: Request Existing PickMyTrade Account Access

Use this option when the client already has a PickMyTrade account.

1. Enter the email address registered to the client’s PickMyTrade account.
2. Click **Request Account Access**.

If the account was added using another person’s email address, that person must approve the request from their **My Master Account** tab.

Until the request is approved, the account appears with a **Pending** status.

After approval, the account appears under **My Client / Child Accounts**. The email address shown there is the email address you should use with the `GetOrders` and `GetPositions` endpoints.

## Enable API Access Before Logging In Through the API

### Open the API Dashboard

Log in to your master PickMyTrade account and select **API** from the left sidebar.

Before activation, the dashboard displays **API is off** and **API is not enabled**.

![](https://docs.pickmytrade.trade/wp-content/uploads/2026/10/image-2-1024x492.avif)

Click **Enable API** to start API access for your master account and all eligible client accounts already linked through Account Management.

![](https://docs.pickmytrade.trade/wp-content/uploads/2026/10/image-3-1024x491.avif)

An account can remain disconnected if its Tradovate login is not connected or its Manual Trade Copier is active. Check each account’s status before requesting its data.

### Understand the Dashboard

| Column or control | Meaning |
| --- | --- |
| Username / Email | Identifies the master or client PickMyTrade account. |
| Tradovate Accounts | Shows the broker account IDs associated with that PickMyTrade login. |
| Copier Status | Indicates whether the Manual Trade Copier is active or inactive for that account. |
| API Status — Connected | API access is connected for that login’s Tradovate accounts, allowing order and position queries. |
| API Status — Disconnected | API access is not connected for that account. Check the Message column for the reason. |
| Message | Provides connection information or explains why access could not start. |
| Connect | Enables API access for an individual client account once its prerequisites are met. |
| Disconnect | Disconnects API access for that individual client account. |
| Disable API | Turns off API access from the dashboard. |

**Copier Status and API Status are separate.** An **Inactive** copier does not automatically mean API access is connected. Always check the API status for the account you want to query.

### Resolve a Disconnected Account

#### If Tradovate Is Not Connected

![](https://docs.pickmytrade.trade/wp-content/uploads/2026/10/image-4-1024x205.avif)

1. Log in to the affected client’s PickMyTrade account.
2. Connect its Tradovate login.
3. Return to the master account’s API dashboard.
4. Click **Connect** for that client account.
5. Confirm that its API status changes to **Connected**.

#### If the Manual Trade Copier Is Active

![](https://docs.pickmytrade.trade/wp-content/uploads/2026/10/image-5-1024x387.avif)

1. Log in to the affected client’s PickMyTrade account.
2. Disable the Manual Trade Copier **from that client account itself**.
3. Return to the master account’s API dashboard.
4. Click **Connect** for that client account.
5. Confirm that its API status changes to **Connected**.

&gt; **Important:** Disabling the copier only on the master account does not resolve an active copier on a client account. You must disable it within the affected client account.

### Switch Between API Access and the Copier

If you want to use the copier later, then you can enable the copier within that account.

To return to API access, disable the copier within the client account and click **Connect** again in the master API dashboard.

Once the target accounts show **Connected**, continue to **Step 1: Log In and Get Your Access Token**.

---

## Step 1: Log In and Get an Access Token

The first API call is the login request.

Log in using your **master account credentials**. The token returned by this request is used to authenticate subsequent `GetOrders` and `GetPositions` requests.

### Endpoint

```
POST https://api.pickmytrade.trade/v3/LogIn
```

### Request Body

```
{
    "username": "*****************",
    "password": "************",
    "captcha_token": "",
    "by_api": true
}
```

### Response

```
{
    "data": "qT699d239dbcd4dcbc587e",
    "socket_url": "",
    "error": false
}
```

The value returned in the `data` field is your **bearer token**.

Use this token in the `Authorization` header for the `GetOrders` and `GetPositions` requests:

```
Authorization: Bearer YOUR_TOKEN
```

### Important: Master Account and Single Session

Only a **master account** can log in through this API.

The master account supports **one active session at a time**.

If the master account logs into the PickMyTrade web application while an API token is active, the existing API token may stop working for `GetOrders` and `GetPositions`.

If either endpoint returns a `401 Unauthorized` response:

1. Call the `LogIn` endpoint again.
2. Obtain a new token.
3. Use the new token for subsequent API requests.

---

# Step 2: Retrieve Order Details

Use the `GetOrders` endpoint to retrieve order history for:

- The master account itself, or
- Any client/child account linked to the master account.

The account is selected using the `email` field. You do not need to log in separately for each client.

## Endpoint

```
POST https://api.pickmytrade.trade/v3/GetOrders
```

### Authorization

Use the bearer token returned by the `LogIn` endpoint.

```
Authorization: Bearer YOUR_TOKEN
```

### Request Body

```
{
    "email": "client@example.com",
    "from_date": "2026-04-21",
    "to_date": "2026-07-08",
    "order_id": "547231481639"
}
```

### Request Parameters

| Parameter | Description |
| --- | --- |
| email | Email address of the master or linked client/child account you want to query. |
| from_date | Start date of the order search range. |
| to_date | End date of the order search range. |
| order_id | Optional. Use this to retrieve a specific order. Omit it to retrieve all orders within the specified date range. |

### Example Response

```
{
    "data": [
        {
            "account_id": "33001698",
            "side": "Sell",
            "id": 12,
            "order_status": "Filled",
            "contract_id": "MNQU6",
            "created": "2026-06-19 14:03:47",
            "master_token": "tr41f3653d565f1aadbe8d",
            "order_id": "547231481639",
            "tp_order_id": "571204440058",
            "tp_order_status": "Working"
        }
    ],
    "error": false
}
```

## Order Response Fields

| Field | Description |
| --- | --- |
| account_id | Broker account on which the order was placed. |
| order_id | Unique identifier for the order. This can also be used as the order_id search parameter. |
| master_token | Identifies the master/source account associated with the trade copy. |
| side | Order direction, such as Buy or Sell. |
| contract_id | Instrument traded, such as MNQU6. |
| order_status | Current order status, such as Filled, Cancelled, Working, or Rejected. |
| created | Date and time when the order was created. |
| order_type | Type of order, when available. |
| price | Order or execution price, when available. |
| quantity | Order quantity, when available. |
| sl_order_id | Stop-loss order ID linked to the trade. |
| sl_order_type | Stop-loss order type. |
| sl_order_price | Stop-loss order price. |
| tp_order_id | Take-profit order ID linked to the trade. |
| tp_order_type | Take-profit order type. |
| tp_order_price | Take-profit order price. |
| tp_order_status | Current status of the take-profit order. |
| time_in_force | How long the order remains active, such as GTC or Day. |
| expire_time | Expiration time when applicable. |
| strategy_id | Identifies the strategy that generated the order, when applicable. |

### Empty Fields

Some fields may be empty in the response because they do not apply to a particular order.

For example, a market order without a stop-loss order may have empty `sl_order_*` fields.

---

# Step 3: Retrieve Positions

Use the `GetPositions` endpoint to retrieve position information for the master account or any linked client/child account.

As with `GetOrders`, the `email` field identifies the account you want to query.

No separate client login is required.

## Endpoint

```
POST https://api.pickmytrade.trade/v3/GetPositions
```

### Authorization

Use the bearer token returned by the `LogIn` endpoint.

```
Authorization: Bearer YOUR_TOKEN
```

### Request Body

```
{
    "email": "client@example.com"
}
```

The `email` value must correspond to the master account or a client/child account linked through Account Management.

### Example Response

```
{
    "data": [
        {
            "account_id": "DEMO4359364",
            "contract_id": "NQU6",
            "net_pos": 0,
            "bought": 0,
            "sold": 0,
            "timestamp": "2026-07-15T21:33:48.642Z",
            "datetime": "2026-07-16 12:04:23.456349"
        },
        {
            "account_id": "DEMO4359364",
            "contract_id": "CLQ6",
            "net_pos": 0,
            "bought": 0,
            "sold": 0,
            "timestamp": "2026-07-13T21:34:18.192Z",
            "datetime": "2026-07-15 21:07:26.128674"
        }
    ],
    "error": false
}
```

## Position Response Fields

| Field | Description |
| --- | --- |
| account_id | Broker account associated with the position. |
| contract_id | Instrument associated with the position, such as NQU6. |
| net_pos | Current net position size. A positive value represents a net long position, a negative value represents a net short position, and 0 means the position is flat. |
| bought | Total quantity bought for the contract. |
| sold | Total quantity sold for the contract. |
| timestamp | UTC timestamp of the most recent position update in ISO 8601 format. |
| datetime | Local timestamp of the most recent position update. |

### Understanding `net_pos`

The response can contain contracts that currently have no open position.

For example:

```
{
    "contract_id": "NQU6",
    "net_pos": 0
}
```

A `net_pos` of `0` means the account is currently **flat** for that contract. It does not mean that the contract is missing data.

The endpoint returns information for contracts the account has traded, including contracts whose current position is zero.

---

# Authentication and Account Flow

The complete flow can be summarized as:

```
Master Account
      │
      ▼
Account Management
      │
      ├── Link Client Account A
      ├── Link Client Account B
      └── Link Client Account C
      │
      ▼
POST /v3/LogIn
      │
      ▼
Master Bearer Token
      │
      ├── POST /v3/GetOrders
      │       └── email = Client A
      │
      ├── POST /v3/GetOrders
      │       └── email = Client B
      │
      ├── POST /v3/GetPositions
      │       └── email = Client A
      │
      └── POST /v3/GetPositions
              └── email = Client C
```

The same master token can therefore be used to query multiple linked accounts. The `email` value determines which linked account’s data is returned.

---

# Important Notes

- Client accounts must be linked through **Account Management** before their data can be queried.
- Each linked account must have an **active PickMyTrade subscription**.
- Use the **master account credentials** when calling `LogIn`.
- No separate API login is required for each client account.
- Use the client’s registered email address in the `email` parameter.
- Only one master API session can be active at a time.
- If a `401` response is returned, log in again to obtain a fresh token.
- A position with `net_pos: 0` indicates that the account is currently flat for that contract.
- Some order fields may be empty when they are not applicable to the order.

# Summary

The latest `GetOrders` and `GetPositions` endpoints make it possible for a master account to access data across its linked client accounts using a single authentication token.

The key requirements are:

1. Link the client account through **Account Management**.
2. Authenticate using the master account.
3. Use the returned bearer token.
4. Pass the linked client’s email address in the request.
5. Call `GetOrders` or `GetPositions` to retrieve the account’s data.

This approach eliminates the need to maintain separate API login sessions for each linked client account.

[Get PickMyTrade → Automate Your TradingView Strategies](https://pickmytrade.trade "PickMyTrade - Automated Trading")

Last updated: **October 21, 2026**

For AI tools &amp; developers:[View Markdown →](https://docs.pickmytrade.trade/docs/api-guide-multi-account-order-position-lookup.md)