curl --request GET \
--url https://market-data.sandbox.rails.xyz/api/v1/contract-specificationsimport requests
url = "https://market-data.sandbox.rails.xyz/api/v1/contract-specifications"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://market-data.sandbox.rails.xyz/api/v1/contract-specifications', 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://market-data.sandbox.rails.xyz/api/v1/contract-specifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://market-data.sandbox.rails.xyz/api/v1/contract-specifications"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://market-data.sandbox.rails.xyz/api/v1/contract-specifications")
.asString();require 'uri'
require 'net/http'
url = URI("https://market-data.sandbox.rails.xyz/api/v1/contract-specifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"contractName": "BTC-USDT",
"underlyingPrice": "63568.7382843144",
"priceIndex": "CCIX (CoinDesk Aggregated Index, formerly CCCAGG)",
"indexUpdateFrequency": "1 second",
"contractType": "Linear (USDT-margined)",
"tickSize": "0.01",
"lotSize": "0.0000001",
"priceUnit": "USDT per BTC",
"quantityUnit": "BTC",
"minOrderNotional": "1 USDT",
"tradingHours": "24/7 (except during scheduled maintenance)",
"fundingTimes": "Hourly funding",
"fundingRateCap": "±0.5% per 1-hour interval",
"marginType": "Isolated, Cross"
},
{
"contractName": "ETH-USDT",
"underlyingPrice": "1860.22242925263",
"priceIndex": "CCIX (CoinDesk Aggregated Index, formerly CCCAGG)",
"indexUpdateFrequency": "1 second",
"contractType": "Linear (USDT-margined)",
"tickSize": "0.01",
"lotSize": "0.0000001",
"priceUnit": "USDT per ETH",
"quantityUnit": "ETH",
"minOrderNotional": "1 USDT",
"tradingHours": "24/7 (except during scheduled maintenance)",
"fundingTimes": "Hourly funding",
"fundingRateCap": "±0.5% per 1-hour interval",
"marginType": "Isolated, Cross"
}
]Get Contract Specifications
This endpoint retrieves perpetual contract specifications.
curl --request GET \
--url https://market-data.sandbox.rails.xyz/api/v1/contract-specificationsimport requests
url = "https://market-data.sandbox.rails.xyz/api/v1/contract-specifications"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://market-data.sandbox.rails.xyz/api/v1/contract-specifications', 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://market-data.sandbox.rails.xyz/api/v1/contract-specifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://market-data.sandbox.rails.xyz/api/v1/contract-specifications"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://market-data.sandbox.rails.xyz/api/v1/contract-specifications")
.asString();require 'uri'
require 'net/http'
url = URI("https://market-data.sandbox.rails.xyz/api/v1/contract-specifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"contractName": "BTC-USDT",
"underlyingPrice": "63568.7382843144",
"priceIndex": "CCIX (CoinDesk Aggregated Index, formerly CCCAGG)",
"indexUpdateFrequency": "1 second",
"contractType": "Linear (USDT-margined)",
"tickSize": "0.01",
"lotSize": "0.0000001",
"priceUnit": "USDT per BTC",
"quantityUnit": "BTC",
"minOrderNotional": "1 USDT",
"tradingHours": "24/7 (except during scheduled maintenance)",
"fundingTimes": "Hourly funding",
"fundingRateCap": "±0.5% per 1-hour interval",
"marginType": "Isolated, Cross"
},
{
"contractName": "ETH-USDT",
"underlyingPrice": "1860.22242925263",
"priceIndex": "CCIX (CoinDesk Aggregated Index, formerly CCCAGG)",
"indexUpdateFrequency": "1 second",
"contractType": "Linear (USDT-margined)",
"tickSize": "0.01",
"lotSize": "0.0000001",
"priceUnit": "USDT per ETH",
"quantityUnit": "ETH",
"minOrderNotional": "1 USDT",
"tradingHours": "24/7 (except during scheduled maintenance)",
"fundingTimes": "Hourly funding",
"fundingRateCap": "±0.5% per 1-hour interval",
"marginType": "Isolated, Cross"
}
]Response
Identifier for the perpetual contract, such as BTC-USDT.
Current index price of the contract's underlying asset, serialized as a decimal string.
Reference index used for the underlying price. CCIX is the CoinDesk Aggregated Index, formerly CCCAGG.
Frequency at which the reference index is updated.
How the contract is structured and which currency is used for margin.
Minimum price movement.
Minimum quantity movement.
Unit in which prices are quoted, expressed as quote currency per base currency, such as USDT per BTC.
Unit in which order and position quantities are expressed, such as BTC.
Minimum order notional value, as an amount and quote currency code, such as 1 USDT.
Hours during which the contract is available for trading.
Frequency at which funding is applied.
Upper and lower funding rate limits over a 1-hour interval.
Supported margin modes.