curl --request GET \
--url https://perps-api.vooi.io/arbitrage-scanner/price-spread-candlesimport requests
url = "https://perps-api.vooi.io/arbitrage-scanner/price-spread-candles"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://perps-api.vooi.io/arbitrage-scanner/price-spread-candles', 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://perps-api.vooi.io/arbitrage-scanner/price-spread-candles",
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://perps-api.vooi.io/arbitrage-scanner/price-spread-candles"
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://perps-api.vooi.io/arbitrage-scanner/price-spread-candles")
.asString();require 'uri'
require 'net/http'
url = URI("https://perps-api.vooi.io/arbitrage-scanner/price-spread-candles")
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[
{
"close": "0.0000128",
"high": "0.0000128",
"low": "0.0000128",
"open": "0.0000128",
"timestamp": 1784715300000
}
]Price spread candles for a market pair
Returns all stored price spread candles for a market pair at the requested resolution, oldest first. Leg A is the buy (ask) side and leg B is the sell (bid) side; the spread is computed as 2 * (bidB - askA) / (bidB + askA). Intervals without ticks are omitted, not zero-filled.
curl --request GET \
--url https://perps-api.vooi.io/arbitrage-scanner/price-spread-candlesimport requests
url = "https://perps-api.vooi.io/arbitrage-scanner/price-spread-candles"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://perps-api.vooi.io/arbitrage-scanner/price-spread-candles', 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://perps-api.vooi.io/arbitrage-scanner/price-spread-candles",
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://perps-api.vooi.io/arbitrage-scanner/price-spread-candles"
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://perps-api.vooi.io/arbitrage-scanner/price-spread-candles")
.asString();require 'uri'
require 'net/http'
url = URI("https://perps-api.vooi.io/arbitrage-scanner/price-spread-candles")
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[
{
"close": "0.0000128",
"high": "0.0000128",
"low": "0.0000128",
"open": "0.0000128",
"timestamp": 1784715300000
}
]Query Parameters
Asset identifier of the first leg market.
1"BTC"
Asset identifier of the second leg market.
1"BTC"
Exchange of the first leg market.
aster, binance, bybit, extended, gate, hyperliquid, lighter, mexc, ondo, robinhood "lighter"
Exchange of the second leg market.
aster, binance, bybit, extended, gate, hyperliquid, lighter, mexc, ondo, robinhood "aster"
Candle resolution
1m, 5m, 15m, 30m, 1h, 4h, 12h, 1d "1m"
Response
Price spread at the end of the interval, as a decimal fraction.
"0.0000128"
Maximum price spread of the interval, as a decimal fraction.
"0.0000128"
Minimum price spread of the interval, as a decimal fraction.
"0.0000128"
Price spread at the start of the interval, as a decimal fraction.
"0.0000128"
Start of the interval as a unix timestamp in milliseconds.
-9007199254740991 <= x <= 90071992547409911784715300000