Get Transactions

List transactions of a particular user

Overview

This GET endpoint enables you to retrieve a list of transactions that the have been made on a particular trading account. The number of retrieved transactions can be specified in the request header.

There are eight required parameters that must be provided in the request:

  1. Authorization (header). This is the authorization token from the very first token request. The value of this header must have the following format: Bearer BQ898r9fefi (Bearer + 1 space + the token).

  2. API version (path). Unless necessary, leave it at "1.0".

  3. accountId (query). This is the ID of the trading account whose transactions need to be retrieved.

  4. pageSize (query). This field indicates the number of transactions that needs to be retrieved per page.

  5. pageNumber (query). This field indicates the number of the page that needs to be retrieved (all transactions are split into a set of pages that can be loaded one by one).

  6. sortBy (query). This is the field by which the retrieved transactions ought to be sorted. For example, if you the value of this parameter is set to Quantity, the retrieved alerts will be sorted by the number of shares involved in the transaction.

  7. isDesc (query). This field indicates if the list of retrieved transactions should be sorted in the descending order (true) or ascending order (false).

There's also one optional parameter worth examining:

  • filter (request query). This is an SQL query used to retrieve only those transactions that satisfy the conditions of the query.

Filter Syntax

The syntax for filter queries is rather simple: each parameter of a transaction can serve as a filter. The conditions that a parameter needs to satisfy can be expressed in the following ways:

  1. Parameter (=, <, >, <=, >=) value. For example: SecurityId = 4

  2. Parameter (=, contains, startsWith, endsWith) string. For example: Date >= #2019-03-18T11:10:14.036Z#

  3. Parameter in (value1, value2, etc.). In this case the parameter has to be contained in the set of values in the parentheses to satisfy the filter condition. For example: Id in (7420, 7630, 9870)

  4. Parameter between Value1 and Value2. In this case the parameter has to be in the specified range between Value1 and Value2 to satisfy the filter condition. For example: Quantity between 0 and 1000.

Boolean values are provided in the following format: true and false.

Numeric values are provided in the regular format: 2500.

Strings must be highlighted with quotation marks: 'USD'.

Dates must be highlighted with the pound sign: #2019-08-09T18:31:42#.

The following table lists a set of sample queries:

Sample QueryDescription
  • SecurityId = 4

  • Retrieves all transactions with the Apple stock.

  • Date >= #2019-03-18T11:10:14.036Z#

  • Retrieves all transactions that were carried out prior to the specified date.

  • Quantity between 0 and 1000

  • Retrieves all transactions in which the number of transacted securities lies in the range between 0 and 1000.

Note that you can combine different queries to create more complex requests:

  • SecurityId = 4 and Quantity between 0 and 1000

Here's the final template for this API request:

GET apiURL/v1.0/accounts/6303/transactions/?pageNumber=0&pageSize=10&sortBy=Quantity&isDesc=true

Response

In response to this API request, you'll receive a JSON file with the list of transactions that have been made on the specified trading account.

{
    "Result": [
        {
            "Id": 2390187,
            "SecurityId": 4,
            "OrderStateId": 168831,
            "AccountId": 6303,
            "Date": "2019-01-22T14:30:03.7328576Z",
            "Value": -23485.5,
            "Quantity": 150,
            "LeavesQuantity": 150,
            "Fee": {
                "Id": 156823,
                "Value": 23355,
                "Seizure": "Order",
                "Leverage": 1,
                "ValueType": "Absolute"
            },
            "Type": "OrderExecution",
            "IsDayTrade": false
        },
        {
            "Id": 2387057,
            "SecurityId": -1,
            "OrderStateId": 0,
            "AccountId": 6303,
            "Date": "2019-01-14T12:29:14.3203481Z",
            "Value": 1000000,
            "Quantity": 0,
            "LeavesQuantity": 0,
            "Type": "Payment",
            "IsDayTrade": false,
            "Description": "Initial deposit"
        },
        {
            "Id": 2390186,
            "SecurityId": 4,
            "OrderStateId": 168831,
            "AccountId": 6303,
            "Date": "2019-01-22T14:30:03.7328576Z",
            "Value": -3.75,
            "Quantity": 0,
            "LeavesQuantity": 0,
            "Fee": {
                "Id": 156822,
                "CommissionId": "Per Trade Commission",
                "Value": 3.75,
                "Seizure": "Execution",
                "Leverage": 1,
                "ValueType": "Absolute"
            },
            "Type": "Commission",
            "IsDayTrade": false
        }
    ],
    "NextPageLink": "",
    "PreviousPageLink": "",
    "TotalCount": 3
}

where:

ParameterDescription

Result

This is a dictionary that contains the requested transactions.

Id

This is the internal identifier of a given transaction.

SecurityId

This is the internal identifier of the underlying security that was traded in this transaction.

OrderStateId

This is the internal identifier of the order in AutoShares. In most cases this information should not be used.

AccountId

This is the internal identifier of the trading account on which the transaction was made.

Date

This is the date on which the transaction was made.

Value

This is the amount of funds that were subtracted from or added to the trading account.

Quantity

This is the number of securities that were traded in this transaction.

LeavesQuantity

This is the number of securities that are yet to be purchased in this transaction. This field is applicable for partial orders.

Fee

This is a dictionary that contains information about the fees applied to this transaction.

Id

This is the internal identifier of the fee in AutoShares.

CommissionId

This is the identifier of the fee in the string format.

Value

This is the numeric value of the fee (the amount that was subtracted from the trading account).

Seizure

This field indicates when the fee will be applied to the trading account.

Leverage

This field indicates the amount of leverage used in this transaction. For example, if the value is set to 3, it means that the transaction's leverage equates to 3:1.

ValueType

This field indicates if the fee is applied on an absolute basis (fixed amount for the transaction) or on a relative basis (as a percentage of the transaction).

IsDayTrade

This field indicates if the transaction is a day trade. As per FINRA, a day trade is the purchasing and selling of the same security during on the same trading day.

NextPageLink

This is the next page with the subsequent transactions.

PreviousPageLink

This is the previous page with older transactions.

TotalCount

This is the total number of transactions that have been made on this trading account.

Common Mistakes

Here are some of the common mistakes that developers make when attempting to retrieve the list of transactions made on a particular trading account.

Failing to Specify the Query Parameters

It's crucial to understand that the pageSize, pageNumber, isDesc, and sortBy parameters must be provided in the request; otherwise you'll receive the 404 status code and the following message:

{
    "Error": {
        "Code": "UnsupportedApiVersion",
        "Message": "The requested resource with API version '1.0' does not support HTTP method 'GET'."
    }
}

The following article covers the syntax for this API request in detail.

Last updated