Get an option chain

  • Available in Sandbox
  • Available in Production
  • Available to Advisors
  • Supported

Get all quotes in an option chain.

GET

Headers

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 VXX
Underlying symbol of the chain
expiration Query String Required 2019-05-17
Expiration for the chain

Code Example

If you're developing in the sandbox, change the hostname to https://sandbox.tradier.com
curl -X GET "https://api.tradier.com/v1/markets/options/chains?symbol=VXX&expiration=2019-05-17" \
     -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/options/chains")
        .addHeader("Authorization", "Bearer <TOKEN>")
        .addHeader("Accept", "application/json")
        .addParameter("symbol", "VXX")
        .addParameter("expiration", "2019-05-17")
        .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/options/chains?symbol=VXX&expiration=2019-05-17")

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/options/chains?symbol=VXX&expiration=2019-05-17"

    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/options/chains?symbol=VXX&expiration=2019-05-17");
    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/options/chains',
    qs: {
       'symbol': 'VXX',
       'expiration': '2019-05-17'
    },
    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/options/chains',
    params={'symbol': 'VXX', 'expiration': '2019-05-17'},
    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/options/chains?symbol=VXX&expiration=2019-05-17');
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

{
  "options": {
    "option": [
      {
        "symbol": "VXX190517P00016000",
        "description": "VXX May 17 2019 $16.00 Put",
        "exch": "Z",
        "type": "option",
        "last": null,
        "change": null,
        "volume": 0,
        "open": null,
        "high": null,
        "low": null,
        "close": null,
        "bid": 0.0,
        "ask": 0.01,
        "underlying": "VXX",
        "strike": 16.0,
        "change_percentage": null,
        "average_volume": 0,
        "last_volume": 0,
        "trade_date": 0,
        "prevclose": null,
        "week_52_high": 0.0,
        "week_52_low": 0.0,
        "bidsize": 0,
        "bidexch": "J",
        "bid_date": 1557171657000,
        "asksize": 611,
        "askexch": "Z",
        "ask_date": 1557172096000,
        "open_interest": 10,
        "contract_size": 100,
        "expiration_date": "2019-05-17",
        "expiration_type": "standard",
        "option_type": "put",
        "root_symbol": "VXX"
      },
      {
        "symbol": "VXX190517C00016000",
        "description": "VXX May 17 2019 $16.00 Call",
        "exch": "Z",
        "type": "option",
        "last": null,
        "change": null,
        "volume": 0,
        "open": null,
        "high": null,
        "low": null,
        "close": null,
        "bid": 10.85,
        "ask": 11.0,
        "underlying": "VXX",
        "strike": 16.0,
        "change_percentage": null,
        "average_volume": 0,
        "last_volume": 0,
        "trade_date": 0,
        "prevclose": null,
        "week_52_high": 0.0,
        "week_52_low": 0.0,
        "bidsize": 55,
        "bidexch": "C",
        "bid_date": 1557172097000,
        "asksize": 80,
        "askexch": "E",
        "ask_date": 1557172135000,
        "open_interest": 0,
        "contract_size": 100,
        "expiration_date": "2019-05-17",
        "expiration_type": "standard",
        "option_type": "call",
        "root_symbol": "VXX"
      },
      {
        "symbol": "VXX190517P00017000",
        "description": "VXX May 17 2019 $17.00 Put",
        "exch": "Z",
        "type": "option",
        "last": null,
        "change": null,
        "volume": 0,
        "open": null,
        "high": null,
        "low": null,
        "close": null,
        "bid": 0.0,
        "ask": 0.01,
        "underlying": "VXX",
        "strike": 17.0,
        "change_percentage": null,
        "average_volume": 0,
        "last_volume": 0,
        "trade_date": 0,
        "prevclose": null,
        "week_52_high": 0.0,
        "week_52_low": 0.0,
        "bidsize": 0,
        "bidexch": "J",
        "bid_date": 1557172023000,
        "asksize": 380,
        "askexch": "Z",
        "ask_date": 1557172096000,
        "open_interest": 0,
        "contract_size": 100,
        "expiration_date": "2019-05-17",
        "expiration_type": "standard",
        "option_type": "put",
        "root_symbol": "VXX"
      }
      ...
    ]
  }
}