fundingHistory | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>",
"coin": "<string>",
"startTime": 123,
"endTime": 123
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = {
"type": "<string>",
"coin": "<string>",
"startTime": 123,
"endTime": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: '<string>', coin: '<string>', startTime: 123, endTime: 123})
};
fetch('https://hypercore.goldrushdata.com/info', 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://hypercore.goldrushdata.com/info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => '<string>',
'coin' => '<string>',
'startTime' => 123,
'endTime' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hypercore.goldrushdata.com/info"
payload := strings.NewReader("{\n \"type\": \"<string>\",\n \"coin\": \"<string>\",\n \"startTime\": 123,\n \"endTime\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://hypercore.goldrushdata.com/info")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\",\n \"coin\": \"<string>\",\n \"startTime\": 123,\n \"endTime\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hypercore.goldrushdata.com/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\",\n \"coin\": \"<string>\",\n \"startTime\": 123,\n \"endTime\": 123\n}"
response = http.request(request)
puts response.read_body{
"coin": "<string>",
"fundingRate": "<string>",
"premium": "<string>",
"time": 123
}Info API
fundingHistory | Hyperliquid Info API
Hyperliquid fundingHistory: fetch a coin’s historical funding rates and premiums over a time window for funding analytics and basis strategies.
POST
/
info
fundingHistory | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>",
"coin": "<string>",
"startTime": 123,
"endTime": 123
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = {
"type": "<string>",
"coin": "<string>",
"startTime": 123,
"endTime": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: '<string>', coin: '<string>', startTime: 123, endTime: 123})
};
fetch('https://hypercore.goldrushdata.com/info', 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://hypercore.goldrushdata.com/info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => '<string>',
'coin' => '<string>',
'startTime' => 123,
'endTime' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hypercore.goldrushdata.com/info"
payload := strings.NewReader("{\n \"type\": \"<string>\",\n \"coin\": \"<string>\",\n \"startTime\": 123,\n \"endTime\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://hypercore.goldrushdata.com/info")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\",\n \"coin\": \"<string>\",\n \"startTime\": 123,\n \"endTime\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hypercore.goldrushdata.com/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\",\n \"coin\": \"<string>\",\n \"startTime\": 123,\n \"endTime\": 123\n}"
response = http.request(request)
puts response.read_body{
"coin": "<string>",
"fundingRate": "<string>",
"premium": "<string>",
"time": 123
}Credit Cost
1 per call
Processing
Realtime
type: "fundingHistory" is used to fetch a coin’s historical funding rates and premiums over a time window for funding analytics and basis strategies.
Estimate your monthly cost for this API using the Pricing Calculator.
- Wire-equal to
POST api.hyperliquid.xyz/infowith{"type": "fundingHistory", "coin": "..."}. - Each response contains at most 500 entries per call.
- This is market-wide funding history for a coin. For a single wallet’s actual funding payments, use userFunding instead.
- For the current funding rate alongside live market context, use metaAndAssetCtxs.
[startTime, endTime] window. Each entry carries the funding rate that was applied and the mark-vs-oracle premium at that time. Use it for funding-rate charts, basis/carry analytics, and historical funding P&L modeling.
This is a global, non-user-keyed type. Page through time by advancing startTime.
Endpoint
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
Request
string
default:"fundingHistory"
required
Always
"fundingHistory".string
required
The asset symbol, e.g.
"BTC". HIP-3 markets use the deployer-prefixed form.int
required
Unix timestamp in milliseconds. Inclusive lower bound for the window.
int
Unix timestamp in milliseconds. Inclusive upper bound. Defaults to current server time when omitted.
Example
curl -X POST https://hypercore.goldrushdata.com/info \
-H "Authorization: Bearer $GOLDRUSH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "fundingHistory",
"coin": "BTC",
"startTime": 1735689600000,
"endTime": 1735776000000
}'
const response = await fetch("https://hypercore.goldrushdata.com/info", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "fundingHistory",
coin: "BTC",
startTime: 1735689600000,
endTime: 1735776000000,
}),
});
const history = await response.json();
import os, requests
response = requests.post(
"https://hypercore.goldrushdata.com/info",
headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
json={
"type": "fundingHistory",
"coin": "BTC",
"startTime": 1735689600000,
"endTime": 1735776000000,
},
)
history = response.json()
Response
An array of funding-interval objects, oldest first.[
{
"coin": "BTC",
"fundingRate": "0.0000054021",
"premium": "-0.0004567829",
"time": 1735693200000
}
]
Field descriptions
fundingRate and premium are returned as decimal strings, preserving upstream precision. Do not parse them as floats.string
The asset the funding interval is for - echoes the request
coin.string
The funding rate applied for this interval (decimal string, e.g.
"0.0000125").string
Mark-vs-oracle premium at the time the funding was computed (decimal string).
int
Unix timestamp in milliseconds when the funding interval was applied.
Related endpoints
allMids
fetch the current mid price for every actively traded asset in a single call.
candleSnapshot
fetch historical OHLCV candles for a coin and interval over a time window for charting and backtesting.
l2Book
fetch an aggregated Level-2 order book snapshot for a single coin - bids and asks as price, size, and order-count levels.
l2BookDiffSnapshot
fetch a full-depth L2 order book snapshot for one coin, with height, epoch, and seq to bootstrap the l2BookDiff2 stream.