API Conventions
Shared rules for every endpoint: auth, precision, coverage, pagination, validation, errors, and operational limits.
Authenticate every request
Every call requires a developer token in the X-API-Key header. See the Authentication page for key handling and 401 responses. Every endpoint is a GET with query parameters, never a JSON body.
curl -sS "https://api.dexhunt.app/v1/networks" \
-H "X-API-Key: hlsk_your_developer_key"{
"items": [
{
"network": "hyperliquid",
"displayName": "Hyperliquid",
"scanAssetCount": 250
}
],
"nextCursor": null
}Coverage and field types
DexHunt scans discovered wallets and aggregates their current state. Wallet and market responses do not claim global exchange coverage unless the response explicitly says so.
Coverage
Returned data covers wallets discovered and scanned by DexHunt.
scanned_wallets
Decimals
All monetary, price, PnL, ratio, and percentage fields are strings. Parse them with decimal-safe libraries.
JSON string
Timestamps
Times are UTC ISO-8601 strings unless a field is named time, where epoch milliseconds are also included.
UTC
Nullable analytics
Fields enriched from wallet profiles or live upstream data can be null when unavailable.
null = unavailable
Page through results
Paginated endpoints return an items array and a nextCursor. Send the cursor back unchanged to fetch the next page. Treat cursors as opaque even when they look like an offset or timestamp.
curl -sS "https://api.dexhunt.app/v1/networks/hyperliquid/wallets?limit=2&cursor=2" \
-H "X-API-Key: hlsk_your_developer_key"{
"items": [
{
"address": "0x2222222222222222222222222222222222222222",
"accountTotalValue": "940000.25",
"totalPositionValue": "210000.00",
"observedAt": "2026-06-12T12:03:00Z"
}
],
"nextCursor": null,
"total": 3,
"coverage": "scanned_wallets"
}Directory limits
Wallets, market positions, rankings, activity, and liquidation levels default to 25 or 100 depending on the endpoint and cap at 200 or 1000.
endpoint-specific
Wallet activity limits
Open orders, fills, funding, and transfers default to 100 rows and cap at 500 rows.
100 / 500
Timeseries limits
Candles, open interest, and positioning default to 500 points and cap at 5000 points.
500 / 5000
Validate query values
Invalid parameters return a 400 bad_request response. The rules below cover common path and query values.
network
Network ids are normalized to lowercase and must match ^[a-z][a-z0-9_-]{1,63}$.
example: hyperliquid
asset
Assets allow letters, numbers, colon, underscore, and hyphen. Builder-style symbols such as xyz:SP500 are valid.
max 128 chars
address
Wallet addresses are normalized to lowercase and must be 0x plus 40 hex characters.
0x...
direction
Directional filters accept long or short. Wallet list direction can also return neutral as a derived value.
long | short
curl -sS "https://api.dexhunt.app/v1/networks/hyperliquid/markets/BTC/candles?interval=2m" \
-H "X-API-Key: hlsk_your_developer_key"{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "Unsupported interval",
"instance": "/v1/networks/hyperliquid/markets/BTC/candles",
"code": "bad_request",
"requestId": "f1f3f4a9-2b51-47e9-9966-2e6d78c4b0a3"
}Intervals and time windows
Candles and open interest accept intervals from 15m upward:
15m, 30m, 1h, 2h, 4h, 8h, 12h, 1d, 3d, 1w, and 1M.
Positioning and positioning flow accept their own exact interval set: 15m, 30m, 1h, 2h, 4h, 8h, 12h, 1d, 3d, 1w, and 1M. Requests below15m return HTTP 400. Positioning flow is calculated from adjacent positioning points and is not a separate stored dataset.
The from, to, and cursor parameters accept either an ISO instant such as 2026-06-12T12:00:00Z or epoch milliseconds such as 1781265600000.
Handle problem details
Errors use RFC7807 problem details with application/problem+json. The response includes a stable code and a requestId that can be passed to support.
curl -sS "https://api.dexhunt.app/v1/networks"{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "Invalid or missing API key",
"instance": "/v1/networks",
"code": "unauthorized",
"requestId": "7d9c42f7-0dd0-4d4b-82dc-2c4d83b7f68a"
}400
The path or query is invalid, a required parameter is missing, or the requested network is unsupported.
bad_request
401
The X-API-Key header is absent, malformed, revoked, or unknown.
unauthorized
404
The resource is absent, such as an unknown wallet profile or market symbol.
not_found
500
An unexpected server-side failure. Safe to retry idempotent GETs with backoff.
internal_error
Availability and limits
The API does not publish a fixed per-token GET limit or return rate-limit headers. Set timeouts and retry 500 responses with backoff.
Live passthrough endpoints
Open orders, fills, funding, and transfers read live wallet activity from Hyperliquid. These endpoints can be slower or temporarily unavailable compared with the cached analytics endpoints.
What to do next
Wallets
Use the wallet directory and profile endpoints with the shared pagination and nullable-field rules.
Timeseries
Read supported intervals and paging examples for candles, open interest, and positioning.
Endpoint catalog
Check the complete path list before adding routes to a client SDK.