Overview

Details about how to obtain access tokens using OAuth 2.0

Fetch positions, balances and other account related details.

Place equity and complex option trades including advanced orders.

Fetch quotes, chains and historical data via REST and streaming APIs.

Stream market data and account events in real-time.

Create and update custom watchlists.

Examples, response types, property details and explanations.

Update a watchlist

  • Available in Paper Trading
  • Available in Production
  • Available to Advisors
  • Supported

Update an existing watchlist. This request will override the existing watchlist information with the parameters sent in the body.

PUT

Headers

Header Required Values/Example Default
Accept Optional application/xml, application/json application/xml
Content-Type Required application/x-www-form-urlencoded
Authorization Required Bearer {token}

Parameters

Parameter Type Param Type Required Values/Example Default
watchlist_id Path String Required my_watchlist
A watchlist id
name Form String Required My Updated Watchlist
A watchlist name
symbols Form String Optional AAPL,IBM,NFLX
Comma-delimited list of symbols to add to watchlist

Code Example

If you're developing using a paper trading account, change the hostname to https://sandbox.tradier.com
curl -X PUT "https://api.tradier.com/v1/watchlists/{watchlist_id}" \
     -H 'Authorization: Bearer <TOKEN>' \
     -H 'Accept: application/json' \
     -H 'Content-Type: application/x-www-form-urlencoded' \
     -d 'name=My Updated Watchlist&symbols=AAPL,IBM,NFLX'
// 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
        .put("https://api.tradier.com/v1/watchlists/{watchlist_id}")
        .addHeader("Authorization", "Bearer <TOKEN>")
        .addHeader("Accept", "application/json")
        .addParameter("watchlist_id", "my_watchlist")
        .addParameter("name", "My Updated Watchlist")
        .addParameter("symbols", "AAPL,IBM,NFLX")
        .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/watchlists/{watchlist_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <TOKEN>'
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "name=My Updated Watchlist&symbols=AAPL,IBM,NFLX"

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/watchlists/{watchlist_id}"
    data := url.Values{} 
    data.Set("name", "My Updated Watchlist") 
    data.Set("symbols", "AAPL,IBM,NFLX")

    u, _ := url.ParseRequestURI(apiUrl)
    urlStr := u.String()

    client := &http.Client{}
    r, _ := http.NewRequest("PUT", 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/watchlists/{watchlist_id}");
    var requestData = "name=My Updated Watchlist&symbols=AAPL,IBM,NFLX";
    var data = Encoding.ASCII.GetBytes(requestData);
    
    request.Method = "PUT";
    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: 'put',
    url: 'https://api.tradier.com/v1/watchlists/{watchlist_id}',
    form: {
       'name': 'My Updated Watchlist',
       'symbols': 'AAPL,IBM,NFLX'
    },
    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.put('https://api.tradier.com/v1/watchlists/{watchlist_id}',
    data={'name': 'My Updated Watchlist', 'symbols': 'AAPL,IBM,NFLX'},
    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/watchlists/{watchlist_id}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'name=My Updated Watchlist&symbols=AAPL,IBM,NFLX');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');

$headers = array();
$headers[] = 'Authorization: Bearer <TOKEN>';
$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
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

{
   "watchlist":{
      "name":"My Updated Watchlist",
      "id":"my_watchlist",
      "public_id":"public-6f8f625wti",
      "items":{
         "item":[
            {
               "symbol":"AAPL",
               "id":"aapl"
            },
            {
               "symbol":"IBM",
               "id":"ibm"
            },
            {
               "symbol":"NFLX",
               "id":"nflx"
            }
         ]
      }
   }
}