List history

Returns each model's measured score per run over time, oldest first, with the change between runs.

GET /v1/benchmark/history

Addresshttps://api.hanzo.ai/v1/benchmark/history
MethodGET
Operationget_benchmark_history
AuthAuthorization: Bearer $HANZO_API_KEY

Returns each model's measured score per run over time, oldest first, with the change between runs.

This is the counterweight to a leaderboard: the board shows the latest run because that is what "how good is it" means, and a single latest number cannot distinguish a model that has always been strong from one that just improved, or from one that regressed after a provider changed something. Both matter for routing, and only one of them is visible on a board.

Runs with no id — attempts recorded before runs existed — group under the empty run, which is honestly what they are: one undated measurement.

Request

2 fields.

FieldInTypeRequiredDescription
Benchmarkquerystring—Benchmark is the catalog id to read, defaulting to gpqa_diamond.
Modelquerystring—Model filters to one model.

Response

StatusBodyMeaning
200benchmark.historyOutok
defaultproblem-detailsrefused

200 body — 11 fields.

FieldInTypeAlwaysDescription
benchmarkbodystring—Benchmark is the catalog id these histories are about.
databodybenchmark.ModelHistory[]—Data is one entry per model, ordered by model name.
data[].modelbodystring—Model is the system these runs measured.
data[].pointsbodybenchmark.RunPoint[]—Points is every run, oldest first.
data[].points[].atbodystring (date-time)—At is when the run was recorded.
data[].points[].deltabodynumber (double)—Delta is the change in score from the previous run for this model, absent on the first.
data[].points[].nbodyinteger (int64)—N is how many items the run covered.
data[].points[].runbodystring—Run is the measurement id these attempts were recorded under.
data[].points[].scorebodynumber (double)—Score is accuracy over the items this run covered, as a percentage.
data[].trendbodynumber (double)—Trend is the change from the first run to the last, absent when there has only been one.
totalbodyinteger (int64)—Total is how many models Data holds.

Failure carries the platform error shape — see Errors.

Examples

hanzo benchmark history
import { Configuration, BenchmarkApi } from 'hanzoai';

const api = new BenchmarkApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getBenchmarkHistory();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import BenchmarkApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = BenchmarkApi(client).get_benchmark_history()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.BenchmarkAPI.GetBenchmarkHistory(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, benchmark_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = benchmark_api::get_benchmark_history(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.BenchmarkApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new BenchmarkApi(client).getBenchmarkHistory();
curl https://api.hanzo.ai/v1/benchmark/history \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool benchmark, op get_benchmark_history — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "benchmark",
         "arguments": {
           "op": "get_benchmark_history",
           "input": {}
         }
       }
     }'

Benchmark API · All Hanzo APIs · Interactive reference

Was this page useful?