====== T4 Chart API ======
Our chart API provides data in aggregated or non-aggregated (raw trade) formats.
All times are in CST.
===== Aggregated Chart Data =====
==== Overview ====
The **GetBarChart** API retrieves bar chart data for a specified trading instrument over a given date range. This API supports various chart types and bar intervals, tailored for detailed data analysis in financial contexts.
==== API Endpoint ====
GET https://api-sim.t4login.com/chart/barchart
==== Headers ====
For proper access and response handling, the **GetBarChart** API requires certain HTTP headers to be set in the request.
^ Header ^ Value ^ Description ^
| Authorization | Bearer | **Required**. A valid bearer token to authenticate the request. |
| Accept | application/octet-stream, application/t4 | **Optional**. Specifies the content type that the client can handle. Use this header to request a compact binary format response. If omitted, the default response format is JSON. |
**Examples:**
* To authorize the request, include the bearer token:
Authorization: Bearer YOUR_ACCESS_TOKEN
* To receive the response in a compact binary format, set the `Accept` header accordingly:
Accept: application/octet-stream
or
Accept: application/t4
Setting the `Accept` header is optional, and if it is not included, the API will return the response in a JSON format.
==== Parameters ====
^ Parameter ^ Description ^
| **exchangeId** | **Required**. Identifier for the exchange. |
| **contractId** | **Required**. Identifier for the contract. |
| **chartType** | **Required**. Type of chart to compute. Currently, only **Bar** type is supported. |
| **barInterval** | **Required**. Interval at which bars are aggregated. Possible values:\\ • **Tick**: Bars aggregated based on trade count.\\ • **TickRange**: Bars aggregated based on price range.\\ • **Volume**: Bars aggregated based on number of contracts traded.\\ • **Second**: Bars aggregated into multiples of seconds.\\ • **Minute**: Bars aggregated into multiples of minutes.\\ • **Hour**: Bars aggregated into multiples of hours.\\ • **Day**: Bars aggregated into multiples of days.\\ • **Week**: Bars aggregated into multiples of weeks. |
| **barPeriod** | **Required**. Period for the bars. |
| **tradeDateStart** | **Required**. Start date for the trade data. |
| **tradeDateEnd** | **Required**. End date for the trade data. |
| marketID | Market ID (optional). Can be omitted when using ContinuationType. |
| continuationType | Method of continuation for the chart. Only **Volume** is currently supported. |
| resetInterval | Interval at which bar computations reset (not applicable when ContinuationType.Volume is used). \\ Defaults to **TradingDay**. Other possible values:\\ • **None**: No reset interval.\\ • **TradingWeek**: Reset on the trading week boundary.\\ • **ExpiryChange**: Reset on an expiry change. |
| contractMonths | Contract months to include (not applicable when **ContinuationType.Volume** is used). |
| rolloverThreshold| Rollover threshold (not applicable when **ContinuationType.Volume** is used). |
| forwardMonths | Forward months (not applicable when **ContinuationType.Volume** is used). |
==== Response ====
The response from the **GetBarChart** API is a JSON object containing detailed information about the bar chart data. Below is the structure of the response along with a description of each element:
=== Bars ===
^ Element ^ Description ^
| tradeDate | Date of the trade. |
| time | Time when the bar data starts. |
| closeTime | Time when the bar data ends. |
| marketID | Identifier for the market. |
| openPrice | Opening price for this bar. |
| highPrice | Highest price in this bar. |
| lowPrice | Lowest price in this bar. |
| closePrice | Closing price for this bar. |
| volume | Total volume of trades in this bar. |
| volumeAtBid | Volume of trades at the bid price. |
| volumeAtOffer | Volume of trades at the offer price. |
| trades | Total number of trades in this bar. |
| tradesAtBid | Number of trades at the bid price. |
| tradesAtOffer | Number of trades at the offer price. |
=== MarketDefinitions ===
^ Element ^ Description ^
| marketID | Identifier for the market. |
| minPriceIncrement | Minimum increment of the market's price. |
| priceCode | Code related to the pricing of the market. |
| tickValue | Value of each tick in the market's pricing. |
| vpt | Additional market-specific information (variable). |
=== ModeChanges ===
^ Element ^ Description ^
| marketID | Identifier for the market. |
| tradeDate | Date of the trade. |
| time | Time when the mode change occurred. |
| marketMode | The mode of the market at the given time. |
=== OpenInterests ===
^ Element ^ Description ^
| marketID | Identifier for the market. |
| tradeDate | Date of the trade. |
| time | Time of the recorded open interest. |
| openInterest | The amount of open interest. |
=== Settlements ===
^ Element ^ Description ^
| marketID | Identifier for the market. |
| tradeDate | Date of the trade. |
| time | Time when the settlement information was recorded. |
| settlementPrice | Price at which the trade was settled. |
| isHeld | Indicates if the settlement was held (boolean). |
==== Example JSON Response ====
{
"tradeDateStart": "2024-01-08T00:00:00",
"tradeDateEnd": "2024-01-08T00:00:00",
"activeMarket": "XCME_Eq ES (H24)",
"bars": [
{
"tradeDate": "2024-01-08T00:00:00",
"time": "2024-01-08T00:00:00",
"closeTime": "2024-01-08T15:59:59.5853624",
"marketID": "XCME_Eq ES (H24)",
"openPrice": "473575",
"highPrice": "480325",
"lowPrice": "471525",
"closePrice": "479800",
"volume": 1339989,
"volumeAtBid": 665050,
"volumeAtOffer": 674939,
"trades": 320624,
"tradesAtBid": 152333,
"tradesAtOffer": 168291
}
],
"marketDefinitions": [
{
"marketID": "XCME_Eq ES (H24)",
"minPriceIncrement": "25",
"priceCode": "",
"tickValue": 12.5,
"vpt": ""
}
],
"modeChanges": [
{
"marketID": "XCME_Eq ES (H24)",
"tradeDate": "2024-01-08T00:00:00",
"time": "2024-01-07T08:04:27.7736882",
"marketMode": 5
},
// ... additional mode changes ...
],
"openInterests": [
{
"marketID": "XCME_Eq ES (H24)",
"tradeDate": "2024-01-08T00:00:00",
"time": "2024-01-07T12:43:16.8256856",
"openInterest": 2211632
},
// ... additional open interests ...
],
"settlements": [
{
"marketID": "XCME_Eq ES (H24)",
"tradeDate": "2024-01-08T00:00:00",
"time": "2024-01-05T16:38:39.9345143",
"settlementPrice": "473475"
},
{
"marketID": "XCME_Eq ES (H24)",
"tradeDate": "2024-01-08T00:00:00",
"time": "2024-01-08T15:01:01.4810068",
"isHeld": true
}
// ... additional settlements ...
]
}
===== Non-Aggregated Chart Data (Trade History) =====
==== Overview ====
The **GetTradeHistory** API retrieves historical trade data for a specified trading instrument within a given date and time range. This API allows for querying trade data based on the trade date or specific start and end timestamps.
==== API Endpoint ====
GET https://api-sim.t4login.com/chart/tradehistory
==== Headers ====
^ Header ^ Value ^ Description ^
| Authorization | Bearer | **Required**. A valid bearer token to authenticate the request. |
| Accept | application/octet-stream, application/t4 | **Optional**. Specifies the content type that the client can handle. Use this header to request a compact binary format response. If omitted, the default response format is JSON. |
==== Parameters ====
^ Parameter ^ Description ^
| exchangeId | **Required**. Identifier for the exchange. |
| contractId | **Required**. Identifier for the contract. |
| marketID | Market ID (optional). |
| tradeDateStart | The start date for the trade history based on trade dates (optional). |
| tradeDateEnd | The end date for the trade history based on trade dates (optional). |
| start | The calendar start date and time for the request in CST (optional). |
| end | The calendar end date and time for the request in CST (optional). |
| since | Filters data to only include trades after the specified date and time (optional). |
**Note:** Pass either **tradeDateStart** and **tradeDateEnd** OR **start** and **end**. Including both will result in an error. Use **since** to further filter data to only include trades after the specified date and time.
=== Response ===
^ Element ^ Description ^
| exchangeID | Identifier for the exchange. |
| contractID | Identifier for the contract. |
| marketID | Identifier for the market. |
| requestStatusMessage| Any status messages or errors related to the request. |
| tradeDateStart | The starting date of the trade data. |
| tradeDateEnd | The ending date of the trade data. |
| trades | An array of trade objects, each detailing individual trades. |
| marketDefinitions | An array of market definition objects, detailing market-specific information. |
| modeChanges | An array of mode change objects, each showing changes in the market mode. |
| openInterests | An array containing information about open interests. |
| settlements | An array detailing settlement information, including prices. |
| vwaPs | An array detailing volume-weighted average prices (VWAP). |
=== Trades ===
^ Element ^ Description ^
| marketID | Identifier for the market. |
| tradeDate | The date of the trade as per trade date convention. |
| time | The specific time when the trade occurred. |
| tradePrice | The price at which the trade was executed. |
| aggressorSide | Indicates the side of the aggressor of the trade. 1 for buyer, -1 for seller. |
=== VWAP(s) ===
^ Element ^ Description ^
| marketID | Identifier for the market. |
| tradeDate | The date of the trade as per trade date convention. |
| time | The specific time when the VWAP is calculated. |
| vwapPrice | The volume-weighted average price for the trades up to the specified time. |
==== Example JSON Response ====
{
"exchangeID": "CME_E",
"contractID": "YM",
"marketID": "XCME_E YM (H24)",
"requestStatusMessage": "",
"tradeDateStart": "2024-01-08T00:00:00",
"tradeDateEnd": "2024-01-08T00:00:00",
"trades": [
{
"marketID": "XCME_E YM (H24)",
"tradeDate": "2024-01-08T00:00:00",
"time": "2024-01-07T17:00:00",
"tradePrice": "37674",
"aggressorSide": 1
},
...
],
"marketDefinitions": [],
"modeChanges": [
...
],
"openInterests": [
...
],
"settlements": [
...
],
"vwaPs": [
...
]
}
The response is structured as a JSON object with various elements containing detailed trade data and related information for the specified contract and exchange within the requested time frame.