curl --request GET \
--url https://api.ironflow.sh/v1/liquidations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ironflow.sh/v1/liquidations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ironflow.sh/v1/liquidations', 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.ironflow.sh/v1/liquidations",
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://api.ironflow.sh/v1/liquidations"
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://api.ironflow.sh/v1/liquidations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ironflow.sh/v1/liquidations")
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_bodyHyperliquid liquidation history
GET /v1/liquidations returns historical Hyperliquid liquidation events, detected from the fill events themselves rather than a heuristic, for every market.
curl --request GET \
--url https://api.ironflow.sh/v1/liquidations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ironflow.sh/v1/liquidations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ironflow.sh/v1/liquidations', 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.ironflow.sh/v1/liquidations",
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://api.ironflow.sh/v1/liquidations"
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://api.ironflow.sh/v1/liquidations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ironflow.sh/v1/liquidations")
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_bodyAuthorizations
Ironflow API key, format if_xxxx. Free keys at https://ironflow.sh/key. Optional on read endpoints.
Query Parameters
Venue identifier. Defaults to hyperliquid.
hyperliquid Market symbol (e.g. BTC-PERP, ETH-PERP). Omit to query all markets.
"BTC-PERP"
Base market symbol, stripped of any issuer namespace (e.g. GAS-PERP).
Matches both native HL markets (market == base_market) and every HIP-3
builder-deployed market with that base (e.g. flx:GAS-PERP). Use together
with issuer to scope to a single builder, or alone to query across all
issuers of the same base symbol.
"GAS-PERP"
HIP-3 builder/issuer namespace (e.g. flx). For native HL perps the issuer
is the empty string; do not combine issuer="" with this filter — omit the
parameter instead. Commonly paired with base_market to disambiguate a
builder-deployed market from its native counterpart.
"flx"
Wallet address filter (hex string, e.g. 0xabc123).
"0xabc123def456"
Start time as Unix milliseconds. Defaults to 24 hours ago. Clamped to tier history window. On /v1/trades and /v1/fills, the time range (to - from) is limited per tier (no key 1h, free key 6h, Explorer 24h, Builder 7d, Enterprise unlimited; without market filter 4h for all tiers). Returns QUERY_WINDOW_EXCEEDED (400) if exceeded — paginate with narrower from/to windows.
1718313600000
End time as Unix milliseconds. Defaults to now.
1718400000000
Maximum number of results per page. Default 100, max 1000.
x <= 1000100
Opaque pagination cursor from pagination.next_cursor in a previous response.
"MTcxODQwMDAwMDAwMC00Mg=="