Get Valid Series
curl --request POST \
--url https://api.exchange.fairx.net/rest/valid-series \
--header 'Content-Type: application/json' \
--data '
{
"product_codes": [
"BIP"
],
"symbols": [
"BIPZ30",
"B*"
],
"instrument_ids": [
1234,
12345
],
"trading_states": [
"PRE_OPEN",
"EXPIRED"
],
"activation_date": "2026-02-12",
"expiration_date": "2026-02-12"
}
'import requests
url = "https://api.exchange.fairx.net/rest/valid-series"
payload = {
"product_codes": ["BIP"],
"symbols": ["BIPZ30", "B*"],
"instrument_ids": [1234, 12345],
"trading_states": ["PRE_OPEN", "EXPIRED"],
"activation_date": "2026-02-12",
"expiration_date": "2026-02-12"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
product_codes: ['BIP'],
symbols: ['BIPZ30', 'B*'],
instrument_ids: [1234, 12345],
trading_states: ['PRE_OPEN', 'EXPIRED'],
activation_date: '2026-02-12',
expiration_date: '2026-02-12'
})
};
fetch('https://api.exchange.fairx.net/rest/valid-series', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.exchange.fairx.net/rest/valid-series",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'product_codes' => [
'BIP'
],
'symbols' => [
'BIPZ30',
'B*'
],
'instrument_ids' => [
1234,
12345
],
'trading_states' => [
'PRE_OPEN',
'EXPIRED'
],
'activation_date' => '2026-02-12',
'expiration_date' => '2026-02-12'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.exchange.fairx.net/rest/valid-series"
payload := strings.NewReader("{\n \"product_codes\": [\n \"BIP\"\n ],\n \"symbols\": [\n \"BIPZ30\",\n \"B*\"\n ],\n \"instrument_ids\": [\n 1234,\n 12345\n ],\n \"trading_states\": [\n \"PRE_OPEN\",\n \"EXPIRED\"\n ],\n \"activation_date\": \"2026-02-12\",\n \"expiration_date\": \"2026-02-12\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.exchange.fairx.net/rest/valid-series")
.header("Content-Type", "application/json")
.body("{\n \"product_codes\": [\n \"BIP\"\n ],\n \"symbols\": [\n \"BIPZ30\",\n \"B*\"\n ],\n \"instrument_ids\": [\n 1234,\n 12345\n ],\n \"trading_states\": [\n \"PRE_OPEN\",\n \"EXPIRED\"\n ],\n \"activation_date\": \"2026-02-12\",\n \"expiration_date\": \"2026-02-12\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exchange.fairx.net/rest/valid-series")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"product_codes\": [\n \"BIP\"\n ],\n \"symbols\": [\n \"BIPZ30\",\n \"B*\"\n ],\n \"instrument_ids\": [\n 1234,\n 12345\n ],\n \"trading_states\": [\n \"PRE_OPEN\",\n \"EXPIRED\"\n ],\n \"activation_date\": \"2026-02-12\",\n \"expiration_date\": \"2026-02-12\"\n}"
response = http.request(request)
puts response.read_body[
{
"product_code": "BIT",
"symbol_display_expiry": "20260300",
"contract_size": 50.5,
"contract_unit": "Bitcoin",
"security_type": "F",
"first_trading_date": "20250627",
"last_trading_date": "20260225",
"settlement_date": "20260226",
"available_for24x7": true
}
]Instruments
Get Valid Series
Retrieves valid series information for instruments based on the provided filter criteria. Returns series data including product code, expiry, contract size, trading dates, and settlement information. Allows optional filtering by product codes, symbols, instrument IDs, trading states, activation date, and expiration date.
POST
/
rest
/
valid-series
Get Valid Series
curl --request POST \
--url https://api.exchange.fairx.net/rest/valid-series \
--header 'Content-Type: application/json' \
--data '
{
"product_codes": [
"BIP"
],
"symbols": [
"BIPZ30",
"B*"
],
"instrument_ids": [
1234,
12345
],
"trading_states": [
"PRE_OPEN",
"EXPIRED"
],
"activation_date": "2026-02-12",
"expiration_date": "2026-02-12"
}
'import requests
url = "https://api.exchange.fairx.net/rest/valid-series"
payload = {
"product_codes": ["BIP"],
"symbols": ["BIPZ30", "B*"],
"instrument_ids": [1234, 12345],
"trading_states": ["PRE_OPEN", "EXPIRED"],
"activation_date": "2026-02-12",
"expiration_date": "2026-02-12"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
product_codes: ['BIP'],
symbols: ['BIPZ30', 'B*'],
instrument_ids: [1234, 12345],
trading_states: ['PRE_OPEN', 'EXPIRED'],
activation_date: '2026-02-12',
expiration_date: '2026-02-12'
})
};
fetch('https://api.exchange.fairx.net/rest/valid-series', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.exchange.fairx.net/rest/valid-series",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'product_codes' => [
'BIP'
],
'symbols' => [
'BIPZ30',
'B*'
],
'instrument_ids' => [
1234,
12345
],
'trading_states' => [
'PRE_OPEN',
'EXPIRED'
],
'activation_date' => '2026-02-12',
'expiration_date' => '2026-02-12'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.exchange.fairx.net/rest/valid-series"
payload := strings.NewReader("{\n \"product_codes\": [\n \"BIP\"\n ],\n \"symbols\": [\n \"BIPZ30\",\n \"B*\"\n ],\n \"instrument_ids\": [\n 1234,\n 12345\n ],\n \"trading_states\": [\n \"PRE_OPEN\",\n \"EXPIRED\"\n ],\n \"activation_date\": \"2026-02-12\",\n \"expiration_date\": \"2026-02-12\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.exchange.fairx.net/rest/valid-series")
.header("Content-Type", "application/json")
.body("{\n \"product_codes\": [\n \"BIP\"\n ],\n \"symbols\": [\n \"BIPZ30\",\n \"B*\"\n ],\n \"instrument_ids\": [\n 1234,\n 12345\n ],\n \"trading_states\": [\n \"PRE_OPEN\",\n \"EXPIRED\"\n ],\n \"activation_date\": \"2026-02-12\",\n \"expiration_date\": \"2026-02-12\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exchange.fairx.net/rest/valid-series")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"product_codes\": [\n \"BIP\"\n ],\n \"symbols\": [\n \"BIPZ30\",\n \"B*\"\n ],\n \"instrument_ids\": [\n 1234,\n 12345\n ],\n \"trading_states\": [\n \"PRE_OPEN\",\n \"EXPIRED\"\n ],\n \"activation_date\": \"2026-02-12\",\n \"expiration_date\": \"2026-02-12\"\n}"
response = http.request(request)
puts response.read_body[
{
"product_code": "BIT",
"symbol_display_expiry": "20260300",
"contract_size": 50.5,
"contract_unit": "Bitcoin",
"security_type": "F",
"first_trading_date": "20250627",
"last_trading_date": "20260225",
"settlement_date": "20260226",
"available_for24x7": true
}
]Body
application/json
Optional instrument filter criteria, can be omitted
Example:
["BIP"]
Example:
["BIPZ30", "B*"]
Example:
[1234, 12345]
Available options:
PRE_OPEN, OPEN, HALT, PAUSE, CLOSE, PRE_OPEN_NO_CANCEL, EXPIRED Example:
["PRE_OPEN", "EXPIRED"]
Example:
"2026-02-12"
Example:
"2026-02-12"
Response
Successfully retrieved valid series data
Example:
"BIT"
Example:
"20260300"
Example:
50.5
Example:
"Bitcoin"
Example:
"F"
Example:
"20250627"
Example:
"20260225"
Example:
"20260226"
Example:
true
Was this page helpful?
⌘I