API Guide: Multi-Account Order/Position Lookup

10 min read

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.

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

Access Account Management #

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.

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

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 controlMeaning
Username / EmailIdentifies the master or client PickMyTrade account.
Tradovate AccountsShows the broker account IDs associated with that PickMyTrade login.
Copier StatusIndicates whether the Manual Trade Copier is active or inactive for that account.
API Status — ConnectedAPI access is connected for that login’s Tradovate accounts, allowing order and position queries.
API Status — DisconnectedAPI access is not connected for that account. Check the Message column for the reason.
MessageProvides connection information or explains why access could not start.
ConnectEnables API access for an individual client account once its prerequisites are met.
DisconnectDisconnects API access for that individual client account.
Disable APITurns 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 #

  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 #

  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.

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": "[email protected]",
    "from_date": "2026-04-21",
    "to_date": "2026-07-08",
    "order_id": "547231481639"
}

Request Parameters #

ParameterDescription
emailEmail address of the master or linked client/child account you want to query.
from_dateStart date of the order search range.
to_dateEnd date of the order search range.
order_idOptional. 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 #

FieldDescription
account_idBroker account on which the order was placed.
order_idUnique identifier for the order. This can also be used as the order_id search parameter.
master_tokenIdentifies the master/source account associated with the trade copy.
sideOrder direction, such as Buy or Sell.
contract_idInstrument traded, such as MNQU6.
order_statusCurrent order status, such as Filled, Cancelled, Working, or Rejected.
createdDate and time when the order was created.
order_typeType of order, when available.
priceOrder or execution price, when available.
quantityOrder quantity, when available.
sl_order_idStop-loss order ID linked to the trade.
sl_order_typeStop-loss order type.
sl_order_priceStop-loss order price.
tp_order_idTake-profit order ID linked to the trade.
tp_order_typeTake-profit order type.
tp_order_priceTake-profit order price.
tp_order_statusCurrent status of the take-profit order.
time_in_forceHow long the order remains active, such as GTC or Day.
expire_timeExpiration time when applicable.
strategy_idIdentifies 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": "[email protected]"
}

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 #

FieldDescription
account_idBroker account associated with the position.
contract_idInstrument associated with the position, such as NQU6.
net_posCurrent 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.
boughtTotal quantity bought for the contract.
soldTotal quantity sold for the contract.
timestampUTC timestamp of the most recent position update in ISO 8601 format.
datetimeLocal 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.

Last updated: October 21, 2026

For AI tools & developers:View Markdown →
Rated 4.6/5 by 83+ traders on Trustpilot
Markdown version