curl --request GET \
--url https://perps-api.vooi.io/exchange/estimate-slippage \
--header 'Authorization: Bearer <token>'import requests
url = "https://perps-api.vooi.io/exchange/estimate-slippage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://perps-api.vooi.io/exchange/estimate-slippage', 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/exchange/estimate-slippage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/exchange/estimate-slippage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/exchange/estimate-slippage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://perps-api.vooi.io/exchange/estimate-slippage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"avgPrice": 1852.34,
"bestPrice": 1850.5,
"depthImpact": 0.099432,
"depthUsedUsd": 50000,
"effectiveSpreadBps": 12.5,
"filled": true,
"filledPercent": 100,
"slippage": 0.125432,
"slippageBps": 12.54,
"worstPrice": 1854.75
}{
"message": "Invalid order id: 123",
"statusCode": 503
}Get slippage for provided notional and side
curl --request GET \
--url https://perps-api.vooi.io/exchange/estimate-slippage \
--header 'Authorization: Bearer <token>'import requests
url = "https://perps-api.vooi.io/exchange/estimate-slippage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://perps-api.vooi.io/exchange/estimate-slippage', 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/exchange/estimate-slippage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/exchange/estimate-slippage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/exchange/estimate-slippage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://perps-api.vooi.io/exchange/estimate-slippage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"avgPrice": 1852.34,
"bestPrice": 1850.5,
"depthImpact": 0.099432,
"depthUsedUsd": 50000,
"effectiveSpreadBps": 12.5,
"filled": true,
"filledPercent": 100,
"slippage": 0.125432,
"slippageBps": 12.54,
"worstPrice": 1854.75
}{
"message": "Invalid order id: 123",
"statusCode": 503
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Asset identifier: base symbol (e.g. "ETH") or full pair (e.g. "ETHUSDC").
1"ETH"
Exchange name
aster, binance, bybit, extended, gate, hyperliquid, lighter, mexc, ondo, robinhood "aster"
Notional USD includes leverage
1000
Side
buy, sell "buy"
Response
Slippage calculation result, or null when the top of book is crossed
Average execution price across all filled orderbook levels
1852.34
Best available price (ask for long, bid for short)
1850.5
Price impact as a percentage difference from the best price on the side you take, excluding the half-spread
0.099432
Total USD value of orderbook depth consumed to fill the order
50000
Spread between worst and best execution price in basis points
12.5
Whether the order can be completely filled at current orderbook depth
Percentage of order filled (0-100)
100
Price impact as percentage difference from mid-price
0.125432
Price impact in basis points (slippage × 100)
12.54
Worst (highest for long, lowest for short) price encountered while filling
1854.75