Get Time and Sales
Available in Paper Trading
Available in Production
Available to Advisors
Supported
Time and Sales (timesales) is typically used for charting purposes. It captures pricing across a time slice at predefined intervals.
Tick data is also available through this endpoint. This results in a very large data set for high-volume symbols, so the time slice needs to be much smaller to keep downloads time reasonable.
Interval
Data Available (Open)
Data Available (All)
tick
5 days
N/A
1min
20 days
10 days
5min
40 days
18 days
15min
40 days
18 days
Please note that the tick
interval is not available in Sandbox.
There is a known issue as it pertains to downloading data using the tick
interval from this endpoint as it results in extremely large datasets. Because of this, it is not recommended to get tick data via request/response, and instead use the streaming endpoints.
Header
Required
Values/Example
Default
Accept
Optional
application/xml, application/json
application/xml
Authorization
Required
Bearer {token}
Parameters
Parameter
Type
Param Type
Required
Values/Example
Default
symbol
Query
String
Required
AAPL
A single security symbol.
interval
Query
String
Optional
1min
tick
Interval of time per timesale. One of: tick, 1min, 5min, 15min
start
Query
String
Optional
2019-05-04 09:30
Start date/time for timesales range represented as YYYY-MM-DD HH:MM
end
Query
String
Optional
2019-05-04 16:00
End date/time for timesales range represented as YYYY-MM-DD HH:MM
session_filter
Query
String
Optional
all
all
Specify to retrieve all data points, or data points during market hours. One of: all, open.
Code Example
If you're developing using a paper trading account, change the hostname to https://sandbox.tradier.com
curl - X GET "https://api.tradier.com/v1/markets/timesales?symbol=AAPL&interval=1min&start=2019-05-04 09:30&end=2019-05-04 16:00&session_filter=all" \
- H 'Authorization: Bearer <TOKEN>' \
- H 'Accept: application/json'
// Version 1.8.0_31
import com.fasterxml.jackson.databind.JsonNode ;
import com.fasterxml.jackson.databind.ObjectMapper ;
import org.apache.http.HttpEntity ;
import org.apache.http.HttpResponse ;
import org.apache.http.client.methods.HttpUriRequest ;
import org.apache.http.client.methods.RequestBuilder ;
import org.apache.http.impl.client.HttpClientBuilder ;
import org.apache.http.util.EntityUtils ;
import java.io.IOException ;
public class MainClass {
public static void main ( String [] args ) throws IOException {
final HttpUriRequest request = RequestBuilder
. get ( "https://api.tradier.com/v1/markets/timesales" )
. addHeader ( "Authorization" , "Bearer <TOKEN>" )
. addHeader ( "Accept" , "application/json" )
. addParameter ( "symbol" , "AAPL" )
. addParameter ( "interval" , "1min" )
. addParameter ( "start" , "2019-05-04 09:30" )
. addParameter ( "end" , "2019-05-04 16:00" )
. addParameter ( "session_filter" , "all" )
. build ();
final HttpResponse response = HttpClientBuilder . create (). build (). execute ( request );
final String jsonString = EntityUtils . toString ( response . getEntity ());
final JsonNode json = new ObjectMapper (). readTree ( jsonString );
System . out . println ( response . getStatusLine (). getStatusCode ());
System . out . println ( json );
}
}
# Version 2.5.0p0
require 'uri'
require 'net/http'
url = URI ( "https://api.tradier.com/v1/markets/timesales?symbol=AAPL&interval=1min&start=2019-05-04 09:30&end=2019-05-04 16:00&session_filter=all" )
http = Net :: HTTP . new ( url . host , url . port )
http . use_ssl = true
request = Net :: HTTP :: Get . new ( url )
request [ "Authorization" ] = 'Bearer <TOKEN>'
request [ "Accept" ] = 'application/json'
response = http . request ( request )
puts response . code
puts response . read_body
// Version go1.12
package main
import (
"fmt"
"net/http"
"net/url"
"io/ioutil"
"log"
)
func main () {
apiUrl := "https://api.tradier.com/v1/markets/timesales?symbol=AAPL&interval=1min&start=2019-05-04 09:30&end=2019-05-04 16:00&session_filter=all"
u , _ := url . ParseRequestURI ( apiUrl )
urlStr := u . String ()
client := & http . Client {}
r , _ := http . NewRequest ( "GET" , urlStr , nil )
r . Header . Add ( "Authorization" , "Bearer <TOKEN>" )
r . Header . Add ( "Accept" , "application/json" )
resp , _ := client . Do ( r )
responseData , err := ioutil . ReadAll ( resp . Body )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( resp . Status )
fmt . Println ( string ( responseData ))
}
// Version 4.6.2.0
using System ;
using System.Net ;
using System.IO ;
using System.Text ;
public class MainClass {
public static void Main ( string [] args ) {
var request = ( HttpWebRequest ) WebRequest . Create ( "https://api.tradier.com/v1/markets/timesales?symbol=AAPL&interval=1min&start=2019-05-04 09:30&end=2019-05-04 16:00&session_filter=all" );
request . Method = "GET" ;
request . Headers [ "Authorization" ] = "Bearer <TOKEN>" ;
request . Accept = "application/json" ;
var response = ( HttpWebResponse ) request . GetResponse ();
Console . WriteLine ( response . StatusCode );
var responseString = new StreamReader ( response . GetResponseStream ()). ReadToEnd ();
Console . WriteLine ( responseString );
}
}
// Version 10.15.2
const request = require ( ' request ' );
request ({
method : ' get ' ,
url : ' https://api.tradier.com/v1/markets/timesales ' ,
qs : {
' symbol ' : ' AAPL ' ,
' interval ' : ' 1min ' ,
' start ' : ' 2019-05-04 09:30 ' ,
' end ' : ' 2019-05-04 16:00 ' ,
' session_filter ' : ' all '
},
headers : {
' Authorization ' : ' Bearer <TOKEN> ' ,
' Accept ' : ' application/json '
}
}, ( error , response , body ) => {
console . log ( response . statusCode );
console . log ( body );
});
# Version 3.6.1
import requests
response = requests . get ( ' https://api.tradier.com/v1/markets/timesales ' ,
params = { ' symbol ' : ' AAPL ' , ' interval ' : ' 1min ' , ' start ' : ' 2019-05-04 09:30 ' , ' end ' : ' 2019-05-04 16:00 ' , ' session_filter ' : ' all ' },
headers = { ' Authorization ' : ' Bearer <TOKEN> ' , ' Accept ' : ' application/json ' }
)
json_response = response . json ()
print ( response . status_code )
print ( json_response )
<?php
// Version 7.2.17-0ubuntu0.18.04.1
$ch = curl_init ();
curl_setopt ( $ch , CURLOPT_URL , 'https://api.tradier.com/v1/markets/timesales?symbol=AAPL&interval=1min&start=2019-05-04 09:30&end=2019-05-04 16:00&session_filter=all' );
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ( $ch , CURLOPT_CUSTOMREQUEST , 'GET' );
$headers = array ();
$headers [] = 'Authorization: Bearer <TOKEN>' ;
$headers [] = 'Accept: application/json' ;
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $headers );
$result = curl_exec ( $ch );
$http_code = curl_getinfo ( $ch , CURLINFO_HTTP_CODE );
if ( curl_errno ( $ch )) {
echo 'Error:' . curl_error ( $ch );
}
curl_close ( $ch );
echo $http_code ;
echo $result ;
Response
Response Definition
{
" series " : {
" data " : [
{
" time " : " 2019-05-09T09:30:00 " ,
" timestamp " : 1557408600 ,
" price " : 199.64499999999998 ,
" open " : 200.46 ,
" high " : 200.53 ,
" low " : 198.76 ,
" close " : 200.1154 ,
" volume " : 1273841 ,
" vwap " : 199.77806
},
{
" time " : " 2019-05-09T09:31:00 " ,
" timestamp " : 1557408660 ,
" price " : 200.2 ,
" open " : 200.15 ,
" high " : 200.54 ,
" low " : 199.86 ,
" close " : 200.49 ,
" volume " : 228068 ,
" vwap " : 200.17588
},
{
" time " : " 2019-05-09T09:32:00 " ,
" timestamp " : 1557408720 ,
" price " : 200.445 ,
" open " : 200.51 ,
" high " : 200.75 ,
" low " : 200.14 ,
" close " : 200.2 ,
" volume " : 277041 ,
" vwap " : 200.44681
},
...
]
}
}