curl --request GET \
--url https://api.0xarchive.io/v1/data-quality/positions \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/data-quality/positions"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/data-quality/positions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/data-quality/positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": [
{
"venue": "hyperliquid",
"product": "core",
"live_snapshot_ts": "2023-11-07T05:31:56Z",
"live_age_seconds": 94,
"stale": false,
"live_quality": "complete",
"hourly_snapshot_ts": "2023-11-07T05:31:56Z",
"built_through": "2023-11-07T05:31:56Z",
"finalized_through": "2023-11-07T05:31:56Z"
}
],
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>"
}
}{
"code": 401,
"error": "Missing or invalid API key. Provide X-API-Key header."
}{
"code": 429,
"error": "Rate limit exceeded"
}{
"code": 503,
"error": "Account positions are not available right now.",
"error_code": "positions_unavailable"
}Get account positions freshness
0xArchive API reference for Get account positions freshness. Includes authentication, parameters, response shape, examples, and route-safe implementation notes.
curl --request GET \
--url https://api.0xarchive.io/v1/data-quality/positions \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/data-quality/positions"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/data-quality/positions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/data-quality/positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": [
{
"venue": "hyperliquid",
"product": "core",
"live_snapshot_ts": "2023-11-07T05:31:56Z",
"live_age_seconds": 94,
"stale": false,
"live_quality": "complete",
"hourly_snapshot_ts": "2023-11-07T05:31:56Z",
"built_through": "2023-11-07T05:31:56Z",
"finalized_through": "2023-11-07T05:31:56Z"
}
],
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>"
}
}{
"code": 401,
"error": "Missing or invalid API key. Provide X-API-Key header."
}{
"code": 429,
"error": "Rate limit exceeded"
}{
"code": 503,
"error": "Account positions are not available right now.",
"error_code": "positions_unavailable"
}X-API-Key with this request. See REST authentication.Shared request rules
Shared request rules
Machine schema
Machine schema
Authorizations
API key for authentication. Get yours at https://0xarchive.io/dashboard
Response
Positions freshness per product
Freshness of every positions product.
true
Hide child attributes
Hide child attributes
hyperliquid, lighter, or rh_lighter.
"hyperliquid"
core, hip3, lighter, or rh_lighter.
"core"
Latest live snapshot.
Age of the latest live snapshot in seconds.
94
True when the latest live snapshot is older than 12 minutes, or there is none.
false
Quality of the latest live snapshot.
"complete"
Latest committed hourly snapshot.
Every event before this instant is built into the change log and as-of state.
Every event before this instant is final and will not be re-derived.
Response metadata
Hide child attributes
Hide child attributes
Number of records returned
Cursor for pagination (timestamp). Use this value as the cursor parameter to fetch the next page of results.
Unique request ID for support
Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.
Was this page helpful?