HyperCore Info Endpoint
Access comprehensive Hyperliquid exchange data through Dwellir's HyperCore Info Endpoint. Query market metadata, account states, vault information, and more with higher rate limits than public endpoints.
Dwellir's HyperCore Info Endpoint provides comprehensive access to Hyperliquid exchange data through a simple HTTP JSON API. Query market metadata, user account information, vault data, and exchange status with a single POST request.
Why Hyperliquid? Build on the trading-focused EVM and HyperCore ecosystem built for onchain perpetuals and market data with HyperCore market structure, sub-second finality, and direct access to trading-focused data services.
Authenticate HyperCore Info requests by sending your Dwellir API key in the x-api-key header to https://api-hyperliquid-mainnet-info.n.dwellir.com/info.
Key Benefits
Higher Rate Limits
Unlike public Hyperliquid endpoints, Dwellir's HyperCore Info Endpoint provides significantly higher rate limits based on your subscription plan. This enables you to build production-grade applications without worrying about hitting rate limit restrictions.
Rate limits scale with your plan:
- Free tier: Standard public limits
- Growth tier: 10x higher limits
- Enterprise tier: Custom rate limits tailored to your needs
Single Endpoint Architecture
All info endpoints are accessible through a single URL with different request types. This simplifies integration and reduces connection overhead.
Base URL: https://api-hyperliquid-mainnet-info.n.dwellir.com/info
Custom REST API Development
We're actively developing additional REST API endpoints for Hyperliquid. If you need custom endpoints or specialized data access patterns not covered by the standard Info Endpoint, contact our team to discuss your requirements.
Available Endpoint Categories
Market Metadata
Access trading pair information, leverage limits, and exchange status.
| Endpoint | Purpose |
|---|---|
| meta | Get trading pair metadata including leverage limits |
| spotMeta | Get spot trading asset metadata |
| exchangeStatus | Monitor exchange health and status |
| perpDexs | Get all deployed perpetual DEXs with assets and configuration |
User Accounts
Query account states, positions, orders, and fee information.
| Endpoint | Purpose |
|---|---|
| clearinghouseState | Get perpetual trading account state |
| batchClearinghouseStates | Batch query account states for multiple users |
| openOrders | Retrieve all open orders for a user |
| spotClearinghouseState | Get spot trading account balances |
| userFees | Get user fee rates and volume data |
| userAbstraction | Get account abstraction mode (unified, portfolio margin, etc.) |
| activeAssetData | Get leverage, max trade sizes, and available capital for a user and coin |
Vaults
Access vault performance data and user positions.
| Endpoint | Purpose |
|---|---|
| leadingVaults | Get top performing vaults |
| vaultSummaries | Get summary data for all vaults |
| userVaultEquities | Get user's vault positions |
Validators
Query validator and delegation information.
| Endpoint | Purpose |
|---|---|
| validatorL1Votes | Get validator voting data |
| delegatorSummary | Get delegation summary for a user |
Advanced Endpoints
Specialized endpoints for advanced use cases.
| Endpoint | Purpose |
|---|---|
| userRateLimit | Get rate limit information |
| delegations | Get staking delegation data |
| subAccounts | Get sub-account information |
| frontendOpenOrders | Get orders formatted for UI display |
| liquidatable | Check liquidation status |
| webData2 | Get comprehensive web interface data |
| extraAgents | Get extra agent information |
| userRole | Get user role information |
| maxBuilderFee | Get maximum builder fee |
| maxMarketOrderNtls | Get maximum market order notionals |
Quick Start
Authentication
All requests use the shared info endpoint and include your Dwellir API key in the URL path:
curl -X POST 'https://api-hyperliquid-mainnet-info.n.dwellir.com/info' \
-H 'Content-Type: application/json' \
-d '{"type":"meta"}'Request Format
All endpoints follow the same pattern:
{
"type": "ENDPOINT_TYPE",
"param1": "value1",
"param2": "value2"
}Example: Get Exchange Metadata
curl -X POST 'https://api-hyperliquid-mainnet-info.n.dwellir.com/info' \
-H 'Content-Type: application/json' \
-d '{"type":"meta"}'Example: Get User Account State
curl -X POST 'https://api-hyperliquid-mainnet-info.n.dwellir.com/info' \
-H 'Content-Type: application/json' \
-d '{
"type": "clearinghouseState",
"user": "0x63E8c7C149556D5f34F833419A287bb9Ef81487f"
}'Error Handling
HTTP Status Codes
| Code | Description | Solution |
|---|---|---|
200 | Success | Request completed successfully |
400 | Bad Request | Check request format and parameters |
401 | Unauthorized | Verify API key is correct |
422 | Unprocessable Entity | Check parameter values |
429 | Rate Limit | Implement backoff or upgrade plan |
500 | Server Error | Retry with exponential backoff |
Error Response Format
{
"error": "Error message description",
"code": "ERROR_CODE"
}Best Practices
1. Implement Proper Error Handling
Always include retry logic with exponential backoff:
async function queryEndpoint(payload, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fetch(
'https://api-hyperliquid-mainnet-info.n.dwellir.com/info',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload)
}
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return await response.json();
} catch (error) {
if (i === maxRetries - 1) throw error;
await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
}
}
}2. Cache Appropriately
Cache metadata endpoints to reduce API calls:
// Cache meta data for 1 hour
const metaCache = new Map();
const META_TTL = 3600000; // 1 hour in ms
async function getMeta() {
const cached = metaCache.get('meta');
if (cached && Date.now() - cached.timestamp < META_TTL) {
return cached.data;
}
const data = await queryEndpoint({ type: 'meta' });
metaCache.set('meta', { data, timestamp: Date.now() });
return data;
}3. Monitor Rate Limits
Check response headers to track rate limit usage:
const response = await fetch(url, options);
const remaining = response.headers.get('X-RateLimit-Remaining');
const reset = response.headers.get('X-RateLimit-Reset');
if (parseInt(remaining) < 10) {
console.warn('Approaching rate limit');
}4. Use Timeouts
Set reasonable timeouts for all requests:
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 10000); // 10s timeout
try {
const response = await fetch(url, {
...options,
signal: controller.signal
});
return await response.json();
} finally {
clearTimeout(timeout);
}Code Examples
Python
import requests
from typing import Dict, Any
ENDPOINT = 'https://api-hyperliquid-mainnet-info.n.dwellir.com/info'
def query_info_endpoint(endpoint_type: str, params: Dict[str, Any] = None) -> Dict:
"""Query the HyperCore Info Endpoint"""
payload = {"type": endpoint_type}
if params:
payload.update(params)
headers = {
'Content-Type': 'application/json',
}
response = requests.post(ENDPOINT, json=payload, headers=headers, timeout=10)
response.raise_for_status()
return response.json()
# Get metadata
meta = query_info_endpoint('meta')
print(f"Available pairs: {len(meta['universe'])}")
# Get user account state
user_state = query_info_endpoint(
'clearinghouseState',
{'user': '0x63E8c7C149556D5f34F833419A287bb9Ef81487f'}
)
print(f"Account value: {user_state['marginSummary']['accountValue']}")JavaScript/TypeScript
const ENDPOINT = 'https://api-hyperliquid-mainnet-info.n.dwellir.com/info';
interface InfoRequest {
type: string;
[key: string]: any;
}
async function queryInfoEndpoint<T>(request: InfoRequest): Promise<T> {
const response = await fetch(ENDPOINT, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(request)
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
}
return await response.json();
}
// Get metadata
const meta = await queryInfoEndpoint({ type: 'meta' });
console.log(`Available pairs: ${meta.universe.length}`);
// Get user state
const userState = await queryInfoEndpoint({
type: 'clearinghouseState',
user: '0x63E8c7C149556D5f34F833419A287bb9Ef81487f'
});
console.log(`Account value: ${userState.marginSummary.accountValue}`);Support
Need help with the HyperCore Info Endpoint?
- Dashboard: dashboard.dwellir.com
- Email: support@dwellir.com
- Documentation: docs.dwellir.com
For custom endpoint development or enterprise solutions, contact our team.
Access comprehensive Hyperliquid exchange data with Dwellir's enterprise-grade infrastructure. Get your API key →
Hyperliquid Pricing
Transparent pricing for Hyperliquid infrastructure including gRPC, Order Book Server, Dedicated Nodes, and Historical Data access.
activeAssetData
Get active asset trading data for a specific user and coin on Hyperliquid. Query leverage settings, maximum trade sizes, available trading amounts, and current mark price.