Get transaction index time series
curl --request GET \
--url https://data-api.compute-index.com/v1/txn-index/history \
--header 'Authorization: Bearer <token>'import requests
url = "https://data-api.compute-index.com/v1/txn-index/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data-api.compute-index.com/v1/txn-index/history', 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://data-api.compute-index.com/v1/txn-index/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data-api.compute-index.com/v1/txn-index/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data-api.compute-index.com/v1/txn-index/history")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data-api.compute-index.com/v1/txn-index/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"date": "2026-07-13",
"index_value": 2.49,
"p5": 1.5496,
"p95": 4.2089,
"txn_count": 12
},
{
"date": "2026-07-14",
"index_value": 2.5084,
"p5": 1.5467,
"p95": 4.2426,
"txn_count": 13
},
{
"date": "2026-07-15",
"index_value": 2.5255,
"p5": 1.5613,
"p95": 4.2661,
"txn_count": 10
}
],
"filters": {
"contract_type": "combined",
"days_back": 3,
"gpu_family": "hopper",
"gpu_group": null,
"index_type": "blended_sigmoid",
"region_group": "US"
},
"gpu_family": "hopper",
"gpu_group": null,
"index_type": "blended_sigmoid",
"total_days": 3
}Blended Index
Blended Index: Index History
Returns EWMA-smoothed transaction index time series with envelope-clipped p5/p95
GET
/
v1
/
txn-index
/
history
Get transaction index time series
curl --request GET \
--url https://data-api.compute-index.com/v1/txn-index/history \
--header 'Authorization: Bearer <token>'import requests
url = "https://data-api.compute-index.com/v1/txn-index/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data-api.compute-index.com/v1/txn-index/history', 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://data-api.compute-index.com/v1/txn-index/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data-api.compute-index.com/v1/txn-index/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data-api.compute-index.com/v1/txn-index/history")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data-api.compute-index.com/v1/txn-index/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"date": "2026-07-13",
"index_value": 2.49,
"p5": 1.5496,
"p95": 4.2089,
"txn_count": 12
},
{
"date": "2026-07-14",
"index_value": 2.5084,
"p5": 1.5467,
"p95": 4.2426,
"txn_count": 13
},
{
"date": "2026-07-15",
"index_value": 2.5255,
"p5": 1.5613,
"p95": 4.2661,
"txn_count": 10
}
],
"filters": {
"contract_type": "combined",
"days_back": 3,
"gpu_family": "hopper",
"gpu_group": null,
"index_type": "blended_sigmoid",
"region_group": "US"
},
"gpu_family": "hopper",
"gpu_group": null,
"index_type": "blended_sigmoid",
"total_days": 3
}Premium — historical data. This endpoint requires the
blended-index-history scope, granted separately from blended-index — a token can have current access without history. Contact david@compute-index.com to request access.Officially administered series. Where General Index (GX) administers an index, this endpoint serves the GX-published value. That is currently
hopper and blackwell at family level and h100 at GPU level, all in region_group=US; the set grows as further indices are listed.Rows served from GX differ in two ways: p5, p95 and txn_count are null, because GX publishes no envelope or transaction counts, and the values are not smoothed again on our side, because the GX series is already smoothed.Every other scope is unchanged — our own computation, EWMA-smoothed, with the full envelope. That covers h200, a100, b200 and b300, any family GX does not administer, and index_type=raw at every scope, which has no GX counterpart.A single response can therefore mix both. Read p5/p95/txn_count as optional rather than assuming either shape.gpu_family (defaults to hopper when neither is given) or gpu_group (both returns 400); see Current Index for the granularity and index_type rules. days_back is capped at 730; for a longer baseline use the Informational Index history, which has no cap.
Example
# Family-level: Hopper (US, combined), last 2 years
curl -H "Authorization: Bearer $TOKEN" \
"https://data-api.compute-index.com/v1/txn-index/history?gpu_family=hopper&index_type=blended_sigmoid®ion_group=US&contract_type=combined&days_back=730"
# Daily GPU-level: H100, last 180 days
curl -H "Authorization: Bearer $TOKEN" \
"https://data-api.compute-index.com/v1/txn-index/history?gpu_group=h100&days_back=180"
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
GPU family (e.g., hopper, blackwell). Mutually exclusive with gpu_group. Defaults to hopper when gpu_group is not given
GPU group for daily GPU-level indices (h100, h200, a100, b200, b300). Mutually exclusive with gpu_family
Index type: blended_sigmoid, raw
Region group (US only at launch)
Contract type (combined only)
Number of days to look back
Required range:
1 <= x <= 730Response
Successful Response
Response for transaction index history time series