curl -H 'Authorization: Bearer $HD_KEY' 'https://data.hyperdash.com/v1/spot/HYPE/twap-levels'import requests
url = "https://data.hyperdash.com/v1/spot/{token}/twap-levels"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data.hyperdash.com/v1/spot/{token}/twap-levels', 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://data.hyperdash.com/v1/spot/{token}/twap-levels",
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://data.hyperdash.com/v1/spot/{token}/twap-levels"
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://data.hyperdash.com/v1/spot/{token}/twap-levels")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.hyperdash.com/v1/spot/{token}/twap-levels")
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{
"data": [
{
"px": "<string>",
"kind": "<string>",
"side": "<string>",
"when": "<string>",
"pair": "<string>",
"twaps": 123,
"remaining_sz": "<string>",
"remaining_notional": "<string>",
"flow_sz_per_min": "<string>"
}
],
"has_more": true,
"next_cursor": "<string>",
"meta": {}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}TWAP stop and trigger levels of one spot token
Where running TWAP flow switches off and waiting TWAP flow switches on, from the latest node state snapshot (refreshed every few minutes; meta.snapshot_id): one row per price level, kind and side. kind=stop: running TWAPs that stop once the price reaches px (a buy from below, a sell from above; HL announced it will pause them there instead and resume when the price comes back). kind=trigger: TWAPs waiting to start once the price moves above / below px (a waiting TWAP’s stop applies once it has started). Each row sums the TWAPs’ remaining size and their average size per minute (remaining size over the remaining scheduled time; a waiting TWAP: its size over its duration). Aggregated, no wallets. Highest price first; meta.levels counts every level and meta.truncated is true when more than 500 exist. Levels are per spot pair of the token (px and notional in that pair’s quote). meta adds the unconditional TWAP flow as for markets.
Pricing: base + per row + node reads. Scope: analytics:read.
curl -H 'Authorization: Bearer $HD_KEY' 'https://data.hyperdash.com/v1/spot/HYPE/twap-levels'import requests
url = "https://data.hyperdash.com/v1/spot/{token}/twap-levels"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data.hyperdash.com/v1/spot/{token}/twap-levels', 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://data.hyperdash.com/v1/spot/{token}/twap-levels",
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://data.hyperdash.com/v1/spot/{token}/twap-levels"
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://data.hyperdash.com/v1/spot/{token}/twap-levels")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.hyperdash.com/v1/spot/{token}/twap-levels")
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{
"data": [
{
"px": "<string>",
"kind": "<string>",
"side": "<string>",
"when": "<string>",
"pair": "<string>",
"twaps": 123,
"remaining_sz": "<string>",
"remaining_notional": "<string>",
"flow_sz_per_min": "<string>"
}
],
"has_more": true,
"next_cursor": "<string>",
"meta": {}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}Authorizations
hdk_sk_live_v1_… or hdk_sk_test_v1_…
Headers
Refuse (free) if the request could cost more.
Expected price version; 409 price_changed if it differs.
Path Parameters
Spot token name, e.g. HYPE, PURR.
^(?![Aa][Ll][Ll]$)[A-Za-z0-9]{1,20}$
