meta | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>",
"dex": "<string>"
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = {
"type": "<string>",
"dex": "<string>"
}
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>', dex: '<string>'})
};
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>',
'dex' => '<string>'
]),
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 \"dex\": \"<string>\"\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 \"dex\": \"<string>\"\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 \"dex\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"universe": [
{
"name": "<string>",
"szDecimals": 123,
"maxLeverage": 123,
"marginTableId": 123,
"onlyIsolated": true,
"isDelisted": true
}
],
"marginTables": [
[
{}
]
],
"collateralToken": 123
}Info API
meta | Hyperliquid Info API
Hyperliquid meta: fetch the perpetuals universe metadata without live market context.
POST
/
info
meta | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>",
"dex": "<string>"
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = {
"type": "<string>",
"dex": "<string>"
}
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>', dex: '<string>'})
};
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>',
'dex' => '<string>'
]),
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 \"dex\": \"<string>\"\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 \"dex\": \"<string>\"\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 \"dex\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"universe": [
{
"name": "<string>",
"szDecimals": 123,
"maxLeverage": 123,
"marginTableId": 123,
"onlyIsolated": true,
"isDelisted": true
}
],
"marginTables": [
[
{}
]
],
"collateralToken": 123
}Credit Cost
1 per call
Processing
Realtime
type: "meta" is used to fetch the perpetuals universe metadata without live market context.
Estimate your monthly cost for this API using the Pricing Calculator.
- Wire-equal to
POST api.hyperliquid.xyz/infowith{"type": "meta"}. - Use metaAndAssetCtxs when you also need live per-asset mark price, funding, open interest, and day volume.
- The optional
dexfield takes a perp DEX name. It defaults to the empty string which represents the first perp DEX. - For the spot equivalent, use spotMeta.
metaAndAssetCtxs, this payload carries no live market data, so it is cheap to cache and changes only when listings or margin parameters change.
Endpoint
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
Request
string
default:"meta"
required
Always
"meta".string
HIP-3 builder DEX identifier. Empty string (default) returns the canonical Hyperliquid perp universe. Pass a builder code (e.g.
"xyz") to query a HIP-3 deployer’s universe.Example
curl -X POST https://hypercore.goldrushdata.com/info \
-H "Authorization: Bearer $GOLDRUSH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "meta",
"dex": ""
}'
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: "meta",
dex: "",
}),
});
const meta = 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": "meta", "dex": ""},
)
meta = response.json()
Response
A single JSON object describing the perp universe, the margin-tier tables it references, and the collateral token.{
"universe": [
{ "name": "BTC", "szDecimals": 5, "maxLeverage": 40, "marginTableId": 56 },
{ "name": "ETH", "szDecimals": 4, "maxLeverage": 25, "marginTableId": 55 },
{ "name": "MATIC", "szDecimals": 1, "maxLeverage": 20, "marginTableId": 20, "isDelisted": true }
],
"marginTables": [
[
50,
{
"description": "",
"marginTiers": [
{ "lowerBound": "0.0", "maxLeverage": 50 }
]
}
]
],
"collateralToken": 0
}
Field descriptions
array<object>
Array of perp asset metadata.
Show properties
Show properties
string
Asset symbol - e.g.
"BTC", "ETH". For HIP-3 markets, includes the deployer prefix.int
Number of decimals for size precision.
int
Maximum leverage for this asset.
int
Identifier of the margin-tier table in
marginTables that governs this asset.boolean
If true, the asset only supports isolated margin. Omitted when false.
boolean
If true, the asset has been delisted and is no longer tradeable. Omitted when false.
array<array>
Margin-tier tables, each a
[id, table] tuple. id matches a universe[].marginTableId; table holds a description and a marginTiers array of {lowerBound, maxLeverage} steps describing how max leverage decreases as position notional grows.int
Token index of the collateral asset backing the perp universe (USDC is
0).Related endpoints
metaAndAssetCtxs
fetch the full Hyperliquid perpetuals market universe with live per-asset trading context.
outcomeMeta
enumerate all active HIP-4 binary outcome markets on HyperCore.
spotMeta
fetch the spot universe metadata and full token configuration without live market context.
spotMetaAndAssetCtxs
fetch the spot universe metadata, token configuration, and live market data in a single call.
allPerpMetas
perpetuals universe and margin tables for every perp DEX in one request.