Introduction
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
TMX Analytics API offers access to trades, quotes, order book and FX datasets. These analytics-ready datasets span multiple geographical locations including Canada and US. These are RESTful APIs that return JSON-encoded responses and standard HTTP response codes.
API Versioning
APIs will be versioned on a single-digit versioning pattern, for example v1, v2, etc. When a new version for an API is available (say v2), the older version (say v1) will be supported for an year before it is phased out.
Example of changes that lead to version change
- A change in the response type (i.e. changing an integer to a float)
- Change in the name of the response attribute (or column name)
- Removal of a response attribute (or column)
Example of changes that do not lead to version change
- Fixing functional bugs
- Security fixes
- Addition of a new response attribute (or column)
- Addition of new web-hook events
- Changing the order of existing attributes
Current Version is v1
Attribution
Attribution is required for all users. It is as simple as putting “Data provided by TMX Analytics” somewhere on your site or app and linking that text to https://www.tmx.com/analytics. In case of limited screen space, or design constraints, the attribution link can be included in your terms of service using the following hyperlinked text: Data provided by TMX Analytics
Authentication
As part of the user registration process, TMX Analytics will provide user credentials consisting of:
- an API Key - accessible from "API Usage" page on TMX Analytics website
- a password - identifies a registered user
The Help Widget available at the bottom right of the page can be used to request for user credentials.
The password provided by TMX Analytics is temporary and has to be changed before accessing any API.
Steps to change User Password:
- Change Password API is available under Access APIs --> Change Password
- API Key needs to be passed in the header as parameter name: x-api-key
- Request parameters to be passed along are mentioned within Change Password API details
A valid user will be able to generate an API Authorization token using the Authenticate API. This is a 'Bearer' token that must accompany each of the subsequent API requests.
Steps to generate API Authorization Token:
- Authenticate API is available under Access APIs --> Authenticate
- API Key needs to be passed in the header as parameter name: x-api-key
- Request parameters to be passed along are mentioned within Authenticate API details
Format for using the Authorization Token:
Authorization: Bearer
Protecting your API Authorization tokens and passwords:
- The token has a validity of one hour.
- The token should be kept confidential and stored safely. Using this token, an API call can be made, which will impact billing.
- Usage of APIs should be monitored for anomalies. If any unauthorized or abnormal usage is observed, the API Authorization token should be rotated immediately.
- Passwords should not be embedded directly in the code. Instead, they should be added as environment variables or included via files encrypted and stored separately from the bulk of the code - outside the source repository of the application. This will ensure that the passwords will not be inadvertently exposed to unauthorized users even when the code is shared.
- Passwords should be changed periodically.
API Base
Base URL for the API is: https://analyticsapi.tmxanalytics.com
Header Request Parameters
Parameter | Required | Value |
---|---|---|
Content-Type | true | application/json |
Data Schedule
EOD Data for the previous day will be available through the APIs by 6:30am EST the following day. For example, data for trading activity that occurred on January 15, 2020 will be available by 6:30am on January 16, 2020.
In case of MX Analytics API, data will be available by 9:00am EST the following day from Tuesday to Friday. Friday's data will be made available by 9:00am EST the following Monday.
Data Availability API available under Access APIs --> Data Availability can be used to check when the most recent data was loaded for each API.
Data Formats
TMX Analytics APIs return data in JSON format.
Data Sources
Multiple
Query Parameters
- Parameter values are case sensitive. For example, "symbol" : "ABC" is correct and "symbol" : "abc" will not return the expected result
- Parameter values must be comma-delimited within square brackets (array) when requesting multiple. For example, "symbols" : ["ABC","DEF"]
- Parameters passed must be url-encoded. For example, ?symbols=ABC+DEF encoded is ?symbols=ABC%20DEF
Response Attributes
Error Response
{
"message": "string"
}
API response is documented along with each API endpoint. Response attributes are case-sensitive.
TMX Analytics uses HTTP response codes to indicate the success or failure of an API request. Error response will be accompanied with a detailed message within the body. List of error codes along with the messages are explained in section Errors.
Subscription Plans & Limits
The limits are applicable per group per plan.
Group Name | API Description | API Name | Plan | Monthly Call Limit | Symbol Coverage | Lookback Days |
---|---|---|---|---|---|---|
Equity Intraday Trades | One-minute Bars for Trades (Canada) | Trades - 1min CA | Free | 100,000 | 50 | Current-30 |
One-second Bars for Trades (Canada) | Trades - 1sec CA | |||||
One-minute Bars for Trades (US) | Trades - 1min US | |||||
One-second Bars for Trades (US) | Trades - 1sec US | |||||
OHLC (Canada) | OHLC CA | |||||
Equity Intraday Trades | One-minute Bars for Trades (Canada) | Trades - 1min CA | Starter | 500,000 | 100 | Current-30 |
One-second Bars for Trades (Canada) | Trades - 1sec CA | |||||
One-minute Bars for Trades (US) | Trades - 1min US | |||||
One-second Bars for Trades (US) | Trades - 1sec US | |||||
OHLC (Canada) | OHLC CA | |||||
Equity Intraday Trades | One-minute Bars for Trades (Canada) | Trades - 1min CA | Premium | 2,000,000 | ALL | Previous 3 year History |
One-second Bars for Trades (Canada) | Trades - 1sec CA | |||||
One-minute Bars for Trades (US) | Trades - 1min US | |||||
One-second Bars for Trades (US) | Trades - 1sec US | |||||
OHLC (Canada) | OHLC CA | |||||
Equity Intraday Quotes | One-minute Bars for Quotes (Canada) | Quotes - 1min CA | Starter | 500,000 | 100 | Current-30 |
One-second Bars for Quotes (Canada) | Quotes - 1min US | |||||
One-minute Bars for Quotes (US) | Quotes - 1sec US | |||||
One-second Bars for Quotes (US) | Quotes - 1sec US | |||||
Equity Intraday Quotes | One-minute Bars for Quotes (Canada) | Quotes - 1min CA | Premium | 2,000,000 | ALL | Previous 3 year History |
One-second Bars for Quotes (Canada) | Quotes - 1sec CA | |||||
One-minute Bars for Quotes (US) | Quotes - 1sec US | |||||
One-second Bars for Quotes (US) | Quotes - 1sec CA | |||||
Trades & Quotes Tick Data | Premium Trades and Quotes CBBO (Canada) | TAQ NBBO CA | Premium | 5,000 | ALL | Current-30 |
Premium Trades and Quotes CBBO (US) | TAQ NBBO US | |||||
Essential Analytics for Options & Futures | MX Daily Stats | MX Daily Stats CA | Premium | 100,000 | ALL | Previous 3 year History |
Corporate Actions & Reference Data | Issuers CA | Issuers CA | Premium | 100,000 | ALL | Previous 3 year History |
Global Symbols | Global Symbols | |||||
Global Symbols Delta | Global Symbols Delta | |||||
Essential Analytics for Equities | Advanced Daily Stats (Canada) | Advanced Daily Stats CA | Premium | 100,000 | ALL | Previous 3 year History |
Liquidity Analytics (Canada) | Liquidity Analytics (CA) | |||||
Basic Daily Stats (Canada) | Basic Daily Stats CA | |||||
Daily Stats (Canada) | Daily Stats CA | |||||
TSX Daily Stats (Canada) | TSX Daily Stats CA | |||||
Advanced Daily Stats (US) | Advanced Daily Stats US | |||||
Daily Stats (US) | Daily Stats US | |||||
Basic Daily Stats (US) | Basic Daily Stats US | |||||
Broker Analytics | Broker Liquidity(Canada) | Broker Liquidity CA | Premium | 100,000 | ALL | Previous 3 year History |
Broker Daily Stats(Canada) | Broker Daily Stats CA | |||||
Broker Summary(Canada) | Broker Summary CA | |||||
Investor Analytics | Investor Flows (Canada) | Investor Flows CA | Premium | 100,000 | ALL | Previous 3 year History |
Overage charge will be attributable once monthly call limits per plan are exhausted. Notification will be sent on exhaustion of 50%, 75% and 100% monthly call limit. API does not throw any error in such a scenario.
Symbol List
Some of the subscription plans provide a limited number of symbols that can be accessed by the APIs. The list underneath details the symbols included in the Free as well as Starter Plans for Canada and US.
Canada
Ticker | Free Plan | Starter Plan |
---|---|---|
ABX | ✔ | ✔ |
AC | ✔ | ✔ |
ACB | ✔ | ✔ |
AEM | ✔ | ✔ |
ALA | ✘ | ✔ |
APHA | ✔ | ✔ |
AQN | ✘ | ✔ |
ARX | ✘ | ✔ |
ATD.B | ✔ | ✔ |
BAM.A | ✔ | ✔ |
BBD.B | ✘ | ✔ |
BCE | ✔ | ✔ |
BHC | ✘ | ✔ |
BIP.UN | ✘ | ✔ |
BMO | ✔ | ✔ |
BNS | ✔ | ✔ |
BPY.UN | ✘ | ✔ |
BTO | ✘ | ✔ |
CAE | ✘ | ✔ |
CAR.UN | ✘ | ✔ |
CCL.B | ✘ | ✔ |
CCO | ✘ | ✔ |
CM | ✔ | ✔ |
CNQ | ✔ | ✔ |
CNR | ✔ | ✔ |
CP | ✔ | ✔ |
CPG | ✘ | ✔ |
CRON | ✘ | ✔ |
CSU | ✔ | ✔ |
CTC.A | ✔ | ✔ |
CVE | ✔ | ✔ |
DGC | ✘ | ✔ |
DOL | ✔ | ✔ |
ECA | ✔ | ✔ |
EMA | ✔ | ✔ |
EMP.A | ✘ | ✔ |
ENB | ✔ | ✔ |
FFH | ✘ | ✔ |
FM | ✔ | ✔ |
FNV | ✔ | ✔ |
FTS | ✔ | ✔ |
G | ✘ | ✔ |
GIB.A | ✔ | ✔ |
GIL | ✘ | ✔ |
GOOS | ✘ | ✔ |
GWO | ✘ | ✔ |
H | ✘ | ✔ |
HEXO | ✘ | ✔ |
HOD | ✘ | ✔ |
HOU | ✘ | ✔ |
HSE | ✘ | ✔ |
HXT | ✘ | ✔ |
IFC | ✔ | ✔ |
IMO | ✘ | ✔ |
IPL | ✔ | ✔ |
K | ✘ | ✔ |
KEY | ✘ | ✔ |
KL | ✔ | ✔ |
L | ✔ | ✔ |
LUN | ✘ | ✔ |
MEG | ✘ | ✔ |
MFC | ✔ | ✔ |
MG | ✔ | ✔ |
MRU | ✘ | ✔ |
NA | ✔ | ✔ |
NTR | ✔ | ✔ |
OTEX | ✘ | ✔ |
PKI | ✘ | ✔ |
POW | ✔ | ✔ |
PPL | ✔ | ✔ |
PSA | ✘ | ✔ |
PWF | ✘ | ✔ |
QBR.B | ✘ | ✔ |
QSR | ✔ | ✔ |
RCI.B | ✔ | ✔ |
REI.UN | ✘ | ✔ |
RY | ✔ | ✔ |
SAP | ✘ | ✔ |
SHOP | ✔ | ✔ |
SJR.B | ✘ | ✔ |
SLF | ✔ | ✔ |
SNC | ✘ | ✔ |
SU | ✔ | ✔ |
T | ✔ | ✔ |
TD | ✔ | ✔ |
TECK.B | ✔ | ✔ |
TRI | ✔ | ✔ |
TRP | ✔ | ✔ |
VET | ✘ | ✔ |
WCN | ✔ | ✔ |
WEED | ✔ | ✔ |
WFT | ✘ | ✔ |
WJA | ✘ | ✔ |
WN | ✘ | ✔ |
WPM | ✔ | ✔ |
XIC | ✘ | ✔ |
XIU | ✔ | ✔ |
XSP | ✘ | ✔ |
ZEB | ✘ | ✔ |
ZSP | ✘ | ✔ |
US
Ticker | Free Plan | Starter Plan |
---|---|---|
AAPL | ✔ | ✔ |
ABBV | ✘ | ✔ |
ADBE | ✘ | ✔ |
AGG | ✘ | ✔ |
AGN | ✘ | ✔ |
AMD | ✔ | ✔ |
AMGN | ✘ | ✔ |
AMZN | ✔ | ✔ |
AVGO | ✘ | ✔ |
BA | ✔ | ✔ |
BABA | ✔ | ✔ |
BAC | ✔ | ✔ |
BKNG | ✘ | ✔ |
BMY | ✘ | ✔ |
BRK/B | ✘ | ✔ |
C | ✔ | ✔ |
CAT | ✘ | ✔ |
CELG | ✘ | ✔ |
CMCSA | ✘ | ✔ |
CRM | ✘ | ✔ |
CSCO | ✔ | ✔ |
CVS | ✘ | ✔ |
CVX | ✘ | ✔ |
DHR | ✘ | ✔ |
DIA | ✘ | ✔ |
DIS | ✔ | ✔ |
EEM | ✔ | ✔ |
EFA | ✔ | ✔ |
EWZ | ✔ | ✔ |
FB | ✔ | ✔ |
FXI | ✔ | ✔ |
GDX | ✔ | ✔ |
GDXJ | ✔ | ✔ |
GE | ✘ | ✔ |
GLD | ✔ | ✔ |
GOOG | ✔ | ✔ |
GOOGL | ✔ | ✔ |
GS | ✘ | ✔ |
HD | ✔ | ✔ |
HYG | ✔ | ✔ |
IBM | ✘ | ✔ |
IEMG | ✘ | ✔ |
INTC | ✔ | ✔ |
IVV | ✔ | ✔ |
IWM | ✔ | ✔ |
IYR | ✘ | ✔ |
JNJ | ✔ | ✔ |
JNK | ✘ | ✔ |
JPM | ✔ | ✔ |
KO | ✘ | ✔ |
LLY | ✘ | ✔ |
LQD | ✔ | ✔ |
MA | ✔ | ✔ |
MCD | ✘ | ✔ |
MDT | ✘ | ✔ |
MMM | ✘ | ✔ |
MRK | ✘ | ✔ |
MSFT | ✔ | ✔ |
MU | ✔ | ✔ |
NFLX | ✔ | ✔ |
NKE | ✘ | ✔ |
NOW | ✘ | ✔ |
NVDA | ✔ | ✔ |
ORCL | ✘ | ✔ |
PEP | ✘ | ✔ |
PFE | ✔ | ✔ |
PG | ✔ | ✔ |
PYPL | ✘ | ✔ |
QCOM | ✔ | ✔ |
QQQ | ✔ | ✔ |
ROKU | ✔ | ✔ |
SBUX | ✘ | ✔ |
SHOP | ✘ | ✔ |
SMH | ✘ | ✔ |
SPY | ✔ | ✔ |
SQ | ✘ | ✔ |
T | ✔ | ✔ |
TLT | ✔ | ✔ |
TQQQ | ✔ | ✔ |
TSLA | ✔ | ✔ |
TWTR | ✘ | ✔ |
TXN | ✘ | ✔ |
UNH | ✔ | ✔ |
UNP | ✘ | ✔ |
V | ✔ | ✔ |
VOO | ✘ | ✔ |
VWO | ✘ | ✔ |
VXX | ✘ | ✔ |
VZ | ✘ | ✔ |
WFC | ✔ | ✔ |
WMT | ✘ | ✔ |
XLE | ✘ | ✔ |
XLF | ✔ | ✔ |
XLI | ✘ | ✔ |
XLK | ✔ | ✔ |
XLP | ✘ | ✔ |
XLU | ✔ | ✔ |
XLV | ✔ | ✔ |
XOM | ✔ | ✔ |
XOP | ✘ | ✔ |
Billing
Clients will receive a monthly bill and invoice statement at the end of the month. For example, Invoice for API usage in September will be made available on November 1.
Google Sheets Add-on
Subscribe to API
Sign up at hub.tmxanalytics.com/signup and subscribe to TMX Grapevine API
Install API to Sheets
Select Extensions tab > Add-ons > Get add-ons
Search “API to Sheets”
Click “Install”
Setup API from Google Sheets
Once installed, select the Extensions tab > API to Sheets > Create New API Request
Add in the following details to configure your API request:
Select POST method
Enter our API URL Path https://analyticsapi.tmxanalytics.com/v1/ followed by the geography (/ca for Canada, /us for US), and specific table name you would like to access.
In the body section, enter any optional parameters to define your request. Note that our API allows for a start date, end date, specific symbols or ALL_SYMBOLS
In the Request Headers section, enter “bearer” followed by your Authentication Token. This is found when you login to hub.tmxanalytics.com > API Usage tab > Authentication Token > enter the same password you used to login to refresh your token > submit this token expires after 1 hour and must be refreshed each time you use the API
Your x-api-key can also be found on the same location. this key remains fixed for each client
Select offset for Pagination Type and pageafter name
Select the sheet you would like to display the output in, or select Set Current
Select Save. Your API Request will be saved and can be accessed at a later date
Help and More Information
Note at any time you can refer to our TMX Grapevine API documentation website at https://docs.tmxanalytics.com for further details on the API design, sample code snippets, and Error Codes.
If you experience any issues, please contact TMX Support for assistance. You can also use the help icon in the bottom right corner to email our support team directly from hub.tmxanalytics.com.
Default
options__v1_apiautomation
Code samples
require 'rest-client'
require 'json'
result = RestClient.options 'https://analyticsapi.tmxanalytics.com/v1/apiautomation',
params: {
}
p JSON.parse(result)
import requests
r = requests.options('https://analyticsapi.tmxanalytics.com/v1/apiautomation')
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/apiautomation");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("OPTIONS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X OPTIONS https://analyticsapi.tmxanalytics.com/v1/apiautomation
fetch('https://analyticsapi.tmxanalytics.com/v1/apiautomation',
{
method: 'OPTIONS'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
OPTIONS https://analyticsapi.tmxanalytics.com/v1/apiautomation HTTP/1.1
Host: analyticsapi.tmxanalytics.com
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("OPTIONS", "https://analyticsapi.tmxanalytics.com/v1/apiautomation", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
OPTIONS /v1/apiautomation
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
post__v1_apiautomation
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/apiautomation',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/apiautomation', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/apiautomation");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/apiautomation \
-H 'Content-Type: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"billingTag": "string",
"columnDesc": {},
"countryCode": "us",
"docDescription": "string",
"endPoint": "string",
"formatFields": {},
"fromBranch": "string",
"licensedFields": [
"string"
],
"orderByFields": {
"asc": [
"string"
],
"desc": [
"string"
]
},
"pageLimit": 0,
"productName": "string",
"requestParams": {
"column": "string",
"condition": "gt",
"description": "string",
"pattern": "string",
"required": true,
"type": "string"
},
"requestResponseDescription": "string",
"requestResponsePrefix": "string",
"requestResponseTitle": "string",
"sfConfig": {
"database": "string",
"schema": "string",
"warehouse": "string"
},
"subProductName": "string",
"tableName": "string"
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/apiautomation',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/apiautomation HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/apiautomation", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/apiautomation
Body parameter
{
"billingTag": "string",
"columnDesc": {},
"countryCode": "us",
"docDescription": "string",
"endPoint": "string",
"formatFields": {},
"fromBranch": "string",
"licensedFields": [
"string"
],
"orderByFields": {
"asc": [
"string"
],
"desc": [
"string"
]
},
"pageLimit": 0,
"productName": "string",
"requestParams": {
"column": "string",
"condition": "gt",
"description": "string",
"pattern": "string",
"required": true,
"type": "string"
},
"requestResponseDescription": "string",
"requestResponsePrefix": "string",
"requestResponseTitle": "string",
"sfConfig": {
"database": "string",
"schema": "string",
"warehouse": "string"
},
"subProductName": "string",
"tableName": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | apiAutomationRequestModel | true | none |
billingTag | body | string | false | Specifies the billing tag to be mapped for the data API |
columnDesc | body | object | false | Specifies the description for each attribute in the response model, It will be displayed in the response schema for each field. Its an object with one or more key value pair |
countryCode | body | string | false | Country code |
docDescription | body | string | true | Specifies the description for the data api, This will be displayed in the documentation website |
endPoint | body | string | true | Data API will be exposed with this end point for the given table name |
formatFields | body | object | false | Specifies the format to be applied on the column while fetching from the snowflake database. Its an object, It can have one or more key value pair |
fromBranch | body | string | true | Specifies the branch to be used to cut the new branch, Default is prod branch |
licensedFields | body | [string] | false | Specifies which column in the table to be allowed only for the licensed users, Its array of values |
orderByFields | body | object | false | Specifies the columns to be used to sort the response |
» asc | body | [string] | false | none |
» desc | body | [string] | false | none |
pageLimit | body | integer | false | Specifies the number of results returned in the data api response(Default 1000) |
productName | body | string | true | This is used in the billing authorizer to validate the subscription of the user while accessing the data api, Also Folders will be created with this name, all the sub products services will be placed under this folder. Folder name might not be same as product name if space or any special characters provided. |
requestParams | body | object | false | Specifies the attribute/request parameter to be used in the request models, These attributes actually define the request params for the data api we are creating with automation script. It's an Object. |
» column | body | string | false | Specifies which column in the table to be used to filter the record.This will be used to write the query condition in the lambda file.User input for this “Key” on the data api will be filtered with this column while querying the table |
» condition | body | string | false | Specifies which operators to be used in the query filter on the table column with the user input. |
» description | body | string | false | Specifies the be used in the request model for the property |
» pattern | body | string | false | Specifies the regex pattern to be used in the request model to validate the user input by the API gateway |
» required | body | boolean | false | Specifies fields to be marked as mandatory or optional in the request model. |
» type | body | string | false | Specifies data type for the user input |
requestResponseDescription | body | string | true | Provides the descriptions for the request and response model |
requestResponsePrefix | body | string | false | Request and Response model file will created with this name, if not provided it will use the “subProduct Name+Country Code” for the file name |
requestResponseTitle | body | string | true | Provides the value for the title attribute for the request and response model. |
sfConfig | body | object | false | Specifies the schema, warehouse and database details |
» database | body | string | false | none |
» schema | body | string | false | none |
» warehouse | body | string | false | none |
subProductName | body | string | true | This name will be used with combination of country code to create the lambda function and cloudformation stack and service folder |
tableName | body | string | true | Specifies the table name, Data API will fetch the record from this table and return the response |
Enumerated Values
Parameter | Value |
---|---|
countryCode | us |
countryCode | ca |
» condition | gt |
» condition | gte |
» condition | lt |
» condition | lte |
» condition | eq |
» type | string |
» type | integer |
» type | boolean |
» type | array |
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
422 | Unprocessable Entity | 422 response | None |
500 | Internal Server Error | 500 response | None |
options__v1_ca_investorflows
Code samples
require 'rest-client'
require 'json'
result = RestClient.options 'https://analyticsapi.tmxanalytics.com/v1/ca/investorflows',
params: {
}
p JSON.parse(result)
import requests
r = requests.options('https://analyticsapi.tmxanalytics.com/v1/ca/investorflows')
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/investorflows");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("OPTIONS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X OPTIONS https://analyticsapi.tmxanalytics.com/v1/ca/investorflows
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/investorflows',
{
method: 'OPTIONS'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
OPTIONS https://analyticsapi.tmxanalytics.com/v1/ca/investorflows HTTP/1.1
Host: analyticsapi.tmxanalytics.com
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("OPTIONS", "https://analyticsapi.tmxanalytics.com/v1/ca/investorflows", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
OPTIONS /v1/ca/investorflows
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
post__v1_ca_investorflows
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/investorflows',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/investorflows', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/investorflows");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/investorflows \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/investorflows',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/investorflows HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/investorflows", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/investorflows
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | investorFlowsCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | cusip |
columns | sedol |
columns | isin |
columns | total_trade_count |
columns | active_buy_trade_count_retail |
columns | active_sell_trade_count_retail |
columns | passive_buy_trade_count_retail |
columns | passive_sell_trade_count_retail |
columns | active_buy_trade_count_nonretail |
columns | active_sell_trade_count_nonretail |
columns | passive_buy_trade_count_nonretail |
columns | passive_sell_trade_count_nonretail |
columns | total_participant_count |
columns | active_buy_participant_count_retail |
columns | active_sell_participant_count_retail |
columns | passive_buy_participant_count_retail |
columns | passive_sell_participant_count_retail |
columns | active_buy_participant_count_nonretail |
columns | active_sell_participant_count_nonretail |
columns | passive_buy_participant_count_nonretail |
columns | passive_sell_participant_count_nonretail |
columns | total_shr_volume |
columns | active_buy_shr_volume_retail |
columns | active_sell_shr_volume_retail |
columns | passive_buy_shr_volume_retail |
columns | passive_sell_shr_volume_retail |
columns | net_shr_volume_retail |
columns | active_buy_shr_volume_nonretail |
columns | active_sell_shr_volume_nonretail |
columns | passive_buy_shr_volume_nonretail |
columns | passive_sell_shr_volume_nonretail |
columns | net_shr_volume_nonretail |
columns | total_value_volume |
columns | active_buy_value_volume_retail |
columns | active_sell_value_volume_retail |
columns | passive_buy_value_volume_retail |
columns | passive_sell_value_volume_retail |
columns | net_value_volume_retail |
columns | active_buy_value_volume_nonretail |
columns | active_sell_value_volume_nonretail |
columns | passive_buy_value_volume_nonretail |
columns | passive_sell_value_volume_nonretail |
columns | net_value_volume_nonretail |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"active_buy_participant_count_nonretail": 0,
"active_buy_participant_count_retail": 0,
"active_buy_shr_volume_nonretail": 0,
"active_buy_shr_volume_retail": 0,
"active_buy_trade_count_nonretail": 0,
"active_buy_trade_count_retail": 0,
"active_buy_value_volume_nonretail": 0,
"active_buy_value_volume_retail": 0,
"active_sell_participant_count_nonretail": 0,
"active_sell_participant_count_retail": 0,
"active_sell_shr_volume_nonretail": 0,
"active_sell_shr_volume_retail": 0,
"active_sell_trade_count_nonretail": 0,
"active_sell_trade_count_retail": 0,
"active_sell_value_volume_nonretail": 0,
"active_sell_value_volume_retail": 0,
"cusip": "string",
"date_string": "string",
"isin": "string",
"net_shr_volume_nonretail": 0,
"net_shr_volume_retail": 0,
"net_value_volume_nonretail": 0,
"net_value_volume_retail": 0,
"passive_buy_participant_count_nonretail": 0,
"passive_buy_participant_count_retail": 0,
"passive_buy_shr_volume_nonretail": 0,
"passive_buy_shr_volume_retail": 0,
"passive_buy_trade_count_nonretail": 0,
"passive_buy_trade_count_retail": 0,
"passive_buy_value_volume_nonretail": 0,
"passive_buy_value_volume_retail": 0,
"passive_sell_participant_count_nonretail": 0,
"passive_sell_participant_count_retail": 0,
"passive_sell_shr_volume_nonretail": 0,
"passive_sell_shr_volume_retail": 0,
"passive_sell_trade_count_nonretail": 0,
"passive_sell_trade_count_retail": 0,
"passive_sell_value_volume_nonretail": 0,
"passive_sell_value_volume_retail": 0,
"sedol": "string",
"symbol": "string",
"total_participant_count": 0,
"total_shr_volume": 0,
"total_trade_count": 0,
"total_value_volume": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | investorFlowsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
options__v1_userscleanup
Code samples
require 'rest-client'
require 'json'
result = RestClient.options 'https://analyticsapi.tmxanalytics.com/v1/userscleanup',
params: {
}
p JSON.parse(result)
import requests
r = requests.options('https://analyticsapi.tmxanalytics.com/v1/userscleanup')
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/userscleanup");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("OPTIONS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X OPTIONS https://analyticsapi.tmxanalytics.com/v1/userscleanup
fetch('https://analyticsapi.tmxanalytics.com/v1/userscleanup',
{
method: 'OPTIONS'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
OPTIONS https://analyticsapi.tmxanalytics.com/v1/userscleanup HTTP/1.1
Host: analyticsapi.tmxanalytics.com
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("OPTIONS", "https://analyticsapi.tmxanalytics.com/v1/userscleanup", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
OPTIONS /v1/userscleanup
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
post__v1_userscleanup
Code samples
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/userscleanup',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/userscleanup', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/userscleanup");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/userscleanup \
-H 'Authorization: API_KEY'
const headers = {
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/userscleanup',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/userscleanup HTTP/1.1
Host: analyticsapi.tmxanalytics.com
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/userscleanup", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/userscleanup
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
409 | Conflict | 409 response | None |
500 | Internal Server Error | 500 response | None |
Access APIs
Authenticate
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'x-api-key' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/authn',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'x-api-key': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/authn', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/authn");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/authn \
-H 'Content-Type: application/json' \
-H 'x-api-key: API_KEY'
const inputBody = '{
"email": "string",
"password": "string"
}';
const headers = {
'Content-Type':'application/json',
'x-api-key':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/authn',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/authn HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"x-api-key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/authn", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/authn
Allows users to generate the API Authorization token by passing valid user credentials
Body parameter
{
"email": "string",
"password": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | authenticateRequestv1 | true | none |
body | string | true | User email as registered with TMX Analytics | |
password | body | string | true | User password |
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
424 | Failed Dependency | 424 response | None |
500 | Internal Server Error | 500 response | None |
Change Password
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'x-api-key' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/changepassword',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'x-api-key': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/changepassword', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/changepassword");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/changepassword \
-H 'Content-Type: application/json' \
-H 'x-api-key: API_KEY'
const inputBody = '{
"confirmPassword": "string",
"email": "string",
"newPassword": "string",
"oldPassword": "string"
}';
const headers = {
'Content-Type':'application/json',
'x-api-key':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/changepassword',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/changepassword HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"x-api-key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/changepassword", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/changepassword
Allows users to change the password
Body parameter
{
"confirmPassword": "string",
"email": "string",
"newPassword": "string",
"oldPassword": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | changePasswordRequestv1 | true | none |
confirmPassword | body | string | true | Re-enter new password |
body | string | true | User Email Id | |
newPassword | body | string | true | New password must be at least 8 characters in length or longer and must contain 1 lowercase alphabetical character, 1 uppercase alphabetical character, 1 numeric character, one special character |
oldPassword | body | string | true | Old password |
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
424 | Failed Dependency | 424 response | None |
500 | Internal Server Error | 500 response | None |
Data Availability
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'x-api-key' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/dataavailability',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'x-api-key': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/dataavailability', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/dataavailability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/dataavailability \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'x-api-key: API_KEY'
const inputBody = '{
"apiName": [
"OHLC CA"
],
"pageafter": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'x-api-key':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/dataavailability',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/dataavailability HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"x-api-key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/dataavailability", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/dataavailability
Provides the most recent business date for which data is available within each API
Body parameter
{
"apiName": [
"OHLC CA"
],
"pageafter": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | dataavailabilityCaRequestv1 | true | none |
apiName | body | [string] | true | Name of specific API or "all" |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
Enumerated Values
Parameter | Value |
---|---|
apiName | OHLC CA |
apiName | Broker Liquidity CA |
apiName | Trades - 1min CA |
apiName | Trades - 1sec CA |
apiName | Trades - 1min US |
apiName | Investor Flows CA |
apiName | Quotes - 1min CA |
apiName | Quotes - 1sec CA |
apiName | Quotes - 1min US |
apiName | Quotes - 1sec US |
apiName | TAQ NBBO CA |
apiName | TAQ NBBO US |
apiName | Advanced Daily Stats CA |
apiName | Advanced Daily Stats US |
apiName | Basic Daily Stats CA |
apiName | Basic Daily Stats US |
apiName | Daily Stats CA |
apiName | Daily Stats US |
apiName | Global Symbols |
apiName | Global Symbols Delta |
apiName | Issuers |
apiName | MX Daily Stats |
apiName | Liquidity Analytics CA |
apiName | TSX/V Daily Stats |
apiName | Broker Summary CA |
apiName | all |
Example responses
200 Response
{
"data": [
{
"apiName": "string",
"lastLoadDate": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | dataavailabilityCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Forgot Password
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'x-api-key' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/forgotpassword',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'x-api-key': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/forgotpassword', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/forgotpassword");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/forgotpassword \
-H 'Content-Type: application/json' \
-H 'x-api-key: API_KEY'
const inputBody = '{
"email": "string"
}';
const headers = {
'Content-Type':'application/json',
'x-api-key':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/forgotpassword',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/forgotpassword HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"x-api-key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/forgotpassword", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/forgotpassword
Sends a reset password email to the user
Body parameter
{
"email": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | forgotPasswordRequestv1 | true | none |
body | string | true | Email for forgot password |
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Revoke Token
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'x-api-key' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/revoke',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'x-api-key': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/revoke', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/revoke");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/revoke \
-H 'Content-Type: application/json' \
-H 'x-api-key: API_KEY'
const inputBody = '{
"token": "string",
"type": "string"
}';
const headers = {
'Content-Type':'application/json',
'x-api-key':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/revoke',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/revoke HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"x-api-key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/revoke", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/revoke
Revokes the token for the user
Body parameter
{
"token": "string",
"type": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | revokeRequestv1 | true | none |
token | body | string | true | access_token or refresh_token value that needs to be revoked |
type | body | string | true | access_token or refresh_token |
Example responses
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | None |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Essential Analytics for Equities
Advanced Daily Stats CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/advanceddailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/advanceddailystats
Contains advanced daily statistics such as seconday close price, avgerage top of the book bid/ask volume, quoted spreads, effective spreads and trading volumes/count/value metrics across Canadian and US venues. Metrics pertaining to Canada - Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well.
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | advanceddailystatsCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | us_symbol |
columns | secondaryclose |
columns | avgbidvol |
columns | avgaskvol |
columns | avg_sprd_cent |
columns | avg_sprd_bps |
columns | effective_sprd_cent |
columns | effective_sprd_bps |
columns | trade_count_ca |
columns | daily_volume_ca |
columns | daily_trading_value_ca |
columns | trade_count_us |
columns | daily_volume_us |
columns | daily_trading_value_us |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"avg_sprd_bps": 0,
"avg_sprd_cent": 0,
"avgaskvol": 0,
"avgbidvol": 0,
"daily_trading_value_ca": 0,
"daily_trading_value_us": 0,
"daily_volume_ca": 0,
"daily_volume_us": 0,
"date_string": "string",
"effective_sprd_bps": 0,
"effective_sprd_cent": 0,
"secondaryclose": 0,
"symbol": "string",
"trade_count_ca": 0,
"trade_count_us": 0,
"us_symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | advanceddailystatsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Basic Daily Stats CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystatsall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/basicdailystatsall
Contains essential daily statistics such as open, high, low, close, trade count aggregations, trade volume aggregations, trade value aggregations, vwap, volatility metrics, shares outstanding and market capitalization. Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well.
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | basicdailystatsallCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | first_observed_price |
columns | intraday_high |
columns | intraday_low |
columns | last_observed_price |
columns | london_4pm_price |
columns | total_trade_count |
columns | total_daily_volume |
columns | total_daily_value |
columns | total_primary_exchange_volume |
columns | avg_30day_trade_count |
columns | avg_30day_daily_volume |
columns | avg_30day_daily_value |
columns | twap_30day |
columns | twap_60day |
columns | volatility30_pct |
columns | volatility60_pct |
columns | shares_outstanding |
columns | mkt_cap |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"avg_30day_daily_value": 0,
"avg_30day_daily_volume": 0,
"avg_30day_trade_count": 0,
"date_string": "string",
"first_observed_price": 0,
"intraday_high": 0,
"intraday_low": 0,
"last_observed_price": 0,
"london_4pm_price": 0,
"mkt_cap": 0,
"shares_outstanding": 0,
"symbol": "string",
"total_daily_value": 0,
"total_daily_volume": 0,
"total_primary_exchange_volume": 0,
"total_trade_count": 0,
"twap_30day": 0,
"twap_60day": 0,
"volatility30_pct": 0,
"volatility60_pct": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | basicdailystatsallCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Daily Stats CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/dailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/dailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/dailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/dailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/dailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/dailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/dailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/dailystats
Contains daily statistics such as open, high, low, close, total volume, volume_moo, volume_moc, volume_dark, vwap, volatility30_pct, volatility60_pct.Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well.
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | dailystatsCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | volume_block |
columns | volume_moo |
columns | volume_moc |
columns | volume_odd_lot |
columns | volume_dark |
columns | total_adjvolume |
columns | total_adjvalue |
columns | total_adjcount |
columns | intraday_high |
columns | intraday_low |
columns | first_observed_price |
columns | fop_venue |
columns | fop_time_eastern |
columns | last_observed_price |
columns | lop_venue |
columns | lop_time_eastern |
columns | avg_advolume30 |
columns | vwap30 |
columns | vwap60 |
columns | intraday_volatility_pct |
columns | volume_cross |
columns | volume_pre_market |
columns | volume_post_market |
columns | total_trade_count |
columns | total_daily_volume |
columns | total_daily_value |
columns | total_primary_exchange_volume |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"avg_advolume30": 0,
"date_string": "string",
"first_observed_price": 0,
"fop_time_eastern": "string",
"fop_venue": "string",
"intraday_high": 0,
"intraday_low": 0,
"intraday_volatility_pct": 0,
"last_observed_price": 0,
"lop_time_eastern": "string",
"lop_venue": "string",
"symbol": "string",
"total_adjcount": 0,
"total_adjvalue": 0,
"total_adjvolume": 0,
"total_daily_value": 0,
"total_daily_volume": 0,
"total_primary_exchange_volume": 0,
"total_trade_count": 0,
"volume_block": 0,
"volume_cross": 0,
"volume_dark": 0,
"volume_moc": 0,
"volume_moo": 0,
"volume_odd_lot": 0,
"volume_post_market": 0,
"volume_pre_market": 0,
"vwap30": 0,
"vwap60": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | dailystatsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Liquidity Analytics CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/liquidityanalytics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/liquidityanalytics
Provides a market-wide view of the total displayed (onbook) liquidity available by symbol each day at multiple price levels beyond the top of book. The dataset aggregates the consolidated market-wide orderbook to build these calculations and is meant to provide a robust input into assessing market-wide quoted liquidity and determining an appropriate order/trade execution strategy. It can also be used to help detect when material changes occurr to a symbol's liquidity profile
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | liquidityanalyticsCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | venue |
columns | pct_time_bid_10b_deep |
columns | bidsize10b_impact |
columns | bidvalue10b_impact |
columns | pct_time_bid_25b_deep |
columns | bidsize25b_impact |
columns | bidvalue25b_impact |
columns | pct_time_ask_10b_deep |
columns | asksize10b_impact |
columns | askvalue10b_impact |
columns | pct_time_ask_25b_deep |
columns | asksize25b_impact |
columns | askvalue25b_impact |
columns | pct_time_bidask_25k_deep |
columns | sprd_25k_bps |
columns | pct_time_bidask_50k_deep |
columns | sprd_50k_bps |
columns | pct_time_bidask_100k_deep |
columns | sprd_100k_bps |
columns | pct_time_bidask_200k_deep |
columns | sprd_200k_bps |
columns | pct_time_bidask_500k_deep |
columns | sprd_500k_bps |
columns | pct_time_bidask_1m_deep |
columns | sprd_1m_bps |
columns | time_wgt_bidvalue10b_impact_component_score |
columns | time_wgt_bidvalue25b_impact_component_score |
columns | time_wgt_askvalue10b_impact_component_score |
columns | time_wgt_askvalue25b_impact_component_score |
columns | time_wgt_sprd_25k_bps_component_score |
columns | time_wgt_sprd_50k_bps_component_score |
columns | time_wgt_sprd_100k_bps_component_score |
columns | time_wgt_sprd_200k_bps_component_score |
columns | time_wgt_sprd_500k_bps_component_score |
columns | time_wgt_sprd_1m_bps_component_score |
columns | liquidity_score |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"asksize10b_impact": 0,
"asksize25b_impact": 0,
"askvalue10b_impact": 0,
"askvalue25b_impact": 0,
"bidsize10b_impact": 0,
"bidsize25b_impact": 0,
"bidvalue10b_impact": 0,
"bidvalue25b_impact": 0,
"date_string": "string",
"liquidity_score": 0,
"pct_time_ask_10b_deep": 0,
"pct_time_ask_25b_deep": 0,
"pct_time_bid_10b_deep": 0,
"pct_time_bid_25b_deep": 0,
"pct_time_bidask_100k_deep": 0,
"pct_time_bidask_1m_deep": 0,
"pct_time_bidask_200k_deep": 0,
"pct_time_bidask_25k_deep": 0,
"pct_time_bidask_500k_deep": 0,
"pct_time_bidask_50k_deep": 0,
"sprd_100k_bps": 0,
"sprd_1m_bps": 0,
"sprd_200k_bps": 0,
"sprd_25k_bps": 0,
"sprd_500k_bps": 0,
"sprd_50k_bps": 0,
"symbol": "string",
"time_wgt_askvalue10b_impact_component_score": 0,
"time_wgt_askvalue25b_impact_component_score": 0,
"time_wgt_bidvalue10b_impact_component_score": 0,
"time_wgt_bidvalue25b_impact_component_score": 0,
"time_wgt_sprd_100k_bps_component_score": 0,
"time_wgt_sprd_1m_bps_component_score": 0,
"time_wgt_sprd_200k_bps_component_score": 0,
"time_wgt_sprd_25k_bps_component_score": 0,
"time_wgt_sprd_500k_bps_component_score": 0,
"time_wgt_sprd_50k_bps_component_score": 0,
"venue": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | liquidityanalyticsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Liquidity Summary CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"date_string"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/liquiditysummary", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/liquiditysummary
Contains pre-calculated spread with the following specifications: 1) Metrics are calculated using the consolidated order book from all Canadian venues 2) The bid/ask is calculated as the volume weighted average price that would be realized assuming the execution of a $50,000 marketable sell/buy order 3) The effective spread is calculated at each one-second interval between 9:45 - 15:45 ET 4) The reported average bid-ask spread is computed by taking the time-weighted average of all one second effective spreads for each day. Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well.
Body parameter
{
"columns": [
"date_string"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | liquiditySummaryCaRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | date_string |
columns | symbol |
columns | spread |
Example responses
200 Response
{
"data": [
{
"date_string": "string",
"spread": 0,
"symbol": "string"
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | liquiditySummaryCaResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
TSX Daily Stats CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"exchange"
],
"enddate": "string",
"exchange": "string",
"pageafter": 0,
"startdate": "string",
"stat": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/tsxdailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/tsxdailystats
Contains premium TSX/V specific daily statistics such as close price, open price, time of price movement extension, time of market state change and time of market imbalance message. Covers trading activity across TSX/TSXV and Alpha. Symbol coverage extends to all TSX/V listed symbols.
Body parameter
{
"columns": [
"exchange"
],
"enddate": "string",
"exchange": "string",
"pageafter": 0,
"startdate": "string",
"stat": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | tsxdailystatsCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
exchange | body | string | false | Identifies the venue for the applicable statistics |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. start date of 2020-09-01 will include data from 2020-09-01 to enddate |
stat | body | string | true | Identifies the various statistics that can be obtained. Possible values are available in Reference Guide for stat for TSX Daily Stats CA |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Reference Guide for stat for TSX Daily Stats CA
stat | keyvalue | value | time | value2 | value3 |
---|---|---|---|---|---|
ccp | <symbol > |
Close price for symbol on associated exchange | Market close time for symbol on associated exchange | N/A | N/A |
cop | <symbol > |
Open price for symbol on associated exchange | Market open time for symbol on associated exchange | Boardlot size of symbol | N/A |
pme | <symbol > |
N/A | Time of price movement extension on associated exchange | N/A | N/A |
msc | <symbol > |
Market state on associated exchange | Time of market state change on associated exchange | N/A | N/A |
moc | <symbol > |
Imbalance volume on associated exchange | Time of market imbalance message on associated exchange | Imbalance side on associated exchange | Imbalance price on associated exchange |
Enumerated Values
Parameter | Value |
---|---|
columns | exchange |
columns | year |
columns | stat |
columns | key_value |
columns | time |
columns | time_nanos |
columns | value |
columns | value2 |
columns | value3 |
columns | value4_to_n |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"date_string": "string",
"exchange": "string",
"key_value": "string",
"stat": "string",
"time": "string",
"time_nanos": 0,
"value": "string",
"value2": "string",
"value3": "string",
"value4_to_n": [
"string"
],
"year": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | tsxdailystatsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Advanced Daily Stats US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/advanceddailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/advanceddailystats
Contains advanced daily statistics such as seconday close price, avgerage top of the book bid/ask volume, quoted spreads, effective spreads and trading volumes/count/value metrics across Canadian and US venues. Metrics pertaining to Canada - Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well.
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | advanceddailystatsUsRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | ca_symbol |
columns | secondaryclose |
columns | avgbidvol |
columns | avgaskvol |
columns | avg_sprd_cent |
columns | avg_sprd_bps |
columns | effective_sprd_cent |
columns | effective_sprd_bps |
columns | trade_count_ca |
columns | daily_volume_ca |
columns | daily_trading_value_ca |
columns | trade_count_us |
columns | daily_volume_us |
columns | daily_trading_value_us |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"avg_sprd_bps": 0,
"avg_sprd_cent": 0,
"avgaskvol": 0,
"avgbidvol": 0,
"ca_symbol": "string",
"daily_trading_value_ca": 0,
"daily_trading_value_us": 0,
"daily_volume_ca": 0,
"daily_volume_us": 0,
"date_string": "string",
"effective_sprd_bps": 0,
"effective_sprd_cent": 0,
"secondaryclose": 0,
"symbol": "string",
"trade_count_ca": 0,
"trade_count_us": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | advanceddailystatsUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Basic Daily Stats US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/basicdailystatsall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/basicdailystatsall
Contains essential daily statistics such as open, high, low, close, trade count aggregations, trade volume aggregations, trade value aggregations, vwap, volatility metrics, shares outstanding and market capitalization. Covers trading activity across all US marketplaces. Symbol coverage extends to all US symbols as well.
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | basicdailystatsallUsRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | first_observed_price |
columns | intraday_high |
columns | intraday_low |
columns | last_observed_price |
columns | london_4pm_price |
columns | total_trade_count |
columns | total_daily_volume |
columns | total_daily_value |
columns | avg_30day_trade_count |
columns | avg_30day_daily_volume |
columns | avg_30day_daily_value |
columns | TWAP_30day |
columns | TWAP_60day |
columns | volatility30_pct |
columns | volatility60_pct |
columns | shares_outstanding |
columns | mkt_cap |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"avg_30day_daily_value": 0,
"avg_30day_daily_volume": 0,
"avg_30day_trade_count": 0,
"date_string": "string",
"first_observed_price": "string",
"intraday_high": "string",
"intraday_low": "string",
"last_observed_price": "string",
"london_4pm_price": "string",
"mkt_cap": 0,
"shares_outstanding": 0,
"symbol": "string",
"total_daily_value": 0,
"total_daily_volume": 0,
"total_trade_count": 0,
"twap_30day": "string",
"twap_60day": "string",
"volatility30_pct": "string",
"volatility60_pct": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | basicdailystatsallUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Daily Stats US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/dailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/dailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/dailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/dailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/dailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/dailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/dailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/dailystats
Contains daily statistics such as open, high, low, close, total volume, volume_moo, volume_moc, vwap, volatility30_pct, volatility60_pct. Covers trading activity across all US marketplaces. Symbol coverage extends to all US symbols as well
Body parameter
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | dailystatsUsRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | volume_block |
columns | volume_moo |
columns | volume_moc |
columns | volume_odd_lot |
columns | total_adjvolume |
columns | total_adjvalue |
columns | total_adjcount |
columns | intraday_high |
columns | intraday_low |
columns | first_observed_price |
columns | FOP_venue |
columns | FOP_time_eastern |
columns | last_observed_price |
columns | LOP_venue |
columns | LOP_time_eastern |
columns | avg_ADVolume30 |
columns | vwap30 |
columns | vwap60 |
columns | intraday_volatility_pct |
columns | volume_cross |
columns | volume_pre_market |
columns | volume_post_market |
columns | total_trade_count |
columns | total_daily_volume |
columns | total_daily_value |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"avg_advolume30": 0,
"date_string": "string",
"first_observed_price": 0,
"fop_time_eastern": "string",
"fop_venue": "string",
"intraday_high": 0,
"intraday_low": 0,
"intraday_volatility_pct": 0,
"last_observed_price": 0,
"lop_time_eastern": "string",
"lop_venue": "string",
"symbol": "string",
"total_adjcount": 0,
"total_adjvalue": 0,
"total_adjvolume": 0,
"total_daily_value": 0,
"total_daily_volume": 0,
"total_trade_count": 0,
"volume_block": 0,
"volume_cross": 0,
"volume_moc": 0,
"volume_moo": 0,
"volume_odd_lot": 0,
"volume_post_market": 0,
"volume_pre_market": 0,
"vwap30": 0,
"vwap60": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | dailystatsUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Equity Intraday Trades
OHLC CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"first_observed_price"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/basicdailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/basicdailystats
Essential daily statistics such as open, high, low, close. Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well
Body parameter
{
"columns": [
"first_observed_price"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | basicdailystatsCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | first_observed_price |
columns | last_observed_price |
columns | intraday_high |
columns | intraday_low |
columns | symbol |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"date_string": "string",
"first_observed_price": 0,
"intraday_high": 0,
"intraday_low": 0,
"last_observed_price": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | basicdailystatsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
404 | Not Found | 404 response | None |
409 | Conflict | 409 response | None |
500 | Internal Server Error | 500 response | None |
Trades - 1min CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1min", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/tradebar1min
Canadian trades data from all marketplaces aggregated in one minute bars with metrics such as open, high, low, close, vwap, number of trades excluding blocks etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | tradebar1minCaRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | barstarttime |
columns | symbol |
columns | firsttradeprice |
columns | hightradeprice |
columns | lowtradeprice |
columns | lasttradeprice |
columns | vwap |
columns | vwapexint |
columns | vwapexblock |
columns | volume |
columns | volumeexint |
columns | volumeexblock |
columns | value |
columns | valueexint |
columns | valueexblock |
columns | numtrades |
columns | numtradesexint |
columns | numtradesexblock |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"barstarttime": "string",
"date_string": "string",
"firsttradeprice": 0,
"highbidprice": 0,
"lasttradeprice": "string",
"lowtradeprice": 0,
"numtrades": 0,
"numtradesexblock": 0,
"numtradesexint": 0,
"symbol": "string",
"value": 0,
"valueexblock": 0,
"valueexint": 0,
"volume": 0,
"volumeexblock": 0,
"volumeexint": 0,
"vwap": 0,
"vwapexblock": 0,
"vwapexint": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | tradebar1minCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
404 | Not Found | 404 response | None |
409 | Conflict | 409 response | None |
500 | Internal Server Error | 500 response | None |
Trades - 1sec CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/tradebar1sec", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/tradebar1sec
Canadian trades data from all marketplaces aggregated in one second bars with metrics such as open, high, low, close, vwap, number of trades excluding blocks etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | tradebar1secCaRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbol | body | string | true | Ticker symbol of the security. For eg. "AC" for Air Canada or "ALL_SYMBOLS" for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | barstarttime |
columns | symbol |
columns | firsttradeprice |
columns | hightradeprice |
columns | lowtradeprice |
columns | lasttradeprice |
columns | vwap |
columns | vwapexint |
columns | vwapexblock |
columns | volume |
columns | volumeexint |
columns | volumeexblock |
columns | value |
columns | valueexint |
columns | valueexblock |
columns | numtrades |
columns | numtradesexint |
columns | numtradesexblock |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"barstarttime": "string",
"date_string": "string",
"firsttradeprice": 0,
"hightradeprice": 0,
"lasttradeprice": 0,
"lowtradeprice": 0,
"numtrades": 0,
"numtradesexblock": 0,
"numtradesexint": 0,
"symbol": "string",
"value": 0,
"valueexblock": 0,
"valueexint": 0,
"volume": 0,
"volumeexblock": 0,
"volumeexint": 0,
"vwap": 0,
"vwapexblock": 0,
"vwapexint": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | tradebar1secCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
404 | Not Found | 404 response | None |
409 | Conflict | 409 response | None |
500 | Internal Server Error | 500 response | None |
Trades - 1min US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/tradebar1min", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/tradebar1min
US trades data aggregated in one minute bars with metrics such as open, high, low, close, vwap, number of trades excluding blocks etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | tradebar1minUsRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | bin_start |
columns | bin_end |
columns | open |
columns | high |
columns | low |
columns | close |
columns | volume |
columns | volume_ex_block |
columns | vwap |
columns | vwap_ex_block |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"bin_end": "string",
"bin_start": "string",
"close": 0,
"date_string": "string",
"high": "string",
"low": 0,
"open": 0,
"symbol": "string",
"volume": 0,
"volume_ex_block": 0,
"vwap": 0,
"vwap_ex_block": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | tradebar1minUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
404 | Not Found | 404 response | None |
409 | Conflict | 409 response | None |
500 | Internal Server Error | 500 response | None |
Trades - 1sec US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/tradebar1sec", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/tradebar1sec
US trades data from all marketplaces aggregated in one second bars with metrics such as open, high, low, close, vwap, number of trades excluding blocks etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | tradebar1secUsRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | bin_start |
columns | bin_end |
columns | open |
columns | high |
columns | low |
columns | close |
columns | volume |
columns | volume_ex_block |
columns | vwap |
columns | vwap_ex_block |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"bin_end": "string",
"bin_start": "string",
"close": 0,
"date_string": "string",
"high": "string",
"low": 0,
"open": 0,
"symbol": "string",
"volume": 0,
"volume_ex_block": 0,
"vwap": 0,
"vwap_ex_block": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | tradebar1secUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
404 | Not Found | 404 response | None |
409 | Conflict | 409 response | None |
500 | Internal Server Error | 500 response | None |
Broker Analytics
Broker Daily Stats CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/brokerdailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/brokerdailystats
Provides insights into market share by broker through a more detailed view into trade volume by broker for various trading sessions and order types, subject to broker attribution
Body parameter
{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | brokerDailyStatsCaRequestv1 | true | none |
brokers | body | [string] | false | Identifies the broker ID. For eg. [90, 80] or ["ALL_BROKERS"] for fetching all the brokers. Optional field, by default its ["ALL_BROKERS"] |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | broker |
columns | volume_buy |
columns | volume_sell |
columns | value_buy |
columns | value_sell |
columns | count_buy |
columns | count_sell |
columns | volume_block_buy |
columns | volume_block_sell |
columns | volume_moc_buy |
columns | volume_moc_sell |
columns | volume_moo_buy |
columns | volume_moo_sell |
columns | volume_odd_lot_buy |
columns | volume_odd_lot_sell |
columns | volume_dark_buy |
columns | volume_dark_sell |
columns | volume_cross_buy |
columns | volume_cross_sell |
columns | volume_premarket_buy |
columns | volume_premarket_sell |
columns | volume_postmarket_buy |
columns | volume_postmarket_sell |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"broker": "string",
"count_buy": 0,
"count_sell": 0,
"date_string": "string",
"symbol": "string",
"value_buy": 0,
"value_sell": 0,
"volume_block_buy": 0,
"volume_block_sell": 0,
"volume_buy": 0,
"volume_cross_buy": 0,
"volume_cross_sell": 0,
"volume_dark_buy": 0,
"volume_dark_sell": 0,
"volume_moc_buy": 0,
"volume_moc_sell": 0,
"volume_moo_buy": 0,
"volume_moo_sell": 0,
"volume_odd_lot_buy": 0,
"volume_odd_lot_sell": 0,
"volume_postmarket_buy": 0,
"volume_postmarket_sell": 0,
"volume_premarket_buy": 0,
"volume_premarket_sell": 0,
"volume_sell": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | brokerDailyStatsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Broker Liquidity CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/brokerliquidity", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/brokerliquidity
Contains broker-specific quoting analytics at multiple orderbook levels beyond the top of book. This unique dataset provides an enhanced view into displayed liquidity by broker to help understand liquidity dynamics and market share contributed by each broker, subject to broker attribution. One-minute orderbook snapshots are taken throughout the trading day (9:45 AM - 15:45 PM ET/EST) and then the time-weighted average is used to represent an end of day value
Body parameter
{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | brokerLiquidityCaRequestv1 | true | none |
brokers | body | [string] | false | Identifies the broker ID. For eg. [90, 80] or ["ALL_BROKERS"] for fetching all the brokers. Optional field, by default its ["ALL_BROKERS"] |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | broker |
columns | pct_time_2sides_avail |
columns | sprd_TOB_bps |
columns | pct_time_atNBB |
columns | avgNBB_volume |
columns | avgNBB_value |
columns | pct_time_atNBO |
columns | avgNBO_volume |
columns | avgNBO_value |
columns | pct_time_bid_10b_deep |
columns | bidsize10b_impact |
columns | bidvalue10b_impact |
columns | pct_time_bid_25b_deep |
columns | bidsize25b_impact |
columns | bidvalue25b_impact |
columns | pct_time_ask_10b_deep |
columns | asksize10b_impact |
columns | askvalue10b_impact |
columns | pct_time_ask_25b_deep |
columns | asksize25b_impact |
columns | askvalue25b_impact |
columns | pct_time_bidask_25k_deep |
columns | sprd_25k_bps |
columns | pct_time_bidask_50k_deep |
columns | sprd_50k_bps |
columns | pct_time_bidask_100k_deep |
columns | sprd_100k_bps |
columns | pct_time_bidask_200k_deep |
columns | sprd_200k_bps |
columns | pct_time_bidask_500k_deep |
columns | sprd_500k_bps |
columns | pct_time_bidask_1m_deep |
columns | sprd_1m_bps |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"asksize10b_impact": 0,
"asksize25b_impact": 0,
"askvalue10b_impact": 0,
"askvalue25b_impact": 0,
"avgnbb_value": 0,
"avgnbb_volume": 0,
"avgnbo_value": 0,
"avgnbo_volume": 0,
"bidsize10b_impact": 0,
"bidsize25b_impact": 0,
"bidvalue10b_impact": 0,
"bidvalue25b_impact": 0,
"broker": "string",
"date_string": "string",
"pct_time_2sides_avail": 0,
"pct_time_ask_10b_deep": 0,
"pct_time_ask_25b_deep": 0,
"pct_time_atnbb": 0,
"pct_time_atnbo": 0,
"pct_time_bid_10b_deep": 0,
"pct_time_bid_25b_deep": 0,
"pct_time_bidask_100k_deep": 0,
"pct_time_bidask_1m_deep": 0,
"pct_time_bidask_200k_deep": 0,
"pct_time_bidask_25k_deep": 0,
"pct_time_bidask_500k_deep": 0,
"pct_time_bidask_50k_deep": 0,
"sprd_100k_bps": 0,
"sprd_1m_bps": 0,
"sprd_200k_bps": 0,
"sprd_25k_bps": 0,
"sprd_500k_bps": 0,
"sprd_50k_bps": 0,
"sprd_tob_bps": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | brokerLiquidityCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Broker Summary CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/brokersummary", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/brokersummary
Contains spread and volume metrics broker down by broker.
Body parameter
{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | brokerSummaryCaRequestv1 | true | none |
brokers | body | [string] | false | Identifies the broker ID. For eg. [90, 80] or ["ALL_BROKERS"] for fetching all the brokers. Optional field, by default its ["ALL_BROKERS"] |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | broker |
columns | time_period |
columns | notional |
columns | bid_ratio |
columns | bid_volume |
columns | bid_value |
columns | ask_ratio |
columns | ask_volume |
columns | ask_value |
columns | spread |
columns | spread_bps |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"ask_ratio": 0,
"ask_value": 0,
"ask_volume": 0,
"bid_ratio": 0,
"bid_value": 0,
"bid_volume": 0,
"broker": 0,
"date_string": "string",
"notional": 0,
"spread": 0,
"spread_bps": 0,
"symbol": "string",
"time_period": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | brokerSummaryCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Corporate Actions & Reference Data
Issuers CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/issuers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/issuers', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/issuers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/issuers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"timeseries_id"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/issuers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/issuers HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/issuers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/issuers
Contains reference data for securities listed on TSX and TSXV
Body parameter
{
"columns": [
"timeseries_id"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | issuersCaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. start date of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | timeseries_id |
columns | symbol |
columns | is_etf |
columns | issue_long_name |
columns | cusip |
columns | segment |
columns | listing_exchange |
columns | issue_short_name |
columns | company_name |
columns | issue_list_date |
columns | security_type |
columns | fund_family |
columns | is_fund_of_funds |
columns | interlisted_exchange |
columns | us_symbol |
columns | date_string |
columns | year |
Example responses
200 Response
{
"data": [
{
"company_name": "string",
"cusip": "string",
"date_string": "string",
"fund_family": "string",
"interlisted_exchange": "string",
"is_etf": 0,
"is_fund_of_funds": "string",
"issue_list_date": "string",
"issue_long_name": "string",
"issue_short_name": "string",
"listing_exchange": "string",
"security_type": "string",
"segment": "string",
"symbol": "string",
"timeseries_id": "string",
"us_symbol": "string",
"year": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | issuersCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Global Symbols
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/globalsymbols',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/globalsymbols', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/globalsymbols");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/globalsymbols \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"timeseries_id"
],
"countrycode": "string",
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/globalsymbols',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/globalsymbols HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/globalsymbols", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/globalsymbols
Contains security reference and corporate actions data such as dividends and splits.
Body parameter
{
"columns": [
"timeseries_id"
],
"countrycode": "string",
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | globalsymbolsRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
countrycode | body | string | true | Identifies the country the security trades in |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | timeseries_id |
columns | exchange |
columns | symbol |
columns | cusip |
columns | sedol |
columns | isin |
columns | primary_exchange |
columns | security_type |
columns | price_ratio |
columns | rev_price_ratio |
columns | price_offset |
columns | shares_outstanding |
columns | country_code |
columns | currency |
columns | date_string |
columns | year |
Example responses
200 Response
{
"data": [
{
"country_code": "string",
"currency": "string",
"cusip": "string",
"date_string": "string",
"exchange": "string",
"isin": "string",
"price_offset": 0,
"price_ratio": 0,
"primary_exchange": "string",
"rev_price_ratio": 0,
"security_type": "string",
"sedol": "string",
"shares_outstanding": 0,
"symbol": "string",
"timeseries_id": "string",
"year": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | globalsymbolsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Global Symbols Delta
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"timeseries_id"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/globalsymbolsdelta", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/globalsymbolsdelta
Description for Global Symbols Delta
Body parameter
{
"columns": [
"timeseries_id"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | globalsymbolsdeltaRequestv1 | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | timeseries_id |
columns | exchange |
columns | symbol |
columns | new_symbol |
columns | new_cusip |
columns | new_sedol |
columns | new_isin |
columns | new_primary_exchange |
columns | new_price_ratio |
columns | new_rev_price_ratio |
columns | price_offset |
columns | new_shares_outstanding |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"date_string": "string",
"exchange": "string",
"new_cusip": "string",
"new_isin": "string",
"new_price_ratio": 0,
"new_primary_exchange": "string",
"new_rev_price_ratio": 0,
"new_sedol": "string",
"new_shares_outstanding": 0,
"new_symbol": "string",
"price_offset": 0,
"symbol": "string",
"timeseries_id": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | globalsymbolsdeltaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
New MOC Imbalance Analytics
MOCI CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/moci',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/moci', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/moci");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/moci \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"date_string"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/moci',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/moci HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/moci", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/moci
New MOCI provides information from the new MOC Facility for eligible stocks.
Body parameter
{
"columns": [
"date_string"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | mociRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | date_string |
columns | venue |
columns | symbol |
columns | time |
columns | time_nanos |
columns | imbalancereferenceprice |
columns | imbalanceside |
columns | imbalancevolume |
columns | pairedvolume |
columns | marketorderimbalancevolume |
columns | marketorderimbalanceside |
columns | nearindicativeclosingprice |
columns | farindicativeclosingprice |
columns | pricevariation |
columns | seq |
Example responses
200 Response
{
"data": [
{
"date_string": "string",
"farindicativeclosingprice": 0,
"imbalancereferenceprice": 0,
"imbalanceside": "string",
"imbalancevolume": 0,
"marketorderimbalanceside": "string",
"marketorderimbalancevolume": 0,
"nearindicativeclosingprice": 0,
"pairedvolume": 0,
"pricevariation": 0,
"seq": 0,
"symbol": "string",
"time": "string",
"time_nanos": 0,
"venue": "string"
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | mociResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Essential Analytics for Options & Futures
MX Daily Stats CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"callputcode": "string",
"columns": [
"underlying_symbol"
],
"deltalowerlimit": 0,
"deltaupperlimit": 0,
"enddate": "string",
"expirationenddate": "string",
"expirationstartdate": "string",
"gammalowerlimit": 0,
"gammaupperlimit": 0,
"instrumentgroup": "string",
"instrumenttype": "string",
"pageafter": 0,
"startdate": "string",
"strikepricelowerlimit": 0,
"strikepriceupperlimit": 0,
"symbol": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/mxdailystats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/mxdailystats
Contains daily statistics on MX data such as Roll Volume, Put Call Ratio, Implied Volalitity, Delta, Gamma, Rho, Vega, Theta, Reference Price, Last Price, Last Bid, Last Ask, Open Interest, Trade Count, Trade Volume, Trade Value.
Body parameter
{
"callputcode": "string",
"columns": [
"underlying_symbol"
],
"deltalowerlimit": 0,
"deltaupperlimit": 0,
"enddate": "string",
"expirationenddate": "string",
"expirationstartdate": "string",
"gammalowerlimit": 0,
"gammaupperlimit": 0,
"instrumentgroup": "string",
"instrumenttype": "string",
"pageafter": 0,
"startdate": "string",
"strikepricelowerlimit": 0,
"strikepriceupperlimit": 0,
"symbol": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | mxdailystatsCaRequestv1 | true | none |
callputcode | body | string | false | Identifies between Call Options and Put Options |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
deltalowerlimit | body | number | false | Lower limit for Delta |
deltaupperlimit | body | number | false | Upper limit for Delta |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
expirationenddate | body | string | false | Ending expiration date in YYYY-MM-DD |
expirationstartdate | body | string | false | Starting expiration date in YYYY-MM-DD |
gammalowerlimit | body | number | false | Lower limit for Gamma |
gammaupperlimit | body | number | false | Upper limit for Gamma |
instrumentgroup | body | string | false | Instrument Key |
instrumenttype | body | string | true | Identifies the type of instrument. Possible values are Future,EquityOption, Strategy, FutureOption |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. start date of 2020-09-01 will include data from 2020-09-01 to enddate |
strikepricelowerlimit | body | number | false | Lower limit of Strike Price of Option |
strikepriceupperlimit | body | number | false | Upper limit of Strike Price of Option |
symbol | body | string | true | Ticker symbol of the security. For eg. "AC" for Air Canada. Please note that "ALL_SYMBOLS" cannot be used with this API |
Enumerated Values
Parameter | Value |
---|---|
columns | underlying_symbol |
columns | external_symbol |
columns | instrumenttype |
columns | instrumentgroup |
columns | call_put_code |
columns | option_type |
columns | strike_price |
columns | last_observed_price_underlying |
columns | last_price_extsymbol |
columns | last_bid_extsymbol |
columns | last_ask_extsymbol |
columns | london_4pm_bid |
columns | london_4pm_ask |
columns | london_4pm_price |
columns | referenceprice |
columns | settlement_price |
columns | expiration_date |
columns | open_interest |
columns | trade_count |
columns | trade_volume |
columns | trade_value |
columns | option_input_price |
columns | roll_volume |
columns | putcallratio_byoi |
columns | putcallratio_byvolume |
columns | implied_vol_extsymbol |
columns | implied_vol_by_expiration |
columns | delta |
columns | gamma |
columns | rho |
columns | vega |
columns | theta |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"call_put_code": "string",
"date_string": "string",
"delta": 0,
"expiration_date": "string",
"external_symbol": "string",
"gamma": 0,
"implied_vol_by_expiration": 0,
"implied_vol_extsymbol": 0,
"instrumentgroup": "string",
"instrumenttype": "string",
"last_ask_extsymbol": 0,
"last_bid_extsymbol": 0,
"last_observed_price_underlying": 0,
"last_price_extsymbol": 0,
"london_4pm_ask": 0,
"london_4pm_bid": 0,
"london_4pm_price": 0,
"open_interest": 0,
"option_input_price": 0,
"option_type": "string",
"putcallratio_byoi": 0,
"putcallratio_byvolume": 0,
"referenceprice": "string",
"rho": 0,
"roll_volume": 0,
"settlement_price": 0,
"strike_price": 0,
"theta": 0,
"trade_count": 0,
"trade_value": 0,
"trade_volume": 0,
"underlying_symbol": "string",
"vega": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | mxdailystatsCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Equity Intraday Quotes
Quotes - 1min CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1min", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/quotesbar1min
Canadian quotes data from all marketplaces aggregated in one minute bars with metrics such as open, high, low, close, number of quotes etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | quotesbar1minCaRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | barstarttime |
columns | symbol |
columns | highbidprice |
columns | lowaskprice |
columns | openbartime |
columns | openbidprice |
columns | openbidsize |
columns | openaskprice |
columns | openasksize |
columns | closebartime |
columns | closebidprice |
columns | closebidsize |
columns | closeaskprice |
columns | closeasksize |
columns | numquotes |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closeasksize": 0,
"closebartime": "string",
"closebidprice": 0,
"closebidsize": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openasksize": 0,
"openbartime": "string",
"openbidprice": 0,
"openbidsize": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | quotesbar1minCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Quotes - 1sec CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/quotesbar1sec", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/quotesbar1sec
Canadian quotes data from all marketplaces aggregated in one second bars with metrics such as open, high, low, close, number of quotes etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | quotesbar1secCaRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbol | body | string | true | Ticker symbol of the security. For eg. "AC" for Air Canada or "ALL_SYMBOLS" for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | barstarttime |
columns | symbol |
columns | highbidprice |
columns | lowaskprice |
columns | openbartime |
columns | openbidprice |
columns | openbidsize |
columns | openaskprice |
columns | openasksize |
columns | closebartime |
columns | closebidprice |
columns | closebidsize |
columns | closeaskprice |
columns | closeasksize |
columns | numquotes |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closeasksize": 0,
"closebartime": "string",
"closebidprice": 0,
"closebidsize": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openasksize": 0,
"openbartime": "string",
"openbidprice": 0,
"openbidsize": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | quotesbar1secCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Quotes - 1min US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1min", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/quotesbar1min
US quotes data from all marketplaces aggregated in one minute bars with metrics such as open, high, low, close, number of quotes etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | quotesbar1minUsRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | barstarttime |
columns | symbol |
columns | highbidprice |
columns | lowaskprice |
columns | openbartime |
columns | openbidprice |
columns | openaskprice |
columns | closebartime |
columns | closebidprice |
columns | closeaskprice |
columns | numquotes |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closebartime": "string",
"closebidprice": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openbartime": "string",
"openbidprice": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | quotesbar1minUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Quotes - 1sec US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/quotesbar1sec", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/quotesbar1sec
US quotes data from all marketplaces aggregated in one second bars with metrics such as open, high, low, close, number of quotes etc.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | quotesbar1secUsRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | barstarttime |
columns | symbol |
columns | highbidprice |
columns | lowaskprice |
columns | openbartime |
columns | openbidprice |
columns | openaskprice |
columns | closebartime |
columns | closebidprice |
columns | closeaskprice |
columns | numquotes |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closebartime": "string",
"closebidprice": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openbartime": "string",
"openbidprice": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | quotesbar1secUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Trades & Quotes Tick Data
TAQ NBBO CA
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/ca/taqnbbo", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/ca/taqnbbo
Canadian trades and National Best Bid and Offer pricing prevailing at the time of the trade in one data set. Covers all Canadian marketplaces.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | taqnbboCaRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:31:10.423 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:30:10.423 |
symbol | body | string | true | Ticker symbol of the security. For eg. "AC" for Air Canada or "ALL_SYMBOLS" for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | trade_time |
columns | trade_localseq |
columns | trade_venue |
columns | record_type |
columns | totalbidsize |
columns | bestbid |
columns | totalasksize |
columns | bestask |
columns | listing_exchange |
columns | trade_size |
columns | trade_price |
columns | buy_broker |
columns | sell_broker |
columns | trade_id |
columns | trade_condition |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"bestask": 0,
"bestbid": 0,
"buy_broker": 0,
"date_string": "string",
"listing_exchange": "string",
"record_type": 0,
"sell_broker": 0,
"symbol": "string",
"totalasksize": 0,
"totalbidsize": 0,
"trade_condition": "string",
"trade_id": "string",
"trade_localseq": 0,
"trade_price": "string",
"trade_size": 0,
"trade_time": "string",
"trade_venue": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | taqnbboCaResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | taqnbboUsResponsev1 |
500 | Internal Server Error | 500 response | None |
TAQ NBBO US
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/us/taqnbbo", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/us/taqnbbo
US trades and National Best Bid and Offer pricing prevailing at the time of the trade in one data set. Covers all US marketplaces.
Body parameter
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | taqnbboUsRequestv1 | true | none |
adjusted | body | boolean | false | Boolean value to check if the response should include adjusted value |
adjustedForDate | body | string | false | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
datestring | body | string | true | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | body | string | false | Timestamp in EST till when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:31:10.423 |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | body | string | false | Starting timestamp in EST from when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:30:10.423 |
symbols | body | [string] | true | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Enumerated Values
Parameter | Value |
---|---|
columns | symbol |
columns | trade_time |
columns | trade_localseq |
columns | trade_venue |
columns | record_type |
columns | total_bid_size |
columns | best_bid |
columns | total_ask_size |
columns | best_ask |
columns | trade_size |
columns | trade_price |
columns | trade_count |
columns | trade_id |
columns | trade_condition |
columns | time_nanos |
columns | tradeunix |
columns | date_string |
Example responses
200 Response
{
"data": [
{
"best_ask": 0,
"best_bid": 0,
"date_string": "string",
"record_type": 0,
"symbol": "string",
"time_nanos": 0,
"total_ask_size": 0,
"total_bid_size": 0,
"trade_condition": "string",
"trade_id": "string",
"trade_localseq": 0,
"trade_price": "string",
"trade_size": 0,
"trade_time": "string",
"trade_venue": "string",
"tradeunix": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | taqnbboUsResponsev1 |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | taqnbboUsResponsev1 |
500 | Internal Server Error | 500 response | None |
Short Interest Analytics
Days To Cover
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/daystocover',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/daystocover', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/daystocover");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/daystocover \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/daystocover',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/daystocover HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/daystocover", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/daystocover
It is a liquidity measure = 15 day average Short Interest / 15 day average ADTV
Body parameter
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | daystocoverRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Effective date for the data |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Effective date for the data |
Enumerated Values
Parameter | Value |
---|---|
columns | business_date |
columns | isin |
columns | symbol |
columns | name |
columns | days_to_cover_current |
columns | days_to_cover_15 |
columns | days_to_cover_current_vs_90 |
Example responses
200 Response
{
"data": [
{
"business_date": "string",
"days_to_cover_15": 0,
"days_to_cover_current": 0,
"days_to_cover_current_vs_90": 0,
"isin": "string",
"name": "string",
"symbol": "string"
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | daystocoverResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Short Interest Original
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/original',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/original', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/original");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/original \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/original',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/original HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/original", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/original
This table contains S3 Partners borrow rates and Original Short Interest Projection data
Body parameter
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | originalRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Effective date for the data |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Effective date for the data |
Enumerated Values
Parameter | Value |
---|---|
columns | business_date |
columns | sedol |
columns | isin |
columns | figi |
columns | ticker |
columns | bbgid |
columns | name |
columns | offer_rate |
columns | bid_rate |
columns | last_rate |
columns | short_momentum |
columns | short_interest |
columns | shortinterestnotional |
columns | shortinterestpct |
columns | s3float |
columns | s3sipctfloat |
columns | indicativeavailability |
columns | s3utilization |
columns | daystocover10day |
columns | daystocover30day |
columns | daystocover90day |
columns | crowded_score |
columns | squeeze_risk |
columns | dailymtmpl |
columns | dailynetmtmpl |
columns | volume |
Example responses
200 Response
{
"data": [
{
"bbgid": "string",
"bid_rate": 0,
"business_date": "string",
"crowded_score": 0,
"dailymtmpl": 0,
"dailynetmtmpl": 0,
"daystocover10day": 0,
"daystocover30day": 0,
"daystocover90day": 0,
"figi": "string",
"indicativeavailability": 0,
"isin": "string",
"last_rate": 0,
"name": "string",
"offer_rate": 0,
"s3float": 0,
"s3sipctfloat": 0,
"s3utilization": 0,
"sedol": "string",
"short_interest": 0,
"short_momentum": 0,
"shortinterestnotional": 0,
"shortinterestpct": 0,
"squeeze_risk": 0,
"ticker": "string",
"volume": 0
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | originalResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Percent Float
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/percentfloat',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/percentfloat', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/percentfloat");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/percentfloat \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/percentfloat',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/percentfloat HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/percentfloat", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/percentfloat
TMX EDMA provides high resolution analytics-ready data sets and leverages Amazon Web Services (AWS) cloud technology to deliver…
Body parameter
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | percentfloatRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Effective date for the data |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Effective date for the data |
Enumerated Values
Parameter | Value |
---|---|
columns | business_date |
columns | isin |
columns | symbol |
columns | name |
columns | pct_float_current |
columns | pct_float_15 |
columns | pct_float_current_vs_90 |
Example responses
200 Response
{
"data": [
{
"business_date": "string",
"isin": "string",
"name": "string",
"pct_float_15": 0,
"pct_float_current": 0,
"pct_float_current_vs_90": 0,
"symbol": "string"
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | percentfloatResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Short Interest Smoothened
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/smoothened',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/smoothened', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/smoothened");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/smoothened \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/smoothened',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/smoothened HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/smoothened", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/smoothened
This table contains S3 Partners borrow rates and revised Short Interest data
Body parameter
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | smoothenedRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Effective date for the data |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Effective date for the data |
Enumerated Values
Parameter | Value |
---|---|
columns | business_date |
columns | sedol |
columns | isin |
columns | figi |
columns | ticker |
columns | bbgid |
columns | name |
columns | offer_rate |
columns | bid_rate |
columns | last_rate |
columns | short_momentum |
columns | short_interest |
columns | shortinterestnotional |
columns | shortinterestpct |
columns | s3float |
columns | s3sipctfloat |
columns | indicativeavailability |
columns | s3utilization |
columns | daystocover10day |
columns | daystocover30day |
columns | daystocover90day |
columns | crowded_score |
columns | squeeze_risk |
columns | dailymtmpl |
columns | dailynetmtmpl |
columns | volume |
Example responses
200 Response
{
"data": [
{
"bbgid": "string",
"bid_rate": 0,
"business_date": "string",
"crowded_score": 0,
"dailymtmpl": 0,
"dailynetmtmpl": 0,
"daystocover10day": 0,
"daystocover30day": 0,
"daystocover90day": 0,
"figi": "string",
"indicativeavailability": 0,
"isin": "string",
"last_rate": 0,
"name": "string",
"offer_rate": 0,
"s3float": 0,
"s3sipctfloat": 0,
"s3utilization": 0,
"sedol": "string",
"short_interest": 0,
"short_momentum": 0,
"shortinterestnotional": 0,
"shortinterestpct": 0,
"squeeze_risk": 0,
"ticker": "string",
"volume": 0
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | smoothenedResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Buybacks
North American Buybacks
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"announce_date_end": "string",
"announce_date_start": "string",
"columns": [
"transaction_id"
],
"cusip": [
"string"
],
"effective_date_end": "string",
"effective_date_start": "string",
"expiry_date_end": "string",
"expiry_date_start": "string",
"isin": [
"string"
],
"last_updated_date_end": "string",
"last_updated_date_start": "string",
"pageafter": 0,
"symbol": [
"string"
],
"time_processed_end": "string",
"time_processed_start": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/northamericanbuybacks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/northamericanbuybacks
North American Buybacks provides information on corporate share buyback announcement details as well as tracking of buyback purchases as they are reported. Also offers historical analysis of company buyback behavior and insight into deviations from historical norms
Body parameter
{
"announce_date_end": "string",
"announce_date_start": "string",
"columns": [
"transaction_id"
],
"cusip": [
"string"
],
"effective_date_end": "string",
"effective_date_start": "string",
"expiry_date_end": "string",
"expiry_date_start": "string",
"isin": [
"string"
],
"last_updated_date_end": "string",
"last_updated_date_start": "string",
"pageafter": 0,
"symbol": [
"string"
],
"time_processed_end": "string",
"time_processed_start": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | northamericanbuybacksRequest | true | none |
announce_date_end | body | string | false | End Date to filter by Announce Date of Buyback. For eg. announce_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
announce_date_start | body | string | false | Start Date to filter by Announce Date of Buyback. For eg.announce_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
cusip | body | [string] | false | CUSIP of Security,multiple can be provided as an array. Not including an ID will return ALL IDs |
effective_date_end | body | string | false | End date to filter results based on the Buyback Effective Date. For eg.effective_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
effective_date_start | body | string | false | Start date to filter results based on the Buyback Effective Date. For eg. effective_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
expiry_date_end | body | string | false | End Date to Filter by Expiry Date of Buyback. For eg. expiry_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
expiry_date_start | body | string | false | Start Date to Filter by Expiry Date of Buyback. For eg. expiry_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
isin | body | [string] | false | ISIN of Security, multiple can be provided as an array. Not including an ID will return ALL IDs |
last_updated_date_end | body | string | false | End date to filter results based on the last date a record is updated. For eg. last_updated_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31 |
last_updated_date_start | body | string | false | Start date to filter results based on the last date a record is updated. For eg. last_updated_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
symbol | body | [string] | false | Symbol of Security, multiple symbols can be provided as an array. Not including an ID will return ALL IDs |
time_processed_end | body | string | true | Enddate to filter results based on the time the information was entered into internal systems. Time is UTC standard. For eg. time_processed_end of 2024-08-31 will include data from specified date_start to 2024-08-31 |
time_processed_start | body | string | true | Start date to filter results based on the time the information was entered into internal systems. Time is UTC standard. For eg. time_processed_start of 2024-08-31 will include data from 2024-08-31 to specified date_end |
Enumerated Values
Parameter | Value |
---|---|
columns | transaction_id |
columns | last_update_date |
columns | monthly_report_period |
columns | type |
columns | announce_date |
columns | start_date |
columns | effective_date |
columns | end_date |
columns | expiry_date |
columns | name |
columns | symbol |
columns | cusip |
columns | isin |
columns | current_primary_country |
columns | latest_shares_in_issue |
columns | last_shares_in_issue_before_effective |
columns | percent_differance_in_outstanding_shares |
columns | last_initial_subject_shares |
columns | last_initial_subject_value |
columns | last_subject_end_date |
columns | initial_subject_shares |
columns | initial_subject_value |
columns | subject_shares_percent_announced |
columns | historical_5yr_subject_percent_announced |
columns | intention_revisions |
columns | split_adjustment_factor |
columns | shares_purchased_in_mon |
columns | value_purchased_in_mon |
columns | eom_total_shares |
columns | eom_value |
columns | current_percent_completed |
columns | current_prorated_completed |
columns | historical_5yr_percent_completed |
columns | reported_transaction_min_date |
columns | reported_transaction_max_date |
columns | amount |
columns | reported_price |
columns | currency |
columns | usd_value |
columns | transaction_note |
columns | time_released_utc |
columns | time_processed_utc |
columns | ingest_day |
Example responses
200 Response
{
"data": [
{
"amount": 0,
"announce_date": "string",
"currency": "string",
"current_percent_completed": 0,
"current_primary_country": "string",
"current_prorated_completed": "string",
"cusip": "string",
"effective_date": "string",
"end_date": "string",
"eom_total_shares": 0,
"eom_value": 0,
"expiry_date": "string",
"historical_5yr_percent_completed": 0,
"historical_5yr_subject_percent_announced": 0,
"ingest_day": "string",
"initial_subject_shares": 0,
"initial_subject_value": 0,
"intention_revisions": "string",
"isin": "string",
"last_initial_subject_shares": 0,
"last_initial_subject_value": 0,
"last_shares_in_issue_before_effective": 0,
"last_subject_end_date": "string",
"last_update_date": "string",
"latest_shares_in_issue": 0,
"monthly_report_period": "string",
"name": "string",
"percent_differance_in_outstanding_shares": 0,
"reported_price": 0,
"reported_transaction_max_date": "string",
"reported_transaction_min_date": "string",
"shares_purchased_in_mon": 0,
"split_adjustment_factor": 0,
"start_date": "string",
"subject_shares_percent_announced": 0,
"symbol": "string",
"time_processed_utc": "string",
"time_released_utc": "string",
"transaction_id": "string",
"transaction_note": "string",
"type": "string",
"usd_value": 0,
"value_purchased_in_mon": 0
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | northamericanbuybacksResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Price Adjustment Curve
Pac
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/pac',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/pac', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/pac");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/pac \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"date_string"
],
"enddate": "string",
"id": [
"string"
],
"pageafter": 0,
"startdate": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/pac',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/pac HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/pac", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/pac
Price adjustment Curve provides information on corporate action adjustment factors, including cash dividends and splits. Could be applied to the most granular prices and quotes to have a adjusted price for trade analysis, or adjusted quotes for order book Analysis.
Body parameter
{
"columns": [
"date_string"
],
"enddate": "string",
"id": [
"string"
],
"pageafter": 0,
"startdate": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | pacRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
id | body | [string] | true | Unique company ID or ["ALL_IDS"] for fetching all the companies. |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
Enumerated Values
Parameter | Value |
---|---|
columns | date_string |
columns | id |
columns | symbol |
columns | cusip |
columns | listing_exchange |
columns | currency |
columns | cash_div_ratio |
columns | split_ratio |
columns | forward_div_ratio |
columns | backward_div_ratio |
columns | forward_split_ratio |
columns | backward_split_ratio |
Example responses
200 Response
{
"data": [
{
"backward_div_ratio": 0,
"backward_split_ratio": 0,
"cash_div_ratio": 0,
"currency": "string",
"cusip": "string",
"date_string": "string",
"forward_div_ratio": 0,
"forward_split_ratio": 0,
"id": "string",
"listing_exchange": "string",
"split_ratio": 0,
"symbol": "string"
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | pacResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Pacexplain
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://analyticsapi.tmxanalytics.com/v1/pacexplain',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://analyticsapi.tmxanalytics.com/v1/pacexplain', headers = headers)
print(r.json())
URL obj = new URL("https://analyticsapi.tmxanalytics.com/v1/pacexplain");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
# You can also use wget
curl -X POST https://analyticsapi.tmxanalytics.com/v1/pacexplain \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
const inputBody = '{
"columns": [
"date_string"
],
"enddate": "string",
"id": [
"string"
],
"pageafter": 0,
"startdate": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://analyticsapi.tmxanalytics.com/v1/pacexplain',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://analyticsapi.tmxanalytics.com/v1/pacexplain HTTP/1.1
Host: analyticsapi.tmxanalytics.com
Content-Type: application/json
Accept: application/json
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://analyticsapi.tmxanalytics.com/v1/pacexplain", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /v1/pacexplain
Providing the adjustment factors and explaining the sources behind the adjustment factor calculation
Body parameter
{
"columns": [
"date_string"
],
"enddate": "string",
"id": [
"string"
],
"pageafter": 0,
"startdate": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | pacexplainRequest | true | none |
columns | body | [string] | false | Select columns from the enumerated list below can be provided as an array |
enddate | body | string | true | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
id | body | [string] | true | Unique company ID or ["ALL_IDS"] for fetching all the companies. |
pageafter | body | integer | false | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | body | string | true | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
Enumerated Values
Parameter | Value |
---|---|
columns | date_string |
columns | id |
columns | symbol |
columns | currency |
columns | factor |
columns | type |
columns | sources |
Example responses
200 Response
{
"data": [
{
"currency": "string",
"date_string": "string",
"factor": 0,
"id": "string",
"sources": "string",
"symbol": "string",
"type": "string"
}
]
}
Responses
Detailed description of error codes is explained in section Errors.
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | 200 response | pacexplainResponse |
400 | Bad Request | 400 response | None |
401 | Unauthorized | 401 response | None |
403 | Forbidden | 403 response | None |
500 | Internal Server Error | 500 response | None |
Schemas
Advanced Daily Stats CA Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Advanced Daily Stats CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Advanced Daily Stats CA Response
{
"data": [
{
"avg_sprd_bps": 0,
"avg_sprd_cent": 0,
"avgaskvol": 0,
"avgbidvol": 0,
"daily_trading_value_ca": 0,
"daily_trading_value_us": 0,
"daily_volume_ca": 0,
"daily_volume_us": 0,
"date_string": "string",
"effective_sprd_bps": 0,
"effective_sprd_cent": 0,
"secondaryclose": 0,
"symbol": "string",
"trade_count_ca": 0,
"trade_count_us": 0,
"us_symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Advanced Daily Stats CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Advanced Daily Stats CA responses object |
» avg_sprd_bps | number | false | none | Average daily quoted spread. Spread bps = (ask price-bid price) / midpoint *10000 based on 1 second buckets when there are valid quotes for both bid & ask |
» avg_sprd_cent | number | false | none | Average daily quoted spread (spread = ask price-bid price) based on 1 second buckets when there are valid quotes for both bid & ask |
» avgaskvol | number | false | none | Total average offer volume (NBO) across all Canadian marketplaces on a symbol at any given time, average taken over previous 30 days using 1 second snapshots |
» avgbidvol | number | false | none | Total average bid volume at top price level (NBB) across all Canadian marketplaces on a symbol at any given time, average taken over previous 30 days using 1 second snapshots |
» daily_trading_value_ca | number | false | none | For each trading day, total traded value across all Canadian venues excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» daily_trading_value_us | number | false | none | For each trading day, total traded value across all US venues excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» daily_volume_ca | number | false | none | For each trading day, total traded volume across all Canadian venues excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» daily_volume_us | number | false | none | For each trading day, total traded volume across all US venues excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» date_string | string | false | none | Identifies the local date |
» effective_sprd_bps | number | false | none | Effective Spread (bps) = Effective spread/midpoint *10000. For example, if NBBO is 1.00 - 1.05 and a trade occurs at 1.03 --> Eff spread (bps) = 2 X (1.03-1.025)/1.025 x10000 = 1bps |
» effective_sprd_cent | number | false | none | Effective Spread = 2 X (Trade Price - Nbbo Midpoint)/NBBO midpoint x 100. For example: if NBBO is 1.00 - 1.05 and a trade occurs at 1.03 --> Eff spread = 2 X (1.03-1.025) = $0.01 |
» secondaryclose | number | false | none | Secondary close price identified as midpoint of the NBBO at 3:59.00.0000 PM EST |
» symbol | string | false | none | Ticker symbol of the security |
» trade_count_ca | number | false | none | For each trading day, number of trades across all Canadian venues excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» trade_count_us | number | false | none | For each trading day, number of trades across all US venues excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» us_symbol | string | false | none | Identifies the ticker of the security on the US exchange |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Advanced Daily Stats US Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Advanced Daily Stats US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Advanced Daily Stats US Response
{
"data": [
{
"avg_sprd_bps": 0,
"avg_sprd_cent": 0,
"avgaskvol": 0,
"avgbidvol": 0,
"ca_symbol": "string",
"daily_trading_value_ca": 0,
"daily_trading_value_us": 0,
"daily_volume_ca": 0,
"daily_volume_us": 0,
"date_string": "string",
"effective_sprd_bps": 0,
"effective_sprd_cent": 0,
"secondaryclose": 0,
"symbol": "string",
"trade_count_ca": 0,
"trade_count_us": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Advanced Daily Stats US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Advanced Daily Stats US responses object |
» avg_sprd_bps | number | false | none | Average daily quoted spread. Spread bps = (ask price-bid price) / midpoint *10000 based on 1 second buckets when there are valid quotes for both bid & ask |
» avg_sprd_cent | number | false | none | Average daily quoted spread (spread = ask price-bid price) based on 1 second buckets when there are valid quotes for both bid & ask |
» avgaskvol | number | false | none | Total average offer volume (NBO) across all US marketplaces on a symbol at any given time, average taken over previous 30 days using 1 second snapshots |
» avgbidvol | number | false | none | Total average bid volume at top price level (NBB) across all US marketplaces on a symbol at any given time, average taken over previous 30 days using 1 second snapshots |
» ca_symbol | string | false | none | Identifies the ticker symbol of the security on the Canadian exchange |
» daily_trading_value_ca | number | false | none | For each trading day, total traded value across all Canadian venues account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» daily_trading_value_us | number | false | none | For each trading day, total traded value across all US venues account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» daily_volume_ca | number | false | none | For each trading day, total traded volume across all Canadian venues account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» daily_volume_us | number | false | none | For each trading day, total traded volume across all US venues account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» date_string | string | false | none | Identifies the local date |
» effective_sprd_bps | number | false | none | Effective Spread (bps) = Effective spread/midpoint *10000. Using same example as above: if NBBO is 1.00 - 1.05 and a trade occurs at 1.03 --> Eff spread (bps) = 2 X (1.03-1.025)/1.025 x10000 = 1bps |
» effective_sprd_cent | number | false | none | Effective Spread = 2 X |
» secondaryclose | number | false | none | Secondary close price identified as midpoint of the NBBO at 3:59.00.0000 PM EST |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» trade_count_ca | number | false | none | For each trading day, number of trades across all Canadian venues account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» trade_count_us | number | false | none | For each trading day, number of trades across all US venues account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
data api Automation
{
"billingTag": "string",
"columnDesc": {},
"countryCode": "us",
"docDescription": "string",
"endPoint": "string",
"formatFields": {},
"fromBranch": "string",
"licensedFields": [
"string"
],
"orderByFields": {
"asc": [
"string"
],
"desc": [
"string"
]
},
"pageLimit": 0,
"productName": "string",
"requestParams": {
"column": "string",
"condition": "gt",
"description": "string",
"pattern": "string",
"required": true,
"type": "string"
},
"requestResponseDescription": "string",
"requestResponsePrefix": "string",
"requestResponseTitle": "string",
"sfConfig": {
"database": "string",
"schema": "string",
"warehouse": "string"
},
"subProductName": "string",
"tableName": "string"
}
data api Automation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
billingTag | string | false | none | Specifies the billing tag to be mapped for the data API |
columnDesc | object | false | none | Specifies the description for each attribute in the response model, It will be displayed in the response schema for each field. Its an object with one or more key value pair |
countryCode | string | false | none | Country code |
docDescription | string | true | none | Specifies the description for the data api, This will be displayed in the documentation website |
endPoint | string | true | none | Data API will be exposed with this end point for the given table name |
formatFields | object | false | none | Specifies the format to be applied on the column while fetching from the snowflake database. Its an object, It can have one or more key value pair |
fromBranch | string | true | none | Specifies the branch to be used to cut the new branch, Default is prod branch |
licensedFields | [string] | false | none | Specifies which column in the table to be allowed only for the licensed users, Its array of values |
orderByFields | object | false | none | Specifies the columns to be used to sort the response |
» asc | [string] | false | none | none |
» desc | [string] | false | none | none |
pageLimit | integer | false | none | Specifies the number of results returned in the data api response(Default 1000) |
productName | string | true | none | This is used in the billing authorizer to validate the subscription of the user while accessing the data api, Also Folders will be created with this name, all the sub products services will be placed under this folder. Folder name might not be same as product name if space or any special characters provided. |
requestParams | object | false | none | Specifies the attribute/request parameter to be used in the request models, These attributes actually define the request params for the data api we are creating with automation script. It's an Object. |
» column | string | false | none | Specifies which column in the table to be used to filter the record.This will be used to write the query condition in the lambda file.User input for this “Key” on the data api will be filtered with this column while querying the table |
» condition | string | false | none | Specifies which operators to be used in the query filter on the table column with the user input. |
» description | string | false | none | Specifies the be used in the request model for the property |
» pattern | string | false | none | Specifies the regex pattern to be used in the request model to validate the user input by the API gateway |
» required | boolean | false | none | Specifies fields to be marked as mandatory or optional in the request model. |
» type | string | false | none | Specifies data type for the user input |
requestResponseDescription | string | true | none | Provides the descriptions for the request and response model |
requestResponsePrefix | string | false | none | Request and Response model file will created with this name, if not provided it will use the “subProduct Name+Country Code” for the file name |
requestResponseTitle | string | true | none | Provides the value for the title attribute for the request and response model. |
sfConfig | object | false | none | Specifies the schema, warehouse and database details |
» database | string | false | none | none |
» schema | string | false | none | none |
» warehouse | string | false | none | none |
subProductName | string | true | none | This name will be used with combination of country code to create the lambda function and cloudformation stack and service folder |
tableName | string | true | none | Specifies the table name, Data API will fetch the record from this table and return the response |
Enumerated Values
Property | Value |
---|---|
countryCode | us |
countryCode | ca |
condition | gt |
condition | gte |
condition | lt |
condition | lte |
condition | eq |
type | string |
type | integer |
type | boolean |
type | array |
Authenticate Request
{
"email": "string",
"password": "string"
}
Authenticate Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
string | true | none | User email as registered with TMX Analytics | |
password | string | true | none | User password |
OHLC CA Request
{
"columns": [
"first_observed_price"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
OHLC CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
OHLC CA Response
{
"data": [
{
"date_string": "string",
"first_observed_price": 0,
"intraday_high": 0,
"intraday_low": 0,
"last_observed_price": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
OHLC CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | OHLC CA responses object |
» date_string | string | false | none | Local Date |
» first_observed_price | number | false | none | The first trade as of standard open time (9:30 am) using logic: 1) Open auction price, 2) if no auction price occurrs, then take the first observed trade price on all marketplaces/ATS's, ignoring any pre-market trades (e.g. 8:00-9:30) which are often mis-priced |
» intraday_high | number | false | none | Intra-day high price across all venues between 9:30 am and 4:00 pm excluding oddlots including crosses |
» intraday_low | number | false | none | Intra-day low price across all venues between 9:30 am and 4:00 pm excluding oddlots inlcuding crosses |
» last_observed_price | number | false | none | The last trade as of standard close time (4:00 pm) using logic: 1) closing auction price, (MOC) 2) if no auction price occurrs, then take the last observed trade price on all marketplaces/ATS's, ignoring any after-market/extended trading session trades (e.g. 4-5pm in Cda, 4-8pm in the US) which are often mis-priced |
» symbol | string | false | none | Ticker symbol of the security |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Basic Daily Stats CA Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Basic Daily Stats CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Basic Daily Stats CA Response
{
"data": [
{
"avg_30day_daily_value": 0,
"avg_30day_daily_volume": 0,
"avg_30day_trade_count": 0,
"date_string": "string",
"first_observed_price": 0,
"intraday_high": 0,
"intraday_low": 0,
"last_observed_price": 0,
"london_4pm_price": 0,
"mkt_cap": 0,
"shares_outstanding": 0,
"symbol": "string",
"total_daily_value": 0,
"total_daily_volume": 0,
"total_primary_exchange_volume": 0,
"total_trade_count": 0,
"twap_30day": 0,
"twap_60day": 0,
"volatility30_pct": 0,
"volatility60_pct": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Basic Daily Stats CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Basic Daily Stats CA responses object |
» avg_30day_daily_value | number | false | none | Average daily value traded ie excl odd lots, include blocks auctions, account for cancelled trades over the previous 30 calendar days |
» avg_30day_daily_volume | number | false | none | Average per day traded volume ie excl odd, include blocks, auctions, account for cancelled trades over the previous 30 calendar days |
» avg_30day_trade_count | number | false | none | Average daily number of trades per day, over previous 30 days ie excl odd lots, include blocks, auctions, account for cancelled trades over the previous 30 calendar days |
» date_string | string | false | none | Local Date |
» first_observed_price | number | false | none | The first trade as of standard open time (9:30 am) using logic: 1) Open auction price, 2) if no auction price occurrs, then take the first observed trade price on all marketplaces/ATS's, ignoring any pre-market trades (e.g. 8:00-9:30) which are often mis-priced |
» intraday_high | number | false | none | Intra-day high price across all venues between 9:30 am and 4:00 pm excluding oddlots including crosses |
» intraday_low | number | false | none | Intra-day low price across all venues between 9:30 am and 4:00 pm excluding oddlots inlcuding crosses |
» last_observed_price | number | false | none | The last trade as of standard close time (4:00 pm) using logic: 1) closing auction price, (MOC) 2) if no auction price occurrs, then take the last observed trade price on all marketplaces/ATS's, ignoring any after-market/extended trading session trades (e.g. 4-5pm in Cda, 4-8pm in the US) which are often mis-priced |
» london_4pm_price | number | false | none | The observed market-wide trade price as at 4:00PM London time to be used by European firms who are marking-to-market |
» mkt_cap | number | false | none | Show Shares Outstanding * Most recent Official Closing Price |
» shares_outstanding | number | false | none | Shares outstanding refer to a company's stock currently held by all its shareholders, including share blocks held by institutional investors and restricted shares owned by the company’s officers and insiders. |
» symbol | string | false | none | Ticker symbol of the security |
» total_daily_value | number | false | none | For each trading day, total traded value excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» total_daily_volume | number | false | none | For each trading day, total traded volume excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» total_primary_exchange_volume | number | false | none | For each trading day, total traded volume at primary exchange excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» total_trade_count | number | false | none | For each trading day, no. of trades excluding oddlots, account for cancelled trades during regular market session (9:30 am to 4:00 pm) |
» twap_30day | number | false | none | Average of the adjusted OHLC price over previous 21 trading days. |
» twap_60day | number | false | none | Average of the adjusted OHLC price over previous 42 trading days. |
» volatility30_pct | number | false | none | 1 standard deviation, calculated across all observations across all marketplaces over previous 21 trading days |
» volatility60_pct | number | false | none | 1 standard deviation, calculated across all observations across all marketplaces over previous 42 trading days |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Basic Daily Stats US Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Basic Daily Stats US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Basic Daily Stats US Response
{
"data": [
{
"avg_30day_daily_value": 0,
"avg_30day_daily_volume": 0,
"avg_30day_trade_count": 0,
"date_string": "string",
"first_observed_price": "string",
"intraday_high": "string",
"intraday_low": "string",
"last_observed_price": "string",
"london_4pm_price": "string",
"mkt_cap": 0,
"shares_outstanding": 0,
"symbol": "string",
"total_daily_value": 0,
"total_daily_volume": 0,
"total_trade_count": 0,
"twap_30day": "string",
"twap_60day": "string",
"volatility30_pct": "string",
"volatility60_pct": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Basic Daily Stats US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Basic Daily Stats US responses object |
» avg_30day_daily_value | number | false | none | Average daily value traded ie including odd lots, include blocks, auctions, account for cancelled trades over the previous 30 calendar days. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» avg_30day_daily_volume | number | false | none | Average per day traded volume ie including odd, include blocks, auctions, account for cancelled trades over the previous 30 calendar days. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» avg_30day_trade_count | number | false | none | Average daily number of trades per day, over previous 30 days ie including odd lots, include blocks, auctions, account for cancelled trades over the previous 30 calendar days. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» date_string | string | false | none | Local Date |
» first_observed_price | string | false | none | The first trade as of standard open time (9:30 am) using logic: 1) Trade with trade_condition 'O' 2) if no trade with trade condition 'O' found, then take the first observed trade price on all marketplaces/ATS's, ignoring any pre-market trades (e.g. 8:00-9:30) |
» intraday_high | string | false | none | Intra-day high price across all venues between 9:30 am and 4:00 pm excluding oddlots including crosses |
» intraday_low | string | false | none | Intra-day low price across all venues between 9:30 am and 4:00 pm excluding oddlots including crosses |
» last_observed_price | string | false | none | The last trade as of standard close time (4:00 pm) using logic: 1) closing Print (trade condition = 6) 2) if no closing print available, then take the last observed trade price on all marketplaces/ATS's, ignoring any after-market/extended trading session trades (e.g. 4-5pm in Cda, 4-8pm in the US) which are often mis-priced |
» london_4pm_price | string | false | none | The observed market-wide trade price as at 4:00PM London time to be used by European firms who are marking-to-market |
» mkt_cap | number | false | none | Show Shares Outstanding * Most recent Official Closing Price |
» shares_outstanding | number | false | none | Shares outstanding refer to a company's stock currently held by all its shareholders, including share blocks held by institutional investors and restricted shares owned by the company’s officers and insiders. |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» total_daily_value | number | false | none | For each trading day, total traded value including oddlots, account for cancelled trades during regular market session (6:30 am to 8:00 pm). Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» total_daily_volume | number | false | none | For each trading day, total traded volume including oddlots, account for cancelled trades during regular market session (6:30 am to 8:00 pm). Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» total_trade_count | number | false | none | For each trading day, no. of trades including oddlots, account for cancelled trades during regular market session (6:30 am to 8:00 pm). Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» twap_30day | string | false | none | Average of the adjusted OHLC price over previous 21 trading days. |
» twap_60day | string | false | none | Average of the adjusted OHLC price over previous 42 trading days. |
» volatility30_pct | string | false | none | 1 standard deviation, calculate across all observations across all marketplaces - commonly used industry view of short term volatility |
» volatility60_pct | string | false | none | 1 standard deviation, calculate across all observations across all marketplaces - most commonly industry accepted view of long term volatility |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Broker Daily Stats CA Request
{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Broker Daily Stats CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
brokers | [string] | false | none | Identifies the broker ID. For eg. [90, 80] or ["ALL_BROKERS"] for fetching all the brokers. Optional field, by default its ["ALL_BROKERS"] |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Broker Daily Stats CA Response
{
"data": [
{
"broker": "string",
"count_buy": 0,
"count_sell": 0,
"date_string": "string",
"symbol": "string",
"value_buy": 0,
"value_sell": 0,
"volume_block_buy": 0,
"volume_block_sell": 0,
"volume_buy": 0,
"volume_cross_buy": 0,
"volume_cross_sell": 0,
"volume_dark_buy": 0,
"volume_dark_sell": 0,
"volume_moc_buy": 0,
"volume_moc_sell": 0,
"volume_moo_buy": 0,
"volume_moo_sell": 0,
"volume_odd_lot_buy": 0,
"volume_odd_lot_sell": 0,
"volume_postmarket_buy": 0,
"volume_postmarket_sell": 0,
"volume_premarket_buy": 0,
"volume_premarket_sell": 0,
"volume_sell": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Broker Daily Stats CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Broker Daily Stats CA responses object |
» broker | string | false | none | Identifier of the broker |
» count_buy | number | false | none | For each trading day, total buy count attributable to each broker |
» count_sell | number | false | none | For each trading day, total sell count attributable to each broker |
» date_string | string | false | none | Identifies the local date |
» symbol | string | false | none | Ticker symbol of the security |
» value_buy | number | false | none | For each trading day, total buy value attributable to each broker |
» value_sell | number | false | none | For each trading day, total sell value attributable to each broker |
» volume_block_buy | number | false | none | Total number of shares traded in blocks attributable to each broker on buy side, Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000, If symbol contains NT, NO, NS, DB, WA, WR, WS or WT then abs(volume)/10 >= 10000 and abs (value)/100 >= 100000 |
» volume_block_sell | number | false | none | Total number of shares traded in blocks attributable to each broker on sell side, Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000, If symbol contains NT, NO, NS, DB, WA, WR, WS or WT then abs(volume)/10 >= 10000 and abs (value)/100 >= 100000 |
» volume_buy | number | false | none | For each trading day, total buy volume attributable to each broker |
» volume_cross_buy | number | false | none | Volume for trades with trade conditon flag - P, S, X, C, O, G V, I attributable to each broker on buy side |
» volume_cross_sell | number | false | none | Volume for trades with trade conditon flag - P, S, X, C, O, G V, I attributable to each broker on sell side |
» volume_dark_buy | number | false | none | Dark Volume by symbol each day attributable to each broker on buy side - based on trade condition flag |
» volume_dark_sell | number | false | none | Dark Volume by symbol each day attributable to each broker on sell side - based on trade condition flag |
» volume_moc_buy | number | false | none | For each trading day, total closing auction volume inferred as trades flagged as MOC trades attributable to each broker on buy side. Excludes all crosses |
» volume_moc_sell | number | false | none | For each trading day, total closing auction volume inferred as trades flagged as MOC trades attributable to each broker on sell side. Excludes all crosses |
» volume_moo_buy | number | false | none | For each trading day, total opening auction volume attributable to each broker on buy side. MOO volume is inferred as the volume in the first 10 milliseconds after 9:30 am EST excluding all crosses |
» volume_moo_sell | number | false | none | For each trading day, total opening auction volume attributable to each broker on sell side. MOO volume is inferred as the volume in the first 10 milliseconds after 9:30 am EST excluding all crosses |
» volume_odd_lot_buy | number | false | none | For each trading day, total odd lot volume across all venues attributable to each broker on buy side |
» volume_odd_lot_sell | number | false | none | For each trading day, total odd lot volume across all venues attributable to each broker on sell side |
» volume_postmarket_buy | number | false | none | For each trading day, total buy volume attributable to each buy broker between 4:00 pm and 5:00 pm EST |
» volume_postmarket_sell | number | false | none | For each trading day, total sell volume attributable to each buy broker between 4:00 pm and 5:00 pm EST} |
» volume_premarket_buy | number | false | none | For each trading day, total buy volume attributable to each buy broker between 8:00 am and 9:30 am EST |
» volume_premarket_sell | number | false | none | For each trading day, total sell volume attributable to each buy broker between 8:00 am and 9:30 am EST |
» volume_sell | number | false | none | For each trading day, total sell volume attributable to each broker |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Broker Liquidity CA Request
{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Broker Liquidity CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
brokers | [string] | false | none | Identifies the broker ID. For eg. [90, 80] or ["ALL_BROKERS"] for fetching all the brokers. Optional field, by default its ["ALL_BROKERS"] |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Broker Liquidity CA Response
{
"data": [
{
"asksize10b_impact": 0,
"asksize25b_impact": 0,
"askvalue10b_impact": 0,
"askvalue25b_impact": 0,
"avgnbb_value": 0,
"avgnbb_volume": 0,
"avgnbo_value": 0,
"avgnbo_volume": 0,
"bidsize10b_impact": 0,
"bidsize25b_impact": 0,
"bidvalue10b_impact": 0,
"bidvalue25b_impact": 0,
"broker": "string",
"date_string": "string",
"pct_time_2sides_avail": 0,
"pct_time_ask_10b_deep": 0,
"pct_time_ask_25b_deep": 0,
"pct_time_atnbb": 0,
"pct_time_atnbo": 0,
"pct_time_bid_10b_deep": 0,
"pct_time_bid_25b_deep": 0,
"pct_time_bidask_100k_deep": 0,
"pct_time_bidask_1m_deep": 0,
"pct_time_bidask_200k_deep": 0,
"pct_time_bidask_25k_deep": 0,
"pct_time_bidask_500k_deep": 0,
"pct_time_bidask_50k_deep": 0,
"sprd_100k_bps": 0,
"sprd_1m_bps": 0,
"sprd_200k_bps": 0,
"sprd_25k_bps": 0,
"sprd_500k_bps": 0,
"sprd_50k_bps": 0,
"sprd_tob_bps": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Broker Liquidity CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Broker Liquidity - CA responses object |
» asksize10b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until 10 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until 10 bps. |
» asksize25b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until 25 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until 25 bps. |
» askvalue10b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 10 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until at least 10 bps. |
» askvalue25b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 25 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until at least 25 bps. |
» avgnbb_value | number | false | none | Time-weighted value at Market NBB |
» avgnbb_volume | number | false | none | Time-weighted volume at Market NBB |
» avgnbo_value | number | false | none | Time-weighted volume at Market NBO |
» avgnbo_volume | number | false | none | Time-weighted value at Market NBO |
» bidsize10b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until 10 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until 10 bps. |
» bidsize25b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until 25 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until 25 bps. |
» bidvalue10b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 10 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until at least 10 bps. |
» bidvalue25b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 25 bps away across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until at least 25 bps. |
» broker | string | false | none | Identifier of the broker |
» date_string | string | false | none | Identifies the local date |
» pct_time_2sides_avail | number | false | none | Percent time there was a valid two sided quote available on both the bid and the ask side. |
» pct_time_ask_10b_deep | number | false | none | Percent time valid ask was available at midpoint and up until 10 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_ask_25b_deep | number | false | none | Percent time valid ask was available at midpoint and up until 25 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_atnbb | number | false | none | % of time (time-weighted) that broker had a quote at the NBB |
» pct_time_atnbo | number | false | none | % of time (time-weighted) that broker had a quote at the NBO |
» pct_time_bid_10b_deep | number | false | none | Percent time valid bid was available at midpoint and up until 10 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_bid_25b_deep | number | false | none | Percent time valid bid was available at midpoint and up until 25 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_bidask_100k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($100,000) available on both the bid and the ask side. |
» pct_time_bidask_1m_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($1,000,000) available on both the bid and the ask side. |
» pct_time_bidask_200k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($200,000) available on both the bid and the ask side. |
» pct_time_bidask_25k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($25,000) available on both the bid and the ask side. |
» pct_time_bidask_500k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($500,000) available on both the bid and the ask side. |
» pct_time_bidask_50k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($50,000) available on both the bid and the ask side. |
» sprd_100k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $100,000 order across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($100,000) was available on both the bid and ask side. |
» sprd_1m_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $1,000,000 order across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($1,000,000) was available on both the bid and ask side. |
» sprd_200k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $200,000 order across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($200,000) was available on both the bid and ask side. |
» sprd_25k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $25,000 order across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($25,000) was available on both the bid and ask side. |
» sprd_500k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $500,000 order across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($500,000) was available on both the bid and ask side. |
» sprd_50k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $50,000 order across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($50,000) was available on both the bid and ask side. |
» sprd_tob_bps | number | false | none | Volume weighted average spread (in bps) at dealer's top of book across all venues. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote was available on both the bid and ask side. |
» symbol | string | false | none | Ticker symbol of the security |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Broker Summary CA Request
{
"brokers": [
"string"
],
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Broker Summary CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
brokers | [string] | false | none | Identifies the broker ID. For eg. [90, 80] or ["ALL_BROKERS"] for fetching all the brokers. Optional field, by default its ["ALL_BROKERS"] |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Broker Summary CA Response
{
"data": [
{
"ask_ratio": 0,
"ask_value": 0,
"ask_volume": 0,
"bid_ratio": 0,
"bid_value": 0,
"bid_volume": 0,
"broker": 0,
"date_string": "string",
"notional": 0,
"spread": 0,
"spread_bps": 0,
"symbol": "string",
"time_period": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Broker Summary CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Broker Summary CA responses object |
» ask_ratio | number | false | none | Calculates the % of time where the broker had an ask in the book satisfying the level drilled. |
» ask_value | number | false | none | Time-weighted average of value quoted by the broker at or to the price level that satisfies the drilled depth level. |
» ask_volume | number | false | none | Time-weighted average of shares quoted by the broker at or to the price level that satisfies the drilled depth level. |
» bid_ratio | number | false | none | Calculates the % of time where the broker had a bid in the book satisfying the level drilled. |
» bid_value | number | false | none | Time-weighted average of value quoted by the broker at or to the price level that satisfies the drilled depth level. |
» bid_volume | number | false | none | Time-weighted average of shares quoted by the broker at or to the price level that satisfies the drilled depth level. |
» broker | integer | false | none | Identifies the broker ID |
» date_string | string | false | none | Identifies the local date |
» notional | integer | false | none | Identifies the notional amount the metrics are associated with. |
» spread | number | false | none | Difference in dollars of the bid and ask weighted by the value quoted at the price level(s) in the broker’s book where the drilled notional depth was achieved for each side. |
» spread_bps | number | false | none | Spread measured in basis points relative to the midpoint of the broker’s identified bid/ask for the brokers’ book snapshot, and subject to the drilled depth level. |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» time_period | string | false | none | Identifies the time period of the associated metrics. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Change Password Request
{
"confirmPassword": "string",
"email": "string",
"newPassword": "string",
"oldPassword": "string"
}
Change Password Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
confirmPassword | string | true | none | Re-enter new password |
string | true | none | User Email Id | |
newPassword | string | true | none | New password must be at least 8 characters in length or longer and must contain 1 lowercase alphabetical character, 1 uppercase alphabetical character, 1 numeric character, one special character |
oldPassword | string | true | none | Old password |
Daily Stats CA Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Daily Stats CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Daily Stats CA Response
{
"data": [
{
"avg_advolume30": 0,
"date_string": "string",
"first_observed_price": 0,
"fop_time_eastern": "string",
"fop_venue": "string",
"intraday_high": 0,
"intraday_low": 0,
"intraday_volatility_pct": 0,
"last_observed_price": 0,
"lop_time_eastern": "string",
"lop_venue": "string",
"symbol": "string",
"total_adjcount": 0,
"total_adjvalue": 0,
"total_adjvolume": 0,
"total_daily_value": 0,
"total_daily_volume": 0,
"total_primary_exchange_volume": 0,
"total_trade_count": 0,
"volume_block": 0,
"volume_cross": 0,
"volume_dark": 0,
"volume_moc": 0,
"volume_moo": 0,
"volume_odd_lot": 0,
"volume_post_market": 0,
"volume_pre_market": 0,
"vwap30": 0,
"vwap60": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Daily Stats CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Daily Stats CA responses object |
» avg_advolume30 | integer | false | none | Average per day traded volume excluding blocks, odd lots, crosses(i.e. , accounting for cancelled trades over the previous 30 calendar days |
» date_string | string | false | none | Identifies the local date |
» first_observed_price | number | false | none | The first board-lot trade as of standard open time (9:30 am) using logic: 1) Open auction price based on auction flag , 2) if no auction price occurrs, then take the first observed trade price on all marketplaces/ATS's, ignoring any pre-market trades (e.g. 8:00-9:30) |
» fop_time_eastern | string | false | none | The exchange-published timestamp (milliseconds or nanoseconds) from the FOP |
» fop_venue | string | false | none | The venue for which is supplying the FOP for that day |
» intraday_high | number | false | none | Intra-day high price across all venues between 9:30 am and 4:00 pm excluding oddlots excluding crosses |
» intraday_low | number | false | none | Intra-day low price across all venues between 9:30 am and 4:00 pm excluding oddlots excluding crosses |
» intraday_volatility_pct | number | false | none | 1 standard deviation, calculate across all observations across all marketplaces . For illiquid securities that trade infrequently, we will use mid-point for this calculation to circumvent the illquid issue, taking 1- minute snapshot to estimate 1-day volatility in percent |
» last_observed_price | number | false | none | The last board-lot trade as of standard close time (4:00 pm) using logic: 1) closing auction price, (MOC) 2) if no auction price occurrs, then take the last observed trade price on all marketplaces/ATS's, excluding any after-market/extended trading session trades (e.g. 4-5pm in Cda, 4-8pm in the US) |
» lop_time_eastern | string | false | none | The exchange-published timestamp (milliseconds or nanoseconds) from the LOP (e.g. 3:49 pm) |
» lop_venue | string | false | none | The venue which is supplying the LOP for that day |
» symbol | string | false | none | Ticker Symbol |
» total_adjcount | integer | false | none | For each trading day, Total adjusted count of trades adjusted for crosses, blocks and oddlots |
» total_adjvalue | number | false | none | For each trading day, Total adjusted value traded adjusted for crosses, blocks and oddlots |
» total_adjvolume | integer | false | none | For each trading day, Total adjusted volume adjusted for crosses, blocks and oddlots |
» total_daily_value | number | false | none | For each trading day, total traded value accounting for cancelled trades. Time coverage - 7:00 am EST to 5:00pm EST |
» total_daily_volume | number | false | none | For each trading day, total traded volume accounting for cancelled trades. Time coverage - 7:00 am EST to 5:00pm EST |
» total_primary_exchange_volume | number | false | none | For each trading day, total traded volume at primary exchange accounting for cancelled trades. Time coverage - 7:00 am EST to 5:00pm EST |
» total_trade_count | number | false | none | For each trading day, number of trades after accounting for cancelled trades. Time coverage - 7:00 am EST to 5:00pm EST |
» volume_block | integer | false | none | Total number of shares traded in blocks, Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000.If symbol contains NT, NO, NS, DB, WA, WR, WS or WT then abs(volume)/10 >= 10000 and abs (value)/100 >= 100000. Time coverage - 7:00 am EST to 5:00pm EST |
» volume_cross | number | false | none | Volume for trades with trade conditon flag - P, S, X, C, O, G V, I . Time coverage - 7:00 am EST to 5:00pm EST |
» volume_dark | integer | false | none | Trade volume flagged as Dark Trade as per trade condition marker. Time coverage - 7:00 am EST to 5:00pm EST |
» volume_moc | integer | false | none | For each trading day, total closing auction volume inferred as trades flagged as MOC trades, excluding all crosses |
» volume_moo | integer | false | none | For each trading day, total opening auction volume. MOO volume is inferred as the volume in the first 10 milliseconds after 9:30 am EST excluding all crosses |
» volume_odd_lot | integer | false | none | For each trading day, total odd lot volume across all venues. Time coverage - 7:00 am EST to 5:00pm EST |
» volume_post_market | number | false | none | For each trading day, total volume between 4:00 pm and 5:00 pm EST |
» volume_pre_market | number | false | none | For each trading day, total volume between 7:00 am and 9:30 am EST |
» vwap30 | number | false | none | Volume-weighted mean of price observations over previous 21 trading days, calculate across all observations across all marketplaces |
» vwap60 | number | false | none | Volume-weighted mean of price observations over previous 21 trading days, calculate across all observations across all marketplaces |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Daily Stats US Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Daily Stats US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Daily Stats US Response
{
"data": [
{
"avg_advolume30": 0,
"date_string": "string",
"first_observed_price": 0,
"fop_time_eastern": "string",
"fop_venue": "string",
"intraday_high": 0,
"intraday_low": 0,
"intraday_volatility_pct": 0,
"last_observed_price": 0,
"lop_time_eastern": "string",
"lop_venue": "string",
"symbol": "string",
"total_adjcount": 0,
"total_adjvalue": 0,
"total_adjvolume": 0,
"total_daily_value": 0,
"total_daily_volume": 0,
"total_trade_count": 0,
"volume_block": 0,
"volume_cross": 0,
"volume_moc": 0,
"volume_moo": 0,
"volume_odd_lot": 0,
"volume_post_market": 0,
"volume_pre_market": 0,
"vwap30": 0,
"vwap60": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Daily Stats US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Daily Stats US responses object |
» avg_advolume30 | number | false | none | Average per day traded volume excluding blocks, odd lots, crosses(i.e. , accounting for cancelled trades over the previous 30 calendar days |
» date_string | string | false | none | Identifies the local date |
» first_observed_price | number | false | none | The first board-lot trade as of standard open time (9:30 am) using logic: 1) Open auction price based on auction flag , 2) if no auction price occurrs, then take the first observed trade price on all marketplaces/ATS's, ignoring any pre-market trades |
» fop_time_eastern | string | false | none | The exchange-published timestamp (milliseconds or nanoseconds) from the FOP |
» fop_venue | string | false | none | The venue for which is supplying the FOP for that day |
» intraday_high | number | false | none | Intra-day high price across all venues between 9:30 and 16:00 excluding oddlots excluding crosses |
» intraday_low | number | false | none | Intra-day low price across all venues between 9:30 and 16:00 excluding oddlots excluding crosses |
» intraday_volatility_pct | number | false | none | 1 standard deviation, calculate across all observations across all marketplaces - will not be relevant for illiquid securities that trade infrequently --- will use mid-point for this calculation to circumvent the illquid issue, taking 1- minute snapshot to estimate 1-day volatility in percent |
» last_observed_price | number | false | none | The last board-lot trade as of standard close time (16:00) using logic: 1) closing auction price, (MOC) 2) if no auction price occurrs, then take the last observed trade price on all marketplaces/ATS's, ignoring any after-market/extended trading session trades (e.g.16:00 - 17:00 in Canada,16:00 -20:00 in the US) which are often mis-priced |
» lop_time_eastern | string | false | none | The exchange-published timestamp (milliseconds or nanoseconds) from the LOP |
» lop_venue | string | false | none | The venue for which is supplying the LOP for that day |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» total_adjcount | number | false | none | For each trading day during regular market session(9.30 - 16:00), Total adjusted count of trades adjusted for crosses, blocks and oddlots. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» total_adjvalue | number | false | none | For each trading day during regular market session(9.30 - 16:00), Total adjusted value traded adjusted for crosses, blocks and oddlots. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» total_adjvolume | number | false | none | For each trading day during regular market session(9.30 - 16:00), total adjusted volume adjusted for crosses, blocks and oddlots Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» total_daily_value | number | false | none | For each trading day, total traded value across all US venues account for cancelled trades during regular market session (9:30 - 16:00) |
» total_daily_volume | number | false | none | For each trading day, total traded volume across all US venues account for cancelled trades during regular market session (9:30 - 16:00) |
» total_trade_count | number | false | none | For each trading day, number of trades across all US venues account for cancelled trades during regular market session (9:30 - 16:00) |
» volume_block | number | false | none | Total number of shares traded in blocks Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» volume_cross | number | false | none | For each trading day, total cross volume across all venues during regular hours (09:30 - 16:00). Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» volume_moc | number | false | none | For each trading day, total closing auction volume inferred as trades flagged as MOC trades, excluding all crosses |
» volume_moo | number | false | none | For each trading day, total opening auction volume. MOO volume is inferred as the volume in the first 10 milliseconds after 9:30 EST excluding all crosses |
» volume_odd_lot | number | false | none | For each trading day, total odd lot volume across all venues during regular trading hours. Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» volume_post_market | number | false | none | For each trading day, total volume across all venues during postmarket hours (16:00 - 20:00). Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» volume_pre_market | number | false | none | For each trading day, total volume across all venues during pre-market hours (06:30 - 9:30). Exclude trade conditions that do not update cumulative volumes such as : M, Q, 9. |
» vwap30 | number | false | none | volume-weighted mean of price observations over previous 21 trading days, calculate across all observations across all marketplaces |
» vwap60 | number | false | none | volume-weighted mean of price observations over previous 42 trading days, calculate across all observations across all marketplaces |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Data Availability Request
{
"apiName": [
"OHLC CA"
],
"pageafter": 0
}
Data Availability Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
apiName | [string] | true | none | Name of specific API or "all" |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
Data Availability Response
{
"data": [
{
"apiName": "string",
"lastLoadDate": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Data Availability Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Data Availability API object |
» apiName | string | false | none | Name of the API for which data was loaded |
» lastLoadDate | string | false | none | Date when data was last loaded for the API |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Days To Cover Request
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Days To Cover Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Effective date for the data |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Effective date for the data |
Days To Cover Response
{
"data": [
{
"business_date": "string",
"days_to_cover_15": 0,
"days_to_cover_current": 0,
"days_to_cover_current_vs_90": 0,
"isin": "string",
"name": "string",
"symbol": "string"
}
]
}
Days To Cover Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Days to Cover responses object |
» business_date | string | false | none | Effective date for the data |
» days_to_cover_15 | number | false | none | Days to cover 15 calendar days ago = Short Interest / 15 day average ADTV) |
» days_to_cover_current | number | false | none | Current day's days to cover (It is a liquidity measure = Short Interest / 15 day average ADTV) |
» days_to_cover_current_vs_90 | number | false | none | The difference between days to cover for the last 15 calendar days and last 90 calendar days |
» isin | string | false | none | Security ID - ISIN |
» name | string | false | none | Security Name |
» symbol | string | false | none | Ticker Symbol |
Forgot Password Request
{
"email": "string"
}
Forgot Password Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
string | true | none | Email for forgot password |
Global Symbols Request
{
"columns": [
"timeseries_id"
],
"countrycode": "string",
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Global Symbols Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
countrycode | string | true | none | Identifies the country the security trades in |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Global Symbols Response
{
"data": [
{
"country_code": "string",
"currency": "string",
"cusip": "string",
"date_string": "string",
"exchange": "string",
"isin": "string",
"price_offset": 0,
"price_ratio": 0,
"primary_exchange": "string",
"rev_price_ratio": 0,
"security_type": "string",
"sedol": "string",
"shares_outstanding": 0,
"symbol": "string",
"timeseries_id": "string",
"year": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Global Symbols Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Global Symbols responses object |
» country_code | string | false | none | Identifies the country the security trades in |
» currency | string | false | none | ISO Currency Code |
» cusip | string | false | none | Identifies the nine character alphanumeric code that identifies a North American financial security for the purpose of facilitating clearing and settlement of trades. (This will only be available to client haveing licesne to access this column) |
» date_string | string | false | none | Identifies the local date |
» exchange | string | false | none | Identifies the trading venue |
» isin | string | false | none | ISIN code (global level identifier). (This will only be available to client haveing licesne to access this column) |
» price_offset | number | false | none | Identifies the dividend on the ex-dividend date (ex-dividend date can be isolated by searching for non-zero values) |
» price_ratio | number | false | none | Identifies the price ratio for splits (can be used for volume transformations as well) |
» primary_exchange | string | false | none | Identifies the exchange on which the security being issued has been listed |
» rev_price_ratio | number | false | none | Identifies the price ratio to adjust for splits going back in time (can be used for volume transformations as well) |
» security_type | string | false | none | Identifies the type of the security being issued |
» sedol | string | false | none | The UK National Security Identification Number. (This will only be available to client haveing licesne to access this column) |
» shares_outstanding | number | false | none | Identifies the number of shares outstanding |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» timeseries_id | string | false | none | Unique identifier for security, stays consistent across time even if the underlying symbol changes |
» year | string | false | none | Identifies the year |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Global Symbols Delta Request
{
"columns": [
"timeseries_id"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Global Symbols Delta Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Global Symbols Delta Response
{
"data": [
{
"date_string": "string",
"exchange": "string",
"new_cusip": "string",
"new_isin": "string",
"new_price_ratio": 0,
"new_primary_exchange": "string",
"new_rev_price_ratio": 0,
"new_sedol": "string",
"new_shares_outstanding": 0,
"new_symbol": "string",
"price_offset": 0,
"symbol": "string",
"timeseries_id": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Global Symbols Delta Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Global Symbols Delta responses object |
» date_string | string | false | none | Identifies the local date |
» exchange | string | false | none | Identifies the trading venue |
» new_cusip | string | false | none | Identifies the nine character alphanumeric code that identifies a North American financial security for the purpose of facilitating clearing and settlement of trades |
» new_isin | string | false | none | ISIN code (global level identifier) |
» new_price_ratio | number | false | none | Identifies the price ratio for splits (can be used for volume transformations as well) |
» new_primary_exchange | string | false | none | Identifies the exchange on which the security being issued has been listed |
» new_rev_price_ratio | number | false | none | Identifies the price ratio to adjust for splits going back in time (can be used for volume transformations as well) |
» new_sedol | string | false | none | The UK National Security Identification Number |
» new_shares_outstanding | number | false | none | Identifies the number of shares outstanding |
» new_symbol | string | false | none | Identifies the Ticker symbol of the security |
» price_offset | number | false | none | Identifies the dividend on the ex-dividend date (ex-dividend date can be isolated by searching for non-zero values) |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» timeseries_id | string | false | none | Unique identifier for security, stays consistent across time even if the underlying symbol changes |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Investor Flows CA
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Investor Flows CA
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Investor Flows CA
{
"data": [
{
"active_buy_participant_count_nonretail": 0,
"active_buy_participant_count_retail": 0,
"active_buy_shr_volume_nonretail": 0,
"active_buy_shr_volume_retail": 0,
"active_buy_trade_count_nonretail": 0,
"active_buy_trade_count_retail": 0,
"active_buy_value_volume_nonretail": 0,
"active_buy_value_volume_retail": 0,
"active_sell_participant_count_nonretail": 0,
"active_sell_participant_count_retail": 0,
"active_sell_shr_volume_nonretail": 0,
"active_sell_shr_volume_retail": 0,
"active_sell_trade_count_nonretail": 0,
"active_sell_trade_count_retail": 0,
"active_sell_value_volume_nonretail": 0,
"active_sell_value_volume_retail": 0,
"cusip": "string",
"date_string": "string",
"isin": "string",
"net_shr_volume_nonretail": 0,
"net_shr_volume_retail": 0,
"net_value_volume_nonretail": 0,
"net_value_volume_retail": 0,
"passive_buy_participant_count_nonretail": 0,
"passive_buy_participant_count_retail": 0,
"passive_buy_shr_volume_nonretail": 0,
"passive_buy_shr_volume_retail": 0,
"passive_buy_trade_count_nonretail": 0,
"passive_buy_trade_count_retail": 0,
"passive_buy_value_volume_nonretail": 0,
"passive_buy_value_volume_retail": 0,
"passive_sell_participant_count_nonretail": 0,
"passive_sell_participant_count_retail": 0,
"passive_sell_shr_volume_nonretail": 0,
"passive_sell_shr_volume_retail": 0,
"passive_sell_trade_count_nonretail": 0,
"passive_sell_trade_count_retail": 0,
"passive_sell_value_volume_nonretail": 0,
"passive_sell_value_volume_retail": 0,
"sedol": "string",
"symbol": "string",
"total_participant_count": 0,
"total_shr_volume": 0,
"total_trade_count": 0,
"total_value_volume": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Investor Flows CA
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Investor Flows CA responses object |
» active_buy_participant_count_nonretail | number | false | none | Total number of participants on buy side of active trades calculated for each trading day and categorized by non-retail investor type |
» active_buy_participant_count_retail | number | false | none | Total number of participants on buy side of active trades calculated for each trading day and categorized by retail investor type |
» active_buy_shr_volume_nonretail | number | false | none | Total number of shares on buy side of active trades calculated for each trading day and categorized by non-retail investor type |
» active_buy_shr_volume_retail | number | false | none | Total number of shares on buy side of active trades calculated for each trading day and categorized by retail investor type |
» active_buy_trade_count_nonretail | number | false | none | Total number of trades on buy side of active trades calculated for each trading day and categorized by non-retail investor type |
» active_buy_trade_count_retail | number | false | none | Total number of trades on buy side of active trades calculated for each trading day and categorized by retail investor type |
» active_buy_value_volume_nonretail | number | false | none | Total buy value of active trades calculated for each trading day and categorized by non-retail investor type |
» active_buy_value_volume_retail | number | false | none | Total buy value of active trades calculated for each trading day and categorized by retail investor type |
» active_sell_participant_count_nonretail | number | false | none | Total number of participants on sell side of active trades calculated for each trading day and categorized by non-retail investor type |
» active_sell_participant_count_retail | number | false | none | Total number of participants on sell side of active trades calculated for each trading day and categorized by retail investor type |
» active_sell_shr_volume_nonretail | number | false | none | Total number of shares on sell side of active trades calculated for each trading day and categorized by non-retail investor type |
» active_sell_shr_volume_retail | number | false | none | Total number of shares on sell side of active trades calculated for each trading day and categorized by retail investor type |
» active_sell_trade_count_nonretail | number | false | none | Total number of trades on sell side of active trades calculated for each trading day and categorized by non-retail investor type |
» active_sell_trade_count_retail | number | false | none | Total number of trades on sell side of active trades calculated for each trading day and categorized by retail investor type |
» active_sell_value_volume_nonretail | number | false | none | Total sell value of active trades calculated for each trading day and categorized by non-retail investor type |
» active_sell_value_volume_retail | number | false | none | Total sell value of active trades calculated for each trading day and categorized by retail investor type |
» cusip | string | false | none | CUSIP of the security |
» date_string | string | false | none | Identifies the local date |
» isin | string | false | none | ISIN of the security |
» net_shr_volume_nonretail | number | false | none | Total number of shares calculated for each trading day and categorized by non-retail investor type |
» net_shr_volume_retail | number | false | none | Total number of shares calculated for each trading day and categorized by retail investor type |
» net_value_volume_nonretail | number | false | none | Total value of shares calculated for each trading day and categorized by non-retail investor type |
» net_value_volume_retail | number | false | none | Total value of shares calculated for each trading day and categorized by retail investor type |
» passive_buy_participant_count_nonretail | number | false | none | Total number of participants on buy side of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_buy_participant_count_retail | number | false | none | Total number of participants on buy side of passive trades calculated for each trading day and categorized by retail investor type |
» passive_buy_shr_volume_nonretail | number | false | none | Total number of shares on buy side of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_buy_shr_volume_retail | number | false | none | Total number of shares on buy side of passive trades calculated for each trading day and categorized by retail investor type |
» passive_buy_trade_count_nonretail | number | false | none | Total number of trades on buy side of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_buy_trade_count_retail | number | false | none | Total number of trades on buy side of passive trades calculated for each trading day and categorized by retail investor type |
» passive_buy_value_volume_nonretail | number | false | none | Total buy value of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_buy_value_volume_retail | number | false | none | Total buy value of passive trades calculated for each trading day and categorized by retail investor type |
» passive_sell_participant_count_nonretail | number | false | none | Total number of participants on sell side of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_sell_participant_count_retail | number | false | none | Total number of participants on sell side of passive trades calculated for each trading day and categorized by retail investor type |
» passive_sell_shr_volume_nonretail | number | false | none | Total number of shares on sell side of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_sell_shr_volume_retail | number | false | none | Total number of shares on sell side of passive trades calculated for each trading day and categorized by retail investor type |
» passive_sell_trade_count_nonretail | number | false | none | Total number of trades on sell side of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_sell_trade_count_retail | number | false | none | Total number of trades on sell side of passive trades calculated for each trading day and categorized by retail investor type |
» passive_sell_value_volume_nonretail | number | false | none | Total sell value of passive trades calculated for each trading day and categorized by non-retail investor type |
» passive_sell_value_volume_retail | number | false | none | Total sell value of passive trades calculated for each trading day and categorized by retail investor type |
» sedol | string | false | none | SEDOL of the security |
» symbol | string | false | none | Ticker symbol of the security |
» total_participant_count | number | false | none | Total number of participants calculated for each trading day |
» total_shr_volume | number | false | none | Total number of shares calculated for each trading day |
» total_trade_count | number | false | none | Total number of trades calculated for each trading day |
» total_value_volume | number | false | none | Total value calculated for each trading day |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Issuers CA Request
{
"columns": [
"timeseries_id"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Issuers CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. start date of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Issuers CA Response
{
"data": [
{
"company_name": "string",
"cusip": "string",
"date_string": "string",
"fund_family": "string",
"interlisted_exchange": "string",
"is_etf": 0,
"is_fund_of_funds": "string",
"issue_list_date": "string",
"issue_long_name": "string",
"issue_short_name": "string",
"listing_exchange": "string",
"security_type": "string",
"segment": "string",
"symbol": "string",
"timeseries_id": "string",
"us_symbol": "string",
"year": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Issuers CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Issuers CA responses object |
» company_name | string | false | none | Name of the company issuing the security |
» cusip | string | false | none | Identifies the nine character alphanumeric code that identifies a North American financial security for the purpose of facilitating clearing and settlement of trades |
» date_string | string | false | none | Identifies the date on which the issue continued to be listed on the exchange |
» fund_family | string | false | none | Identifies the fund family an ETF belongs to |
» interlisted_exchange | string | false | none | Identifies the secondary listing exchange if the security is interlisted |
» is_etf | number | false | none | Flag for identifying if the security being issued is an etf or not |
» is_fund_of_funds | string | false | none | Boolean to identify if an ETF is a fund of funds |
» issue_list_date | string | false | none | Identifies the date the security was issued |
» issue_long_name | string | false | none | Entire name of the security |
» issue_short_name | string | false | none | Truncated name of the security being issued |
» listing_exchange | string | false | none | Identifies the exchange on which the security being issued has been listed |
» security_type | string | false | none | Identifies the type of the security being issued |
» segment | string | false | none | Identifies the segment (industry) of the security being issued |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
» timeseries_id | string | false | none | Unique identifier for security, stays consistent across time even if the underlying symbol changes |
» us_symbol | string | false | none | Identifies the ticker of the security on the US exchange |
» year | number | false | none | Identifies the year in which the record was added to the dataset |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Liquidity Summary CA Request
{
"columns": [
"date_string"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Liquidity Summary CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Liquidity Summary CA Response
{
"data": [
{
"date_string": "string",
"spread": 0,
"symbol": "string"
}
]
}
Liquidity Summary CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Liquidity Summary CA responses object |
» date_string | string | false | none | Identifies the local date |
» spread | number | false | none | Contains pre-calculated spread with the following specifications: 1) Metrics are calculated using the consolidated order book from all Canadian venues 2) The bid/ask is calculated as the volume weighted average price that would be realized assuming the execution of a $50,000 marketable sell/buy order 3)The effective spread is calculated at each one-second interval between 9:45 - 15:45 ET 4)The reported average bid-ask spread is computed by taking the time-weighted average of all one second effective spreads for each day. Covers trading activity across all Canadian marketplaces. Symbol coverage extends to all Canadian symbols as well. |
» symbol | string | false | none | Identifies the Ticker symbol of the security |
Liquidity Analytics CA Request
{
"columns": [
"symbol"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
Liquidity Analytics CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' (Due to the volume of the data, select only up to 90 days at a time e.g. 'startdate': '2020-06-01', 'enddate': '2020-08-29') |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Liquidity Analytics CA Response
{
"data": [
{
"asksize10b_impact": 0,
"asksize25b_impact": 0,
"askvalue10b_impact": 0,
"askvalue25b_impact": 0,
"bidsize10b_impact": 0,
"bidsize25b_impact": 0,
"bidvalue10b_impact": 0,
"bidvalue25b_impact": 0,
"date_string": "string",
"liquidity_score": 0,
"pct_time_ask_10b_deep": 0,
"pct_time_ask_25b_deep": 0,
"pct_time_bid_10b_deep": 0,
"pct_time_bid_25b_deep": 0,
"pct_time_bidask_100k_deep": 0,
"pct_time_bidask_1m_deep": 0,
"pct_time_bidask_200k_deep": 0,
"pct_time_bidask_25k_deep": 0,
"pct_time_bidask_500k_deep": 0,
"pct_time_bidask_50k_deep": 0,
"sprd_100k_bps": 0,
"sprd_1m_bps": 0,
"sprd_200k_bps": 0,
"sprd_25k_bps": 0,
"sprd_500k_bps": 0,
"sprd_50k_bps": 0,
"symbol": "string",
"time_wgt_askvalue10b_impact_component_score": 0,
"time_wgt_askvalue25b_impact_component_score": 0,
"time_wgt_bidvalue10b_impact_component_score": 0,
"time_wgt_bidvalue25b_impact_component_score": 0,
"time_wgt_sprd_100k_bps_component_score": 0,
"time_wgt_sprd_1m_bps_component_score": 0,
"time_wgt_sprd_200k_bps_component_score": 0,
"time_wgt_sprd_25k_bps_component_score": 0,
"time_wgt_sprd_500k_bps_component_score": 0,
"time_wgt_sprd_50k_bps_component_score": 0,
"venue": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Liquidity Analytics CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Liquidity Analytics CA responses object |
» asksize10b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until10 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until 10 bps. |
» asksize25b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until 25 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until 25 bps. |
» askvalue10b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 10 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until at least 10 bps. |
» askvalue25b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 25 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid ask was available up until at least 25 bps. |
» bidsize10b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until10 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until 10 bps. |
» bidsize25b_impact | number | false | none | Total number of shares of visible liquidity at midpoint up until 25 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until 25 bps. |
» bidvalue10b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 10 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until at least 10 bps. |
» bidvalue25b_impact | number | false | none | Total value of visible liquidity at midpoint up until at least 25 bps away across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid bid was available up until at least 25 bps. |
» date_string | string | false | none | Identifies the local date |
» liquidity_score | number | false | none | LiquidityScore aims to provide a simplified view into the amount of displayed liquidity at multiple price levels deep on each symbol. It draws from other reported fields in this table and uses a weighted average to create a summarized 1-5 scoring system, with 1 representing low levels of displayed liquidity, and 5 representing high levels of displayed liquidity. |
» pct_time_ask_10b_deep | number | false | none | Percent time valid ask was available at midpoint and up until 10 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_ask_25b_deep | number | false | none | Percent time valid ask was available at midpoint and up until 25 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_bid_10b_deep | number | false | none | Percent time valid bid was available at midpoint and up until 10 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_bid_25b_deep | number | false | none | Percent time valid bid was available at midpoint and up until 25 bps away from midpoint. Time range considered is 09:45 EST to 15:45 EST. |
» pct_time_bidask_100k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($100,000) available on both the bid and the ask side. |
» pct_time_bidask_1m_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($1,000,000) available on both the bid and the ask side. |
» pct_time_bidask_200k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($200,000) available on both the bid and the ask side. |
» pct_time_bidask_25k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($25,000) available on both the bid and the ask side. |
» pct_time_bidask_500k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($500,000) available on both the bid and the ask side. |
» pct_time_bidask_50k_deep | number | false | none | Percent time there was a valid two sided quote satisfying the notional amount ($50,000) available on both the bid and the ask side. |
» sprd_100k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $100,000 order across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($100,000) was available on both the bid and ask side. |
» sprd_1m_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $1,000,000 order across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($1,000,000) was available on both the bid and ask side. |
» sprd_200k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $200,000 order across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($200,000) was available on both the bid and ask side. |
» sprd_25k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $25,000 order across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($25,000) was available on both the bid and ask side. |
» sprd_500k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $500,000 order across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($500,000) was available on both the bid and ask side. |
» sprd_50k_bps | number | false | none | Volume weighted average spread (in bps) to execute at least a $50,000 order across all venues/each venue as per venue column. Averaged per minute from 09:45 EST to 15:45 EST when valid two-sided quote satisfying the notional amount ($50,000) was available on both the bid and ask side. |
» symbol | string | false | none | Ticker symbol of the security |
» time_wgt_askvalue10b_impact_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_askvalue25b_impact_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_bidvalue10b_impact_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_bidvalue25b_impact_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_sprd_100k_bps_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_sprd_1m_bps_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_sprd_200k_bps_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_sprd_25k_bps_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_sprd_500k_bps_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» time_wgt_sprd_50k_bps_component_score | number | false | none | Weighted score attributable to this component to be used in the Liquidty_Score field |
» venue | string | false | none | Venue for associated metrics. Consolidated view can be obtained under 'All' |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
MOCI CA Request
{
"columns": [
"date_string"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string",
"symbols": [
"string"
]
}
MOCI CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
MOCI CA Response
{
"data": [
{
"date_string": "string",
"farindicativeclosingprice": 0,
"imbalancereferenceprice": 0,
"imbalanceside": "string",
"imbalancevolume": 0,
"marketorderimbalanceside": "string",
"marketorderimbalancevolume": 0,
"nearindicativeclosingprice": 0,
"pairedvolume": 0,
"pricevariation": 0,
"seq": 0,
"symbol": "string",
"time": "string",
"time_nanos": 0,
"venue": "string"
}
]
}
MOCI CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | MOCI CA responses object |
» date_string | string | false | none | Date |
» farindicativeclosingprice | number | false | none | The calculated closing price that will maximize the number of shares matched based on closing interest only (MOC, LOC). This calculation excludes continuous market orders. |
» imbalancereferenceprice | number | false | none | TSX or TSXV Best-Bid-and-Offer (BBO) mid-point |
» imbalanceside | string | false | none | Side (buy or sell) of the Imbalance Volume |
» imbalancevolume | number | false | none | imbalance volume after matching off MOC market orders and MOC limit orders that are priced equal to or more aggressive than the Reference Price |
» marketorderimbalanceside | string | false | none | Side (buy or sell) of the Market Order Imbalance Volume |
» marketorderimbalancevolume | number | false | none | Indicates the share Imbalance when considering MOC orders only. Note this will not change from the Freeze period as MOC orders are not allowed after this time. |
» nearindicativeclosingprice | number | false | none | The calculated closing price that will maximize the number of shares matched based on on-close orders (MOC, LOC) and visible continuous market orders. Effectively, this is the price at which the closing print would occur at the time of publication. |
» pairedvolume | number | false | none | The number of MOC and LOC shares that are able be matched at the Reference Price |
» pricevariation | number | false | none | This field indicates the absolute value of the percentage of deviation of the Near Indicative Closing Price from the Reference Price. This will alert traders of symbols that may close outside of the volatility parameters and encourage offsetting liquidity. |
» seq | number | false | none | Sequence number of the message |
» symbol | string | false | none | Ticker of the TSX or TSXV-listed MOC-eligible security, which the imbalance message pertains to |
» time | string | false | none | Date time to the millisecond |
» time_nanos | number | false | none | Time portion down to the nano second |
» venue | string | false | none | The listing exchange identifier |
MX Daily Stats CA Request
{
"callputcode": "string",
"columns": [
"underlying_symbol"
],
"deltalowerlimit": 0,
"deltaupperlimit": 0,
"enddate": "string",
"expirationenddate": "string",
"expirationstartdate": "string",
"gammalowerlimit": 0,
"gammaupperlimit": 0,
"instrumentgroup": "string",
"instrumenttype": "string",
"pageafter": 0,
"startdate": "string",
"strikepricelowerlimit": 0,
"strikepriceupperlimit": 0,
"symbol": "string"
}
MX Daily Stats CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
callputcode | string | false | none | Identifies between Call Options and Put Options |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
deltalowerlimit | number | false | none | Lower limit for Delta |
deltaupperlimit | number | false | none | Upper limit for Delta |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
expirationenddate | string | false | none | Ending expiration date in YYYY-MM-DD |
expirationstartdate | string | false | none | Starting expiration date in YYYY-MM-DD |
gammalowerlimit | number | false | none | Lower limit for Gamma |
gammaupperlimit | number | false | none | Upper limit for Gamma |
instrumentgroup | string | false | none | Instrument Key |
instrumenttype | string | true | none | Identifies the type of instrument. Possible values are Future,EquityOption, Strategy, FutureOption |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. start date of 2020-09-01 will include data from 2020-09-01 to enddate |
strikepricelowerlimit | number | false | none | Lower limit of Strike Price of Option |
strikepriceupperlimit | number | false | none | Upper limit of Strike Price of Option |
symbol | string | true | none | Ticker symbol of the security. For eg. "AC" for Air Canada. Please note that "ALL_SYMBOLS" cannot be used with this API |
MX Daily Stats CA Response
{
"data": [
{
"call_put_code": "string",
"date_string": "string",
"delta": 0,
"expiration_date": "string",
"external_symbol": "string",
"gamma": 0,
"implied_vol_by_expiration": 0,
"implied_vol_extsymbol": 0,
"instrumentgroup": "string",
"instrumenttype": "string",
"last_ask_extsymbol": 0,
"last_bid_extsymbol": 0,
"last_observed_price_underlying": 0,
"last_price_extsymbol": 0,
"london_4pm_ask": 0,
"london_4pm_bid": 0,
"london_4pm_price": 0,
"open_interest": 0,
"option_input_price": 0,
"option_type": "string",
"putcallratio_byoi": 0,
"putcallratio_byvolume": 0,
"referenceprice": "string",
"rho": 0,
"roll_volume": 0,
"settlement_price": 0,
"strike_price": 0,
"theta": 0,
"trade_count": 0,
"trade_value": 0,
"trade_volume": 0,
"underlying_symbol": "string",
"vega": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
MX Daily Stats CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | TSX Daily Stats responses object |
» call_put_code | string | false | none | Identifies between Call Options and Put Options |
» date_string | string | false | none | Identifies the local date |
» delta | number | false | none | Identifies the change of option price with respect to $1 change in the underlying price |
» expiration_date | string | false | none | Expiration in YYYYMMDD |
» external_symbol | string | false | none | Symbol of the derivative instrument |
» gamma | number | false | none | Identifies the measures the rate of change of its delta given $1 move in the underlying. |
» implied_vol_by_expiration | number | false | none | Implied Volatility by Expiration |
» implied_vol_extsymbol | number | false | none | Implied Volatility by External Symbol |
» instrumentgroup | string | false | none | Instrument Key |
» instrumenttype | string | false | none | Identifies the type of instrument. Possible values are Future, EquityOption, Strategy, FutureOption |
» last_ask_extsymbol | number | false | none | Last ask price of external symbol |
» last_bid_extsymbol | number | false | none | Last bid price of external symbol |
» last_observed_price_underlying | number | false | none | Last observed price of underying security |
» last_price_extsymbol | number | false | none | Last price of external symbol |
» london_4pm_ask | number | false | none | The observed market-wide ask as at 4:00PM GMT or 11:00 ET / 12:00 EST to be used by European firms who are marking-to-market |
» london_4pm_bid | number | false | none | The observed market-wide bid as at 4:00PM GMT or 11:00 ET / 12:00 EST to be used by European firms who are marking-to-market |
» london_4pm_price | number | false | none | The observed market-wide price as at 4:00PM GMT or 11:00 ET / 12:00 EST to be used by European firms who are marking-to-market |
» open_interest | integer | false | none | Total number of outstanding derivative contracts that have not been settled for an asset. |
» option_input_price | number | false | none | Option price used as input for greeks and Implied Volatility calculation |
» option_type | string | false | none | Identifies between American and European Options |
» putcallratio_byoi | number | false | none | Put Call Ratio by Open Interest |
» putcallratio_byvolume | number | false | none | Put Call Ratio by Volume |
» referenceprice | string | false | none | Reference Price |
» rho | number | false | none | Identifies the measures the change of the option price with respect to 1% increase in volatility |
» roll_volume | integer | false | none | Volume Activity for Roll Activity per instrument group. The metric is only available to futures roll actitivities identified by 'Strategy' in the 'intrumenttype' column. |
» settlement_price | number | false | none | Settlement Price |
» strike_price | number | false | none | Strike Price of Option |
» theta | number | false | none | Identifies the measures the loss of the option value with passage of one day |
» trade_count | integer | false | none | For each trading day, number of trades during regular market session (9:30 am to 4:00 pm) |
» trade_value | number | false | none | For each trading day, trade value during regular market session (9:30 am to 4:00 pm) |
» trade_volume | integer | false | none | For each trading day, trade volume during regular market session (9:30 am to 4:00 pm) |
» underlying_symbol | string | false | none | Underlying Symbol (if applicable) For SSF: ticker of the Underlying Stock or ETF |
» vega | number | false | none | Identifies the measures the change of the option price with respect to 100 bp increase in interest rate |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
North American Buybacks Request
{
"announce_date_end": "string",
"announce_date_start": "string",
"columns": [
"transaction_id"
],
"cusip": [
"string"
],
"effective_date_end": "string",
"effective_date_start": "string",
"expiry_date_end": "string",
"expiry_date_start": "string",
"isin": [
"string"
],
"last_updated_date_end": "string",
"last_updated_date_start": "string",
"pageafter": 0,
"symbol": [
"string"
],
"time_processed_end": "string",
"time_processed_start": "string"
}
North American Buybacks Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
announce_date_end | string | false | none | End Date to filter by Announce Date of Buyback. For eg. announce_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
announce_date_start | string | false | none | Start Date to filter by Announce Date of Buyback. For eg.announce_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
cusip | [string] | false | none | CUSIP of Security,multiple can be provided as an array. Not including an ID will return ALL IDs |
effective_date_end | string | false | none | End date to filter results based on the Buyback Effective Date. For eg.effective_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
effective_date_start | string | false | none | Start date to filter results based on the Buyback Effective Date. For eg. effective_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
expiry_date_end | string | false | none | End Date to Filter by Expiry Date of Buyback. For eg. expiry_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
expiry_date_start | string | false | none | Start Date to Filter by Expiry Date of Buyback. For eg. expiry_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end. NOTE: This filter will not include Transaction records, use time_processed filters to include this record type |
isin | [string] | false | none | ISIN of Security, multiple can be provided as an array. Not including an ID will return ALL IDs |
last_updated_date_end | string | false | none | End date to filter results based on the last date a record is updated. For eg. last_updated_date_end of 2024-08-31 will include data from specified date_start to 2024-08-31 |
last_updated_date_start | string | false | none | Start date to filter results based on the last date a record is updated. For eg. last_updated_date_start of 2024-08-31 will include data from 2024-08-31 to specified date_end |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
symbol | [string] | false | none | Symbol of Security, multiple symbols can be provided as an array. Not including an ID will return ALL IDs |
time_processed_end | string | true | none | Enddate to filter results based on the time the information was entered into internal systems. Time is UTC standard. For eg. time_processed_end of 2024-08-31 will include data from specified date_start to 2024-08-31 |
time_processed_start | string | true | none | Start date to filter results based on the time the information was entered into internal systems. Time is UTC standard. For eg. time_processed_start of 2024-08-31 will include data from 2024-08-31 to specified date_end |
North American Buybacks Response
{
"data": [
{
"amount": 0,
"announce_date": "string",
"currency": "string",
"current_percent_completed": 0,
"current_primary_country": "string",
"current_prorated_completed": "string",
"cusip": "string",
"effective_date": "string",
"end_date": "string",
"eom_total_shares": 0,
"eom_value": 0,
"expiry_date": "string",
"historical_5yr_percent_completed": 0,
"historical_5yr_subject_percent_announced": 0,
"ingest_day": "string",
"initial_subject_shares": 0,
"initial_subject_value": 0,
"intention_revisions": "string",
"isin": "string",
"last_initial_subject_shares": 0,
"last_initial_subject_value": 0,
"last_shares_in_issue_before_effective": 0,
"last_subject_end_date": "string",
"last_update_date": "string",
"latest_shares_in_issue": 0,
"monthly_report_period": "string",
"name": "string",
"percent_differance_in_outstanding_shares": 0,
"reported_price": 0,
"reported_transaction_max_date": "string",
"reported_transaction_min_date": "string",
"shares_purchased_in_mon": 0,
"split_adjustment_factor": 0,
"start_date": "string",
"subject_shares_percent_announced": 0,
"symbol": "string",
"time_processed_utc": "string",
"time_released_utc": "string",
"transaction_id": "string",
"transaction_note": "string",
"type": "string",
"usd_value": 0,
"value_purchased_in_mon": 0
}
]
}
North American Buybacks Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | North American Buybacks Response responses object |
» amount | number | false | none | Number of shares traded |
» announce_date | string | false | none | Date Buyback Program was announced for current effective period. If this date is unavailable TIME_PROCESSED_UTC will be used |
» currency | string | false | none | Currency of Transaction, USD or CAD |
» current_percent_completed | number | false | none | Percentage of Shares purchased compared to INITIAL_SUBJECT_SHARES for current announced buyback, if only Value is available Percentage of value purchased compared to IINITIAL_SUBJECT_VALUE |
» current_primary_country | string | false | none | Country Code of current primary exchange |
» current_prorated_completed | string | false | none | The prorated percentage completed for the current buyback, by month based off CURRENT_PERCENT_COMPLETED. If Monthly Report Period is the same month as Expiry Date this value will be the same as CURRENT_PERCENT_COMPLETED |
» cusip | string | false | none | Security ID - CUSIP |
» effective_date | string | false | none | Buy back program Start Date, and for US +1yr from last Effective Date for open-ended buyback program (open-ended means no End Date was provided for the buyback). If this date is unavailable TIME_RELEASED_UTC will be used. If both dates are unavailable TIME_PROCESSED_UTC will be used |
» end_date | string | false | none | Reported end of the intention period |
» eom_total_shares | number | false | none | Latest total number of shares accumulated between EFFECTIVE_DATE and EXPIRY_DATE for MONTHLY_REPORT_PERIOD |
» eom_value | number | false | none | Latest total value of shares accumulated between EFFECTIVE_DATE and EXPIRY_DATE for MONTHLY_REPORT_PERIOD |
» expiry_date | string | false | none | End Date for current Buyback Program, or for open-ended US Buybacks 1 year from the last Effective Date (open-ended means no End Date was provided for the buyback) |
» historical_5yr_percent_completed | number | false | none | Average CURRENT_PERCENT_COMPLETED value on EXPIRY_DATE, over the last 5 years |
» historical_5yr_subject_percent_announced | number | false | none | The average percentage of shares in issue that were eligible for purchase for the last 5 years |
» ingest_day | string | false | none | Date the information was received for API data load |
» initial_subject_shares | number | false | none | Initial number of shares eligible for purchase in current buyback |
» initial_subject_value | number | false | none | Initial value eligible for purchase in current buyback |
» intention_revisions | string | false | none | Text notification of revisions to existing buyback progam |
» isin | string | false | none | Security ID - ISIN; Only available for users with ISIN Licensing |
» last_initial_subject_shares | number | false | none | Number of shares eligible to be purchased for previous buyback |
» last_initial_subject_value | number | false | none | Value of shares eligible to be purchased for previous buyback |
» last_shares_in_issue_before_effective | number | false | none | Last shares in issue repoted prior to most recent EFFECTIVE_DATE |
» last_subject_end_date | string | false | none | Last EXPIRY_DATE for previous buyback. (Rolling 1-yr periods used for open-ended programs) |
» last_update_date | string | false | none | Date when last update was received for record |
» latest_shares_in_issue | number | false | none | Most recent number of shares in issue reported |
» monthly_report_period | string | false | none | Report effective month, based on file issuance. All monthly activity based on this period |
» name | string | false | none | Company Name |
» percent_differance_in_outstanding_shares | number | false | none | Percentage change of LAST_SHARES_IN_ISSUE_BEFORE_EFFECTIVE to LATEST_SHARES_IN_ISSUE |
» reported_price | number | false | none | Reported Price of Transaction, denominated in Currency of Transaction |
» reported_transaction_max_date | string | false | none | Latest Date of the period traded for Transaction |
» reported_transaction_min_date | string | false | none | Earliest Date of the period traded for Transaction |
» shares_purchased_in_mon | number | false | none | Sum of shares in Transactions where REPORTED_TRANSACTION_MAX_DATE falls within month of MONTHLY_REPORT_PERIOD |
» split_adjustment_factor | number | false | none | Multiplier which can be applied to 'Amount' field to account for subsequent corporate action. This is a forward looking field, adjustment factors are added for Corporate actions after the trade |
» start_date | string | false | none | Reported start of the intention period |
» subject_shares_percent_announced | number | false | none | The percentage of shares in issue which are eligible for purchase for current buyback |
» symbol | string | false | none | Security Ticker Symbol |
» time_processed_utc | string | false | none | Time the information was entered into internal systems. Time is UTC standard |
» time_released_utc | string | false | none | Time the announcement first appeared on a Regulatory News Service or other disclosure system and became available to the market. Time stated is UTC standard |
» transaction_id | string | false | none | Identifier for record |
» transaction_note | string | false | none | Free text which explains further details about the trade when available |
» type | string | false | none | Record Type |
» usd_value | number | false | none | USD value of Transactions, currency conversion rates are updated daily and values are calculated at rate prevailing on the trade date |
» value_purchased_in_mon | number | false | none | Sum of value in Transactions where REPORTED_TRANSACTION_MAX_DATE falls within month of MONTHLY_REPORT_PERIOD |
Short Interest Original Request
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Short Interest Original Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Effective date for the data |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Effective date for the data |
Short Interest Original Response
{
"data": [
{
"bbgid": "string",
"bid_rate": 0,
"business_date": "string",
"crowded_score": 0,
"dailymtmpl": 0,
"dailynetmtmpl": 0,
"daystocover10day": 0,
"daystocover30day": 0,
"daystocover90day": 0,
"figi": "string",
"indicativeavailability": 0,
"isin": "string",
"last_rate": 0,
"name": "string",
"offer_rate": 0,
"s3float": 0,
"s3sipctfloat": 0,
"s3utilization": 0,
"sedol": "string",
"short_interest": 0,
"short_momentum": 0,
"shortinterestnotional": 0,
"shortinterestpct": 0,
"squeeze_risk": 0,
"ticker": "string",
"volume": 0
}
]
}
Short Interest Original Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | short interest original responses object |
» bbgid | string | false | none | Security ID - Bloomberg ID |
» bid_rate | number | false | none | Market composite lending fee earned for existing shares on loan by long holders |
» business_date | string | false | none | Effective date for the data |
» crowded_score | number | false | none | S3's proprietary multi-factor model which ranks the short side crowdedness of a security based on its short interest, float, stock loan liquidity and trading liquidity |
» dailymtmpl | number | false | none | Daily Mark to Market Profit and Loss for a stock factoring in the price change and SI |
» dailynetmtmpl | number | false | none | Daily Net Mark to Market Profit and Loss for a stock factoring in price change, SI and borrow financing cost |
» daystocover10day | number | false | none | It is a liquidity measure = Short Interest / 10 day average ADTV |
» daystocover30day | number | false | none | It is a liquidity measure = Short Interest / 30 day average ADTV |
» daystocover90day | number | false | none | It is a liquidity measure = Short Interest / 90 day average ADTV |
» figi | string | false | none | Security ID - FIGI |
» indicativeavailability | number | false | none | S3 projected available lendable quantity |
» isin | string | false | none | Security ID - ISIN |
» last_rate | number | false | none | Market composite lending fee earned for incremental shares loaned on that date (Spot Rate) |
» name | string | false | none | Security Name |
» offer_rate | number | false | none | Market composite financing fee paid for existing short positions |
» s3float | number | false | none | The number of tradable shares including synthetic longs created by short selling. |
» s3sipctfloat | number | false | none | Real-time short interest projection divided by the S3 float. |
» s3utilization | number | false | none | Real-time short divided by Total Lendable supply |
» sedol | string | false | none | Security ID - SEDOL |
» short_interest | number | false | none | Real-time short interest expressed in shares |
» short_momentum | number | false | none | The momentum indicator measures daily shorting and covering events relative to the market float |
» shortinterestnotional | number | false | none | ShortInterest * Price (USD) |
» shortinterestpct | number | false | none | Real-time short interest expressed as a percentage of equity float. |
» squeeze_risk | number | false | none | S3's proprietary multi-factor model which ranks the potential short squeezability of a security based on its short interest, float, stock loan liquidity, trading liquidity and mark-to-market profitability |
» ticker | string | false | none | Ticker Symbol |
» volume | number | false | none | Its average daily trading volume. |
Pac Request
{
"columns": [
"date_string"
],
"enddate": "string",
"id": [
"string"
],
"pageafter": 0,
"startdate": "string"
}
Pac Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
id | [string] | true | none | Unique company ID or ["ALL_IDS"] for fetching all the companies. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
Pac Response
{
"data": [
{
"backward_div_ratio": 0,
"backward_split_ratio": 0,
"cash_div_ratio": 0,
"currency": "string",
"cusip": "string",
"date_string": "string",
"forward_div_ratio": 0,
"forward_split_ratio": 0,
"id": "string",
"listing_exchange": "string",
"split_ratio": 0,
"symbol": "string"
}
]
}
Pac Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Price Adjustment Curve responses object |
» backward_div_ratio | number | false | none | Backward Dividend Ratio |
» backward_split_ratio | number | false | none | Backward Split Ratio |
» cash_div_ratio | number | false | none | Cash dividend Ratio |
» currency | string | false | none | Currency; identifies the adjustment factor for dual listed companies |
» cusip | string | false | none | Cusip Identifier |
» date_string | string | false | none | Date |
» forward_div_ratio | number | false | none | Forward Dividend Ratio |
» forward_split_ratio | number | false | none | Forward Split Ratio |
» id | string | false | none | Unique Company ID of the ticker |
» listing_exchange | string | false | none | Primary listing exchange |
» split_ratio | number | false | none | Split Ratio |
» symbol | string | false | none | Ticker symbol |
Pacexplain Request
{
"columns": [
"date_string"
],
"enddate": "string",
"id": [
"string"
],
"pageafter": 0,
"startdate": "string"
}
Pacexplain Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
id | [string] | true | none | Unique company ID or ["ALL_IDS"] for fetching all the companies. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. startdate of 2020-09-01 will include data from 2020-09-01 to enddate |
Pacexplain Response
{
"data": [
{
"currency": "string",
"date_string": "string",
"factor": 0,
"id": "string",
"sources": "string",
"symbol": "string",
"type": "string"
}
]
}
Pacexplain Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | PAC EXPLAIN responses object |
» currency | string | false | none | Currency for the Dividend |
» date_string | string | false | none | Date |
» factor | number | false | none | Adjustment Factor calculated based on factor type |
» id | string | false | none | Unique Company ID of the ticker |
» sources | string | false | none | Indicates the source and value of datapoints used to calculate the adjustment factor. |
» symbol | string | false | none | Ticker Symbol |
» type | string | false | none | Adjustment factor type (Cash Dividend, Split) |
Percent Float Request
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Percent Float Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Effective date for the data |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Effective date for the data |
Percent Float Response
{
"data": [
{
"business_date": "string",
"isin": "string",
"name": "string",
"pct_float_15": 0,
"pct_float_current": 0,
"pct_float_current_vs_90": 0,
"symbol": "string"
}
]
}
Percent Float Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Percent Float responses object |
» business_date | string | false | none | Effective date for the data |
» isin | string | false | none | Security ID - ISIN |
» name | string | false | none | Security Name |
» pct_float_15 | number | false | none | Percent float for the last 15 calendar days |
» pct_float_current | number | false | none | Current day's percent float |
» pct_float_current_vs_90 | number | false | none | The difference between percent float for the current day and last 90 calendar days |
» symbol | string | false | none | Ticker Symbol |
Quotes - 1min CA Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Quotes - 1min CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Quotes - 1min CA Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closeasksize": 0,
"closebartime": "string",
"closebidprice": 0,
"closebidsize": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openasksize": 0,
"openbartime": "string",
"openbidprice": 0,
"openbidsize": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Quotes - 1min CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Quotes - 1min CA responses object |
» barstarttime | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC). The minute bars format is HHMM. Example: One minute bar 1104 is from time greater than 110400.000 to 110459.999 |
» closeaskprice | number | false | none | NBBO Ask Price at bar Close |
» closeasksize | number | false | none | Total Size from all Exchange with Close Ask Price |
» closebartime | string | false | none | Close Time of the Bar, for example one minute: 11:03:59.999 |
» closebidprice | number | false | none | NBBO Bid Price at bar Close |
» closebidsize | number | false | none | Total Size from all Exchange with Close Bid Price |
» date_string | string | false | none | Local Date |
» highbidprice | number | false | none | Highest NBBO Bid Price of barPrice of Highest Trade in the associated time bin |
» lowaskprice | number | false | none | Lowest NBBO Ask price of bar |
» numquotes | number | false | none | Number of Quotes in associated time bin |
» openaskprice | number | false | none | NBBO Ask Price as of bar Open |
» openasksize | number | false | none | Total Size from all Exchange with OpenAskPrice |
» openbartime | string | false | none | Open Time of the Bar, for example one minute: 11:03:00.000 |
» openbidprice | number | false | none | NBBO Bid Price as of bar Open |
» openbidsize | number | false | none | Total Size from all Exchanges with Open Bid Price |
» symbol | string | false | none | Ticker symbol of the security |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Quotes - 1min US Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Quotes - 1min US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Quotes - 1min US Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closebartime": "string",
"closebidprice": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openbartime": "string",
"openbidprice": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Quotes - 1min US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Quotes - 1min US responses object |
» barstarttime | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC). The minute bars format is HHMM. Example: One minute bar 1104 is from time greater than 110400.000 to 110459.999 |
» closeaskprice | number | false | none | NBBO Ask Price at bar Close |
» closebartime | string | false | none | Close Time of the Bar, for example one minute: 11:03:59.999 |
» closebidprice | number | false | none | NBBO Bid Price at bar Close |
» date_string | string | false | none | Local Date |
» highbidprice | number | false | none | Highest NBBO Bid Price of barPrice of Highest Trade in the associated time bin |
» lowaskprice | number | false | none | Lowest NBBO Ask price of bar |
» numquotes | number | false | none | Number of Quotes in associated time bin |
» openaskprice | number | false | none | NBBO Ask Price as of bar Open |
» openbartime | string | false | none | Open Time of the Bar, for example one minute: 11:03:00.000 |
» openbidprice | number | false | none | NBBO Bid Price as of bar Open |
» symbol | string | false | none | Ticker symbol of the security |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Quotes - 1sec CA Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}
Quotes - 1sec CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbol | string | true | none | Ticker symbol of the security. For eg. "AC" for Air Canada or "ALL_SYMBOLS" for fetching all the symbols |
Quotes - 1sec CA Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closeasksize": 0,
"closebartime": "string",
"closebidprice": 0,
"closebidsize": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openasksize": 0,
"openbartime": "string",
"openbidprice": 0,
"openbidsize": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Quotes - 1sec CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Quotes - 1sec CA responses object |
» barstarttime | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC). The minute bars format is HHMM. Example: One minute bar 1104 is from time greater than 110400.000 to 110459.999 |
» closeaskprice | number | false | none | NBBO Ask Price at bar Close |
» closeasksize | number | false | none | Total Size from all Exchange with Close Ask Price |
» closebartime | string | false | none | Close Time of the Bar, for example one minute: 11:03:59.999 |
» closebidprice | number | false | none | NBBO Bid Price at bar Close |
» closebidsize | number | false | none | Total Size from all Exchange with Close Bid Price |
» date_string | string | false | none | Local Date |
» highbidprice | number | false | none | Highest NBBO Bid Price of barPrice of Highest Trade in the associated time bin |
» lowaskprice | number | false | none | Lowest NBBO Ask price of bar |
» numquotes | number | false | none | Number of Quotes in associated time bin |
» openaskprice | number | false | none | NBBO Ask Price as of bar Open |
» openasksize | number | false | none | Total Size from all Exchange with OpenAskPrice |
» openbartime | string | false | none | Open Time of the Bar, for example one minute: 11:03:00.000 |
» openbidprice | number | false | none | NBBO Bid Price as of bar Open |
» openbidsize | number | false | none | Total Size from all Exchanges with Open Bid Price |
» symbol | string | false | none | Ticker symbol of the security |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Quotes - 1sec US Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Quotes - 1sec US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Quotes - 1sec US Response
{
"data": [
{
"barstarttime": "string",
"closeaskprice": 0,
"closebartime": "string",
"closebidprice": 0,
"date_string": "string",
"highbidprice": 0,
"lowaskprice": 0,
"numquotes": 0,
"openaskprice": 0,
"openbartime": "string",
"openbidprice": 0,
"symbol": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
Quotes - 1sec US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Quotes - 1sec US responses object |
» barstarttime | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC). The minute bars format is HHMM. Example: One minute bar 1104 is from time greater than 110400.000 to 110459.999 |
» closeaskprice | number | false | none | NBBO Ask Price at bar Close |
» closebartime | string | false | none | Close Time of the Bar, for example one minute: 11:03:59.999 |
» closebidprice | number | false | none | NBBO Bid Price at bar Close |
» date_string | string | false | none | Local Date |
» highbidprice | number | false | none | Highest NBBO Bid Price of barPrice of Highest Trade in the associated time bin |
» lowaskprice | number | false | none | Lowest NBBO Ask price of bar |
» numquotes | number | false | none | Number of Quotes in associated time bin |
» openaskprice | number | false | none | NBBO Ask Price as of bar Open |
» openbartime | string | false | none | Open Time of the Bar, for example one minute: 11:03:00.000 |
» openbidprice | number | false | none | NBBO Bid Price as of bar Open |
» symbol | string | false | none | Ticker symbol of the security |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
RefreshToken
{
"refreshToken": "string"
}
RefreshToken
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
refreshToken | string | true | none | refresh Token received during authentication request |
Revoke Token Request
{
"token": "string",
"type": "string"
}
Revoke Token Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
token | string | true | none | access_token or refresh_token value that needs to be revoked |
type | string | true | none | access_token or refresh_token |
Short Interest Smoothened Request
{
"columns": [
"business_date"
],
"enddate": "string",
"pageafter": 0,
"startdate": "string"
}
Short Interest Smoothened Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Effective date for the data |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Effective date for the data |
Short Interest Smoothened Response
{
"data": [
{
"bbgid": "string",
"bid_rate": 0,
"business_date": "string",
"crowded_score": 0,
"dailymtmpl": 0,
"dailynetmtmpl": 0,
"daystocover10day": 0,
"daystocover30day": 0,
"daystocover90day": 0,
"figi": "string",
"indicativeavailability": 0,
"isin": "string",
"last_rate": 0,
"name": "string",
"offer_rate": 0,
"s3float": 0,
"s3sipctfloat": 0,
"s3utilization": 0,
"sedol": "string",
"short_interest": 0,
"short_momentum": 0,
"shortinterestnotional": 0,
"shortinterestpct": 0,
"squeeze_risk": 0,
"ticker": "string",
"volume": 0
}
]
}
Short Interest Smoothened Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | short interest smoothened responses object |
» bbgid | string | false | none | Security ID - Bloomberg ID |
» bid_rate | number | false | none | Market composite lending fee earned for existing shares on loan by long holders |
» business_date | string | false | none | Effective date for the data |
» crowded_score | number | false | none | S3's proprietary multi-factor model which ranks the short side crowdedness of a security based on its short interest, float, stock loan liquidity and trading liquidity |
» dailymtmpl | number | false | none | Daily Mark to Market Profit and Loss for a stock factoring in the price change and SI |
» dailynetmtmpl | number | false | none | Daily Net Mark to Market Profit and Loss for a stock factoring in price change, SI and borrow financing cost |
» daystocover10day | number | false | none | It is a liquidity measure = Short Interest / 10 day average ADTV |
» daystocover30day | number | false | none | It is a liquidity measure = Short Interest / 30 day average ADTV |
» daystocover90day | number | false | none | It is a liquidity measure = Short Interest / 90 day average ADTV |
» figi | string | false | none | Security ID - FIGI |
» indicativeavailability | number | false | none | S3 projected available lendable quantity |
» isin | string | false | none | Security ID - ISIN |
» last_rate | number | false | none | Market composite lending fee earned for incremental shares loaned on that date (Spot Rate) |
» name | string | false | none | Security Name |
» offer_rate | number | false | none | Market composite financing fee paid for existing short positions |
» s3float | number | false | none | The number of tradable shares including synthetic longs created by short selling. |
» s3sipctfloat | number | false | none | Real-time short interest projection divided by the S3 float. |
» s3utilization | number | false | none | Real-time short divided by Total Lendable supply |
» sedol | string | false | none | Security ID - SEDOL |
» short_interest | number | false | none | Real-time short interest expressed in shares |
» short_momentum | number | false | none | The momentum indicator measures daily shorting and covering events relative to the market float |
» shortinterestnotional | number | false | none | ShortInterest * Price (USD) |
» shortinterestpct | number | false | none | Real-time short interest expressed as a percentage of equity float. |
» squeeze_risk | number | false | none | S3's proprietary multi-factor model which ranks the potential short squeezability of a security based on its short interest, float, stock loan liquidity, trading liquidity and mark-to-market profitability |
» ticker | string | false | none | Ticker Symbol |
» volume | number | false | none | Its average daily trading volume. |
TAQ NBBO CA Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}
TAQ NBBO CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:31:10.423 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:30:10.423 |
symbol | string | true | none | Ticker symbol of the security. For eg. "AC" for Air Canada or "ALL_SYMBOLS" for fetching all the symbols |
TAQ NBBO CA Response
{
"data": [
{
"bestask": 0,
"bestbid": 0,
"buy_broker": 0,
"date_string": "string",
"listing_exchange": "string",
"record_type": 0,
"sell_broker": 0,
"symbol": "string",
"totalasksize": 0,
"totalbidsize": 0,
"trade_condition": "string",
"trade_id": "string",
"trade_localseq": 0,
"trade_price": "string",
"trade_size": 0,
"trade_time": "string",
"trade_venue": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
TAQ NBBO CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | TAQ NBBO CA responses object |
» bestask | number | false | none | National Best Ask |
» bestbid | number | false | none | National Best Bid |
» buy_broker | integer | false | none | Identifies the broker on the buy side of the transaction |
» date_string | string | false | none | Local date |
» listing_exchange | string | false | none | Identifies the exchange on which the security has been listed |
» record_type | integer | false | none | Record type indicator:(1 = Trade,2 = Tick,3 = BBO_Quote,4 = Trade Correction,5 = Trade Cancel,6 = Trade non Regular) |
» sell_broker | integer | false | none | Identifies the broker on the sell side of the transaction |
» symbol | string | false | none | Ticker symbol of the security |
» totalasksize | integer | false | none | Total available national best ask volume from all venues |
» totalbidsize | integer | false | none | Total available national best bid volume from all venues |
» trade_condition | string | false | none | (0 - Exchange Not Eligible To Set Last Price (from Sep-2019),A- Conditionals Book Trade,B - Delayed Delivery Trade,C - Contingent Cross,D - Cash Today Trade,E - Non Board Lot Trade,F - Cash Trade,G - VWAP Cross,H - Contra Midpoint Only Trade (from 2018-06-04),I - Derivative-Related Cross,J - Regular Cross,K - Sets the Last Price ,L - Next Day Trade,M - Derivatives-Related Contingent Equity Trade,N - Future Trade,O - Basis Cross,P - Intentional Cross,Q - MOC Trade,R - Non-Resident,S - Special Trading Session Cross,T - Bulk Auction,V - National Cross,W - By-Pass Trade,X - Internal Cross,Y - Non Net Trade,Z - Dark Trade,) All trades that update the last price will contain trade condition |
» trade_id | string | false | none | Unique trade id |
» trade_localseq | integer | false | none | Used to sort trades on a sequential basis. It is used as a secondary filter after time and time_nanos (if available). |
» trade_price | string | false | none | Identifies the price of the trade |
» trade_size | integer | false | none | Identifies the size of the trade |
» trade_time | string | false | none | Identifies date, hours, minutes, seconds and milliseconds in the following format: ‘YYYY-MM-DD HH:MI:SS.Milliseconds. |
» trade_venue | string | false | none | Identifies the venue where the trade occurred |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
TAQ NBBO US Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
TAQ NBBO US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:31:10.423 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. Format includes hours, minutes, seconds and milliseconds in the following format: ‘HH:MI:SS.Milliseconds'. For eg. 15:30:10.423 |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
TAQ NBBO US Response
{
"data": [
{
"best_ask": 0,
"best_bid": 0,
"date_string": "string",
"record_type": 0,
"symbol": "string",
"time_nanos": 0,
"total_ask_size": 0,
"total_bid_size": 0,
"trade_condition": "string",
"trade_id": "string",
"trade_localseq": 0,
"trade_price": "string",
"trade_size": 0,
"trade_time": "string",
"trade_venue": "string",
"tradeunix": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
TAQ NBBO US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | TAQ NBBO US responses object |
» best_ask | number | false | none | National Best Ask |
» best_bid | number | false | none | National Best Bid |
» date_string | string | false | none | Local date |
» record_type | integer | false | none | Record type indicator:(1 = Trade,2 = Tick,3 = BBO_Quote,4 = Trade Correction,5 = Trade Cancel,6 = Trade non Regular) |
» symbol | string | false | none | Ticker symbol of the security |
» time_nanos | number | false | none | Identifies the nanosecond precision (nanosecond only) of the applicable timestamp |
» total_ask_size | integer | false | none | Total available national best ask volume from all venues |
» total_bid_size | integer | false | none | Total available national best bid volume from all venues |
» trade_condition | string | false | none | (0 - Exchange Not Eligible To Set Last Price (from Sep-2019),A- Conditionals Book Trade,B - Delayed Delivery Trade,C - Contingent Cross,D - Cash Today Trade,E - Non Board Lot Trade,F - Cash Trade,G - VWAP Cross,H - Contra Midpoint Only Trade (from 2018-06-04),I - Derivative-Related Cross,J - Regular Cross,K - Sets the Last Price ,L - Next Day Trade,M - Derivatives-Related Contingent Equity Trade,N - Future Trade,O - Basis Cross,P - Intentional Cross,Q - MOC Trade,R - Non-Resident,S - Special Trading Session Cross,T - Bulk Auction,V - National Cross,W - By-Pass Trade,X - Internal Cross,Y - Non Net Trade,Z - Dark Trade,) All trades that update the last price will contain trade condition |
» trade_id | string | false | none | Unique trade id |
» trade_localseq | integer | false | none | Used to sort trades on a sequential basis. It is used as a secondary filter after time and time_nanos (if available). |
» trade_price | string | false | none | Identifies the price of the trade |
» trade_size | integer | false | none | Identifies the size of the trade |
» trade_time | string | false | none | Identifies date, hours, minutes, seconds and milliseconds in the following format: ‘YYYY-MM-DD HH:MI:SS.Milliseconds. |
» trade_venue | string | false | none | Identifies the venue where the trade occurred |
» tradeunix | number | false | none | Identifies the trade time in UNIX timestamp |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Trade - 1min CA Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Trade - 1min CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Trade - 1min CA Response
{
"data": [
{
"barstarttime": "string",
"date_string": "string",
"firsttradeprice": 0,
"highbidprice": 0,
"lasttradeprice": "string",
"lowtradeprice": 0,
"numtrades": 0,
"numtradesexblock": 0,
"numtradesexint": 0,
"symbol": "string",
"value": 0,
"valueexblock": 0,
"valueexint": 0,
"volume": 0,
"volumeexblock": 0,
"volumeexint": 0,
"vwap": 0,
"vwapexblock": 0,
"vwapexint": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Trade - 1min CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Trade - 1min CA responses object |
» barstarttime | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC). The minute bars format is HHMM. Example: One minute bar 1104 is from time greater than 110400.000 to 110459.999 |
» date_string | string | false | none | Local Date |
» firsttradeprice | number | false | none | Price of First Trade in the associated time bin |
» highbidprice | number | false | none | Price of Highest Trade in the associated time bin |
» lasttradeprice | string | false | none | Price of Last Trade in the associated time bin |
» lowtradeprice | number | false | none | Price of Lowest Trade in the associated time bin |
» numtrades | number | false | none | Total number of trades |
» numtradesexblock | number | false | none | Total number of trades excluding blocks. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» numtradesexint | number | false | none | Total number of trades excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross. |
» symbol | string | false | none | Ticker Symbol of the security |
» value | number | false | none | Total Size from all Exchange with Close Bid Price |
» valueexblock | number | false | none | Total number of shares traded excluding blocks. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» valueexint | number | false | none | Total value traded excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross. |
» volume | number | false | none | Total number of shares traded |
» volumeexblock | number | false | none | NBBO Bid Price at bar Close |
» volumeexint | number | false | none | Total number of shares traded excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross. |
» vwap | number | false | none | Trade Volume weighted average price. Sum((Trade1Shares*Price)+(Trade2Shar es*Price)+…) /TotalShares. |
» vwapexblock | number | false | none | Trade Volume weighted average price excluding blocks. Sum((Trade1Shares*Price)+(Trade2Shar es*Price)+…) /TotalShares. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» vwapexint | number | false | none | Trade Volume weighted average price excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross. Sum((Trade1Shares*Price)+(Trade2Shar es*Price)+…) /TotalShares. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Trade - 1min US Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Trade - 1min US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. The minute bars format is HHMM. Example: 11:05 |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. The minute bars format is HHMM. Example: 11:04 |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Trade - 1min US Response
{
"data": [
{
"bin_end": "string",
"bin_start": "string",
"close": 0,
"date_string": "string",
"high": "string",
"low": 0,
"open": 0,
"symbol": "string",
"volume": 0,
"volume_ex_block": 0,
"vwap": 0,
"vwap_ex_block": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Trade - 1min US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Trade - 1min US) responses object |
» bin_end | string | false | none | Identifies timestamp at which one-minute time bin ends (UTC) |
» bin_start | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC) |
» close | number | false | none | Price of Last Trade in the associated time bin |
» date_string | string | false | none | Local Date |
» high | string | false | none | Price of Highest Trade in the associated time bin |
» low | number | false | none | Price of Lowest Trade in the associated time bin |
» open | number | false | none | Price of First Trade in the associated time bin |
» symbol | string | false | none | Ticker symbol of the security |
» volume | number | false | none | Total number of shares traded in the associated time bin |
» volume_ex_block | number | false | none | Total number of shares traded in the associated time bin excluding block trades defined as trades where (traded value > $500,000) OR (traded volume > 10,000 shares AND traded value > $100,000 ) |
» vwap | number | false | none | Trade Volume weighted average price Sum((Trade1Shares*Price)+(Trade2Shares*Price)+…) /TotalShares. |
» vwap_ex_block | number | false | none | Trade Volume weighted average price Sum((Trade1Shares*Price)+(Trade2Shares*Price)+…) /TotalShares excluding block trades defined as trades where (traded value > $500,000) OR (traded volume > 10,000 shares AND traded value > $100,000 ) |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Trade - 1sec CA Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"barstarttime"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbol": "string"
}
Trade - 1sec CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbol | string | true | none | Ticker symbol of the security. For eg. "AC" for Air Canada or "ALL_SYMBOLS" for fetching all the symbols |
Trade - 1sec CA Response
{
"data": [
{
"barstarttime": "string",
"date_string": "string",
"firsttradeprice": 0,
"hightradeprice": 0,
"lasttradeprice": 0,
"lowtradeprice": 0,
"numtrades": 0,
"numtradesexblock": 0,
"numtradesexint": 0,
"symbol": "string",
"value": 0,
"valueexblock": 0,
"valueexint": 0,
"volume": 0,
"volumeexblock": 0,
"volumeexint": 0,
"vwap": 0,
"vwapexblock": 0,
"vwapexint": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Trade - 1sec CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Trade - 1sec CA responses object |
» barstarttime | string | false | none | Identifies timestamp at which one-second time bin starts (EST). For second bars is HHMMSS. Example: One second bar 130302 is from time greater than 130302.000 to 130302.999. The second level granularity is optional. Time can be entered in minutes as well, for example 09:30 |
» date_string | string | false | none | Local Date |
» firsttradeprice | number | false | none | Price of First Trade in the associated time bin |
» hightradeprice | number | false | none | Price of Highest Trade in the associated time bin |
» lasttradeprice | number | false | none | Price of Last Trade in the associated time bin |
» lowtradeprice | number | false | none | Price of Lowest Trade in the associated time bin |
» numtrades | number | false | none | Total number of trades |
» numtradesexblock | number | false | none | Total number of trades excluding blocks. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» numtradesexint | number | false | none | Total number of trades excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross |
» symbol | string | false | none | Ticker Symbol of the security |
» value | number | false | none | Total value traded |
» valueexblock | number | false | none | Total value traded excluding blocks. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» valueexint | number | false | none | Total value traded excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross |
» volume | number | false | none | Total number of shares traded |
» volumeexblock | number | false | none | Total number of shares traded excluding blocks. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» volumeexint | number | false | none | Total number of shares traded excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross |
» vwap | number | false | none | Trade Volume weighted average price - Sum((Trade1Shares*Price)+(Trade2Shar es*Price)+…) /TotalShares |
» vwapexblock | number | false | none | Trade Volume weighted average price excluding blocks - Sum((Trade1Shares*Price)+(Trade2Shar es*Price)+…) /TotalShares. Block definition: abs(volume) >= 10,000 shares & abs(value) >= $100,000 |
» vwapexint | number | false | none | Trade Volume weighted average price excluding Intentional Crosses, Special Trading Session Cross, Internal Cross, Contingent Cross, VWAP Cross and National Cross - Sum((Trade1Shares*Price)+(Trade2Shar es*Price)+…) /TotalShares |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Trade - 1sec US Request
{
"adjusted": true,
"adjustedForDate": "string",
"columns": [
"symbol"
],
"datestring": "string",
"endtime": "string",
"pageafter": 0,
"starttime": "string",
"symbols": [
"string"
]
}
Trade - 1sec US Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
adjusted | boolean | false | none | Boolean value to check if the response should include adjusted value |
adjustedForDate | string | false | none | Date in EST for when the split data will be adjusted for. For eg. '2020-09-01'. In case this date is not provided, data is adjusted as of the current date |
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
datestring | string | true | none | Date in EST for when the data is required. For eg. '2020-09-01' |
endtime | string | false | none | Timestamp in EST till when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:03:02 and 13:03 are acceptable. |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
starttime | string | false | none | Starting timestamp in EST from when the data is required. For second bars the format is HHMMSS with seconds part being optional. For example, both the values 13:04:02 and 13:04 are acceptable. |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
Trade - 1sec US Response
{
"data": [
{
"bin_end": "string",
"bin_start": "string",
"close": 0,
"date_string": "string",
"high": "string",
"low": 0,
"open": 0,
"symbol": "string",
"volume": 0,
"volume_ex_block": 0,
"vwap": 0,
"vwap_ex_block": 0
}
],
"pageafter": 0,
"pagebefore": 0
}
Trade - 1sec US Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | Trade - 1sec US) responses object |
» bin_end | string | false | none | Identifies timestamp at which one-minute time bin ends (UTC) |
» bin_start | string | false | none | Identifies timestamp at which one-minute time bin starts (UTC) |
» close | number | false | none | Price of Last Trade in the associated time bin |
» date_string | string | false | none | Local Date |
» high | string | false | none | Price of Highest Trade in the associated time bin |
» low | number | false | none | Price of Lowest Trade in the associated time bin |
» open | number | false | none | Price of First Trade in the associated time bin |
» symbol | string | false | none | Ticker symbol of the security |
» volume | number | false | none | Total number of shares traded in the associated time bin |
» volume_ex_block | number | false | none | Total number of shares traded in the associated time bin excluding block trades defined as trades where (traded value > $500,000) OR (traded volume > 10,000 shares AND traded value > $100,000 ) |
» vwap | number | false | none | Trade Volume weighted average price Sum((Trade1Shares*Price)+(Trade2Shares*Price)+…) /TotalShares. |
» vwap_ex_block | number | false | none | Trade Volume weighted average price Sum((Trade1Shares*Price)+(Trade2Shares*Price)+…) /TotalShares excluding block trades defined as trades where (traded value > $500,000) OR (traded volume > 10,000 shares AND traded value > $100,000 ) |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
TSX Daily Stats CA Request
{
"columns": [
"exchange"
],
"enddate": "string",
"exchange": "string",
"pageafter": 0,
"startdate": "string",
"stat": "string",
"symbols": [
"string"
]
}
TSX Daily Stats CA Request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
columns | [string] | false | none | Select columns from the enumerated list below can be provided as an array |
enddate | string | true | none | Date in EST till when the data is required. For eg. end date of 2020-09-31 will include data from startdate to 2020-09-31 |
exchange | string | false | none | Identifies the venue for the applicable statistics |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
startdate | string | true | none | Starting date in EST from when the data is required. For eg. start date of 2020-09-01 will include data from 2020-09-01 to enddate |
stat | string | true | none | Identifies the various statistics that can be obtained. Possible values are available in Reference Guide for stat for TSX Daily Stats CA |
symbols | [string] | true | none | Ticker symbol of the security. For eg. ["AC"] for Air Canada or ["AC", "TD"] for Air Canada and TD or ["ALL_SYMBOLS"] for fetching all the symbols |
TSX Daily Stats CA Response
{
"data": [
{
"date_string": "string",
"exchange": "string",
"key_value": "string",
"stat": "string",
"time": "string",
"time_nanos": 0,
"value": "string",
"value2": "string",
"value3": "string",
"value4_to_n": [
"string"
],
"year": "string"
}
],
"pageafter": 0,
"pagebefore": 0
}
TSX Daily Stats CA Response
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | false | none | TSX Daily Stats responses object |
» date_string | string | false | none | Identifies the local date of the record |
» exchange | string | false | none | Identifies the venue for the applicable statistics |
» key_value | string | false | none | Identifies the ticker symbol of the security for example, 'AC' for Air Canada |
» stat | string | false | none | Identifies the various statistics that can be obtained. Possible values are available in Reference Guide for stat for TSX Daily Stats CA |
» time | string | false | none | Identifies the timestamp for the applicable stat in terms of date, hours, minutes, seconds and milliseconds in the following format: ‘YYYY-MM-DD HH:MI:SS.Milliseconds. |
» time_nanos | number | false | none | Identifies the nanosecond precision (nanosecond only) of the applicable timestamp |
» value | string | false | none | Identifies the value of the relevant stat. More details can be found in the Reference Guide for Stat section along with TSX API Details |
» value2 | string | false | none | Identifies the secondary value of the relevant stat where applicable. More details can be found in the Reference Guide for Stat section along with TSX API Details |
» value3 | string | false | none | Identifies the tertiary value of the relevant stat where applicable. More details can be found in the Reference Guide for Stat section along with TSX API Details |
» value4_to_n | [string] | false | none | Identifies the MOC imbalance metrics 'PairedVolume','MarketOrderImbalanceVolume','MarketOrderImbalanceSide','NearIndicativeClosingPrice','FarIndicativeClosingPrice','PriceVariation' for the stat 'moc' in an array format |
» year | string | false | none | Identifies the year of the record |
pageafter | integer | false | none | Resultset is paginated - mention record offset if data is needed after a specific record |
pagebefore | integer | false | none | Resultset is paginated - mention record offset if data is needed before a specific record |
Errors
TMX Analytics uses HTTP response codes to indicate the success or failure of an API request.
Relevant API | Error Code | Message |
---|---|---|
Change Password | 200 | Information: Password changed successfully |
All APIs | 200 | Success |
All APIs | 400 | Input Error: starttime is after endtime |
All APIs | 400 | Input Error: startdate is after enddate |
All APIs | 400 | Input Error: newpassword and confirmpassword do not match |
All APIs | 400 | Input Error: Data is available on T-1 basis. datestring should be before today |
All APIs | 400 | Input Error: Invalid request parameters |
Authenticate | 401 | Authentication Error: User credentials are incorrect |
Authenticate | 401 | Authentication Error: Password is incorrect |
All APIs | 403 | Authorization Error: User does not have access to any group |
All APIs | 403 | Authorization Error: User does not have access to the requested group |
All APIs | 403 | Limit Exceeded: symbol entered is not on the list of permitted symbols. |
All APIs | 403 | Limit Exceeded: datestring cannot be prior to 30 days from the subscription date |
All APIs | 403 | Limit Exceeded: datestring cannot be prior to the permitted 'lookback days' as per the subscription |
All APIs | 403 | Limit Exceeded: Difference between startdate and enddate cannot be more than the permitted 'lookback days' as per the subscription |
All APIs | 403 | Limit Exceeded: Monthly request limit has been exceeded. Please try again next month |
All APIs | 403 | Limit Exceeded: Daily request limit has been exceeded. Please try again tomorrow |
All APIs | 403 | Limit Exceeded: Call limit has been exceeded. Please try again next month |
All APIs | 403 | Invalid API Key |
Change Password | 500 | System Error: Error occured while changing password. Please try again |
All APIs | 500 | System Error / AWS Authorization Token is invalid |
Support
The Help widget at the bottom right page can be used to raise concerns or report any issues with the APIs. Issues can also be reported via email to TMX Support .