Create a streaming session for use with the Tradier Streaming API. This session can be used with the streaming endpoints to obtain account updates such as order status changes as they happen.
Note: Once a sessionid is received, it will be valid for 5 minutes, during which time you can initiate a stream. After the session expires and you’ll need to create a new session in order to stream data.
Content-length: 0
header in cases where the POST request doesn't include a body.
Header | Required | Values/Example | Default |
---|---|---|---|
Accept | Optional | application/xml, application/json | application/xml |
Authorization | Required | Bearer {token} |
https://sandbox.tradier.com
curl -X POST "https://api.tradier.com/v1/accounts/events/session" \
-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
.post("https://api.tradier.com/v1/accounts/events/session")
.addHeader("Authorization", "Bearer <TOKEN>")
.addHeader("Accept", "application/json")
.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/accounts/events/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <TOKEN>'
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = ""
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"
"strconv"
"strings"
)
func main() {
apiUrl := "https://api.tradier.com/v1/accounts/events/session"
data := url.Values{}
u, _ := url.ParseRequestURI(apiUrl)
urlStr := u.String()
client := &http.Client{}
r, _ := http.NewRequest("POST", urlStr, strings.NewReader(data.Encode()))
r.Header.Add("Authorization", "Bearer <TOKEN>")
r.Header.Add("Accept", "application/json")
r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
r.Header.Add("Content-Length", strconv.Itoa(len(data.Encode())))
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/accounts/events/session");
var requestData = "";
var data = Encoding.ASCII.GetBytes(requestData);
request.Method = "POST";
request.Headers["Authorization"] = "Bearer <TOKEN>";
request.Accept = "application/json";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
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: 'post',
url: 'https://api.tradier.com/v1/accounts/events/session',
form: {
},
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.post('https://api.tradier.com/v1/accounts/events/session',
data={},
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/accounts/events/session');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$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;
{
"stream": {
"url": "wss://ws.tradier.com/v1/accounts/events",
"sessionid": "c8638963-a6d4-4fb9-9bc6-e25fbd8c60c3"
}
}