Data coverage per dataset
curl --request POST \
--url 'https://api.hypedexer.com/info#dataCoverage' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "dataCoverage"
}
'import requests
url = "https://api.hypedexer.com/info#dataCoverage"
payload = { "type": "dataCoverage" }
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: 'dataCoverage'})
};
fetch('https://api.hypedexer.com/info#dataCoverage', 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://api.hypedexer.com/info#dataCoverage",
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' => 'dataCoverage'
]),
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://api.hypedexer.com/info#dataCoverage"
payload := strings.NewReader("{\n \"type\": \"dataCoverage\"\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://api.hypedexer.com/info#dataCoverage")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"dataCoverage\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hypedexer.com/info#dataCoverage")
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\": \"dataCoverage\"\n}"
response = http.request(request)
puts response.read_body{
"generatedAt": "2026-09-28T13:08:49Z",
"datasets": {
"fills": {
"from": "2024-11-18T00:00:00Z",
"latest": "2026-09-28T13:08:48Z",
"delaySeconds": 1
},
"spotFills": {
"from": "2024-11-18T00:00:00Z",
"latest": "2026-09-28T13:08:47Z",
"delaySeconds": 2
},
"orders": {
"from": "2026-06-27T00:00:00Z",
"latest": null,
"lastWrite": "2026-09-28T13:08:47Z",
"delaySeconds": 2
},
"twaps": {
"from": "2025-09-01T00:00:00Z",
"latest": "2026-09-28T13:07:39Z",
"delaySeconds": 70
},
"userFunding": {
"from": "2025-09-27T10:00:00Z",
"latest": "2026-09-28T13:00:00Z",
"delaySeconds": 529
},
"ledger": {
"from": "2025-09-27T09:29:00Z",
"latest": "2026-09-28T13:08:44Z",
"delaySeconds": 5
},
"liquidations": {
"from": "2025-03-22T00:00:00Z",
"latest": "2026-09-28T13:08:28Z",
"delaySeconds": 21
}
}
}{
"error": "Invalid API key"
}Coverage
Data coverage per dataset
For each dataset, from (start of complete coverage, UTC) and latest (the most recent event timestamp present in the region answering your request), plus delaySeconds (now minus latest). Use it to tell an empty answer from a window that is not covered: a window is covered when from ≤ window ≤ latest.
fills,spotFills,userFunding,ledger,twaps,liquidations: exact latest event timestamp. Funding settles hourly, so its delay grows to about an hour between settlements.orders:lastWrite(time of the last write; the indexer follows the chain within seconds) instead oflatest; order statuses live in the EU region only.- Answers are cached 30 seconds. No parameters.
POST
/
info#dataCoverage
Data coverage per dataset
curl --request POST \
--url 'https://api.hypedexer.com/info#dataCoverage' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "dataCoverage"
}
'import requests
url = "https://api.hypedexer.com/info#dataCoverage"
payload = { "type": "dataCoverage" }
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: 'dataCoverage'})
};
fetch('https://api.hypedexer.com/info#dataCoverage', 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://api.hypedexer.com/info#dataCoverage",
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' => 'dataCoverage'
]),
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://api.hypedexer.com/info#dataCoverage"
payload := strings.NewReader("{\n \"type\": \"dataCoverage\"\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://api.hypedexer.com/info#dataCoverage")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"dataCoverage\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hypedexer.com/info#dataCoverage")
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\": \"dataCoverage\"\n}"
response = http.request(request)
puts response.read_body{
"generatedAt": "2026-09-28T13:08:49Z",
"datasets": {
"fills": {
"from": "2024-11-18T00:00:00Z",
"latest": "2026-09-28T13:08:48Z",
"delaySeconds": 1
},
"spotFills": {
"from": "2024-11-18T00:00:00Z",
"latest": "2026-09-28T13:08:47Z",
"delaySeconds": 2
},
"orders": {
"from": "2026-06-27T00:00:00Z",
"latest": null,
"lastWrite": "2026-09-28T13:08:47Z",
"delaySeconds": 2
},
"twaps": {
"from": "2025-09-01T00:00:00Z",
"latest": "2026-09-28T13:07:39Z",
"delaySeconds": 70
},
"userFunding": {
"from": "2025-09-27T10:00:00Z",
"latest": "2026-09-28T13:00:00Z",
"delaySeconds": 529
},
"ledger": {
"from": "2025-09-27T09:29:00Z",
"latest": "2026-09-28T13:08:44Z",
"delaySeconds": 5
},
"liquidations": {
"from": "2025-03-22T00:00:00Z",
"latest": "2026-09-28T13:08:28Z",
"delaySeconds": 21
}
}
}{
"error": "Invalid API key"
}Authorizations
Your Hypedexer API key, sent as Authorization: Bearer <key>. The X-API-Key: <key> header and the api_key query parameter are accepted as well.
Body
application/json
Available options:
dataCoverage