Public data API
InferenceX API reference
Read benchmark, provenance, dataset, CollectiveX, and diagnostic data from the same sources that power InferenceX.
Machine-readable contract
OpenAPI 3.1 JSON
Inspect the canonical schema or pass it directly to your tooling.
Open OpenAPI JSON- Specification
- v1 · OpenAPI 3.1
- Authentication
- AuthenticationPublished read endpoints do not require authentication.
- Response format
- Response formatResponses are JSON unless an endpoint explicitly documents CSV. Dates use YYYY-MM-DD and timestamps use UTC ISO 8601.
- Base URL
- https://inferencex.semianalysis.com
01 / Quickstart
Quickstart
Move from contract discovery to a real response in a few steps.
- 01
Discover configurations
Start with availability to choose real model, hardware, framework, and sequence values.
Discover configurationscurl "https://inferencex.semianalysis.com/api/v1/availability" - 02
Fetch benchmark rows
Then request the latest raw benchmark rows for a supported display model.
Fetch benchmark rowscurl "https://inferencex.semianalysis.com/api/v1/benchmarks?model=DeepSeek-R1-0528"
Use the API with your agent
The inferencex-api skill helps your agent navigate the public API: benchmarks, provenance, datasets, CollectiveX, and diagnostics. Validated single-turn PowerX export is the first worked example.
@semianalysisai/inferencex-skills
Requires Node 24 or later with npm and Codex or Claude Code. Installation and API queries require internet access.
Queries use the public API without database credentials. The separate MCP server has its own setup; this skill does not require or reconfigure it.
Install in your project
Run the command for your agent from your project directory, then start an agent session in that project.
npm exec --yes --package @semianalysisai/inferencex-skills@0.11.0 -- inferencex-skills install --target codexnpm exec --yes --package @semianalysisai/inferencex-skills@0.11.0 -- inferencex-skills install --target claudeTo upgrade, replace the version in the installation command with a new published version and rerun it with --force. Existing skills are otherwise skipped. Save local edits first: --force overwrites matching files and retains obsolete files.
To check the copied skill version, replace install with status in the command above and keep the same --target. Installer version identifies the installer; Installed version identifies the copied skill. Older installations may report unknown.
Usage examplesUse inferencex-api to export latest available measured PowerX data for DeepSeek-V4-Pro:
- Select single-turn requests with exactly 8192 input and 1024 output tokens; require strictV2.
- Create powerx.csv and powerx.json with the installed exporter, outside the InferenceX repository.
- Keep measured per-GPU watts and whole-deployment GPU energy distinct from provisioned-power estimates.
- Preserve raw model keys, source IDs/URLs, measurement dates, and separate snapshot metadata.
- Record the request URL, retrieval time, package version, local filters, and returned/selected counts.
- Explain why rows were excluded and list missing requested metrics.
- Keep missing metrics unavailable and genuine zeros unchanged. Explain empty results without inferring that all benchmarks are absent.PowerX cookbook and direct export
Open the cookbook at the installed path below for validity, units, missing-data handling, and provenance. The bundled Node 24 exporter also runs directly from your project, without an InferenceX checkout or database credentials.
- Codex
- .agents/skills/inferencex-api/references/powerx.md
- Claude Code
- .claude/skills/inferencex-api/references/powerx.md
node .agents/skills/inferencex-api/scripts/export-powerx.mjs \
--model DeepSeek-V4-Pro --isl 8192 --osl 1024 \
--format csv --output powerx.csv 2> powerx-report.logFor Claude Code, use the .claude/skills/inferencex-api path. For JSON, use --format json --output powerx.json. Omit --date for latest available observations, or add --date YYYY-MM-DD for an as-of cutoff. Keep the report log: it records request and coverage metadata even for an empty CSV.
avg_power_w is measured mean watts per GPU. Schema-v2 joules metrics without a role prefix describe whole-deployment GPU energy; prefill/decode-prefixed energy is role-local. These are existing observations, not new benchmark runs or facility-energy measurements.
02 / Conventions
Conventions
Shared request, error, and cache behavior for the supported surface.
- Errors
- JSON errors contain an error string. A 400 response means a parameter is missing or invalid, 404 means the requested record is absent, and 500 means the server query failed.
- Caching
- Read endpoints may be served from shared caches. CollectiveX uses short refresh windows, and framework releases use a one-hour shared cache.
- Identifiers
- Benchmark result IDs and GitHub run IDs are positive integers. Bulk diagnostic endpoints accept comma-separated, deduplicated IDs.
03 / Schema
BenchmarkRow and metrics
Interpret the primary benchmark payload and its measured fields.
- BenchmarkRow
Configuration fields sit beside a metrics map. Time metrics are seconds. Throughput fields ending in _per_gpu retain their legacy names but measure tokens per second per physical chip, including TPUs. num_prefill_gpu and num_decode_gpu count physical chips independently of logical TP; aggregate engines may mirror one count in both columns, so only disaggregated counts should be summed. Optional metrics.dp records data parallelism when supplied. For a P99 inter-token latency requirement, compare p99_itl in seconds (multiply by 1000 for milliseconds). p99_tpot measures per-request time per output token; the reciprocal of p99_intvty is not a substitute for p99_itl.
Shape
CodeBenchmarkRowsExample
Code{ "id": 421, "hardware": "h200_sxm", "framework": "vllm", "model": "dsr1", "precision": "fp8", "spec_method": "none", "disagg": false, "is_multinode": false, "prefill_tp": 8, "prefill_ep": 1, "prefill_dp_attention": false, "prefill_num_workers": 1, "decode_tp": 8, "decode_ep": 1, "decode_dp_attention": false, "decode_num_workers": 1, "num_prefill_gpu": 0, "num_decode_gpu": 8, "benchmark_type": "single_turn", "isl": 1024, "osl": 1024, "conc": 32, "offload_mode": "off", "image": "vllm/vllm-openai:v0.10.2", "recipe_fingerprint": "7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d", "metrics": { "median_ttft": 0.42, "median_tpot": 0.018, "tput_per_gpu": 128.4, "power_valid": 1, "power_metric_schema_version": 2, "avg_power_w": 678.5, "joules_per_output_token": 5.3, "joules_per_total_token": 2.65, "avg_temp_c": 61.2 }, "date": "2026-08-08", "run_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789" }Scroll to inspect the full example.
- Measured power
Benchmark rows may carry measured power, energy, and GPU-telemetry metric keys (avg_power_w, avg_total_gpu_power_w, total_gpu_energy_j, p75_power_w, p75_total_gpu_power_w, p90_power_w, p90_total_gpu_power_w, joules_per_*, avg_temp_c, peak_temp_c, avg_util_pct, avg_mem_used_mb). power_valid is tri-state: 1 means the measurement window was validated; 0 means validation failed and measured values are withheld end-to-end (the producer strips them and ingest scrubs them — treat any that remain as unreliable); absent means no validation verdict is available in this response. Legacy rows can lack the field, but absence alone establishes neither the reason, the measurement age, nor invalidity. power_metric_schema_version == 2 defines every unprefixed joules_per_* field as whole-deployment energy — unversioned disaggregated joules are ambiguous because those fields previously carried role-local values. workers[] carries the per-worker power/telemetry breakdown on multinode and disaggregated runs. power_invalid_reasons lists producer reason codes. power_audit optionally carries measurement-window bounds, device and sample counts, producer identity and the retained audit reference on valid and invalid rows. Missing audit metadata does not establish the measurement age or validity. For measured-power requests, use powerValid=strictV2 to require power_valid == 1 and power_metric_schema_version == 2. It is the only supported power filter. Omit powerValid for general benchmark requests so results remain available even when they lack valid power measurements.
Shape
CodeBenchmarkRowsExample
Code{ "power_valid": 1, "power_metric_schema_version": 2, "avg_power_w": 678.5, "joules_per_output_token": 5.3 }- ID-keyed maps
Bulk diagnostic responses are JSON objects whose keys are decimal benchmark result IDs. A missing key means no value was available for that ID.
Shape
CodeRecord<string, value>Example
Code{ "421": true }- CollectiveX versions
CollectiveX reads require an explicit supported contract version. Supported versions: 1.
Shape
CodeCollectiveXDataset
04 / Reference
Endpoint reference
Expand an operation for parameters, statuses, and complete examples.
28 operations
Core benchmark data
Benchmark results, availability, workflow provenance, evaluations, and reliability.
GETStable/api/v1/availabilityList available benchmark configurations
Returns model, sequence, precision, hardware, framework, speculative method, benchmark type, and date combinations that have benchmark data.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/availability'Responses
AvailabilityRowsAvailable configuration rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"precision": {
"type": "string"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"benchmark_type": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
}
},
"required": [
"model",
"isl",
"osl",
"precision",
"hardware",
"framework",
"spec_method",
"disagg",
"benchmark_type",
"date"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"model": "dsr1",
"isl": 1024,
"osl": 1024,
"precision": "fp8",
"hardware": "h200_sxm",
"framework": "vllm",
"spec_method": "none",
"disagg": false,
"benchmark_type": "single_turn",
"date": "2026-08-08"
}
]Scroll to inspect the full example.
The availability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/benchmarksRead benchmark results
Returns raw benchmark rows for a display model. Use date for an as-of snapshot, exact=true for that exact date, runId to constrain the latest lookup, or exactRun=true with a numeric runId for that run’s logical snapshot. An AgentX curve is scoped by model, hardware, framework, precision, and workload: a normal run replaces all prior topology, speculative-decoding, and offload variants in that curve. Explicit append-only runs may include the preceding same-image snapshot; producer IDs and URLs are preserved. Historical snapshots remain accessible. view=calculator returns a trimmed page-owned projection (measured power metrics and workers are removed; its allowlist may change). powerValid=strictV2 selects validated schema-v2 power measurements and cannot be combined with view=calculator. Omit powerValid to keep general benchmark results regardless of power validity.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| model | query | string | Required | Display model name. | DeepSeek-R1-0528 |
| date | query | date | Optional | Latest data on or before YYYY-MM-DD, unless exact is true. | 2026-08-08 |
| exact | query | boolean | Optional | Set true to require the supplied date exactly. | false |
| runId | query | integer | Optional | Numeric GitHub Actions run ID. Non-numeric values are ignored. | 123456789 |
| exactRun | query | boolean | Optional | With a numeric runId, return that run’s logical snapshot, including same-image predecessors for append-only runs. | false |
| view | query | enum | Optional | calculator trims each row to the page-owned metric allowlist the throughput calculator consumes and removes workers; measured power metrics are excluded from this view. Requires sequence. Omit for every stored metric, including measured power. | calculator |
| sequence | query | enum | Optional | Required when view=calculator and ignored otherwise. Unknown values yield 400 Unknown calculator sequence. | 1k/1k |
| powerValid | query | enum | Optional | Only strictV2 is accepted. It keeps rows whose metrics.power_valid is the number 1 and metrics.power_metric_schema_version is the number 2 (whole-deployment energy semantics). Omit this parameter to apply no power filter, preserving throughput and latency results even when power is missing or invalid. Other values, including an empty value, yield 400 Unknown powerValid filter. Cannot be combined with view=calculator. | strictV2 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmarks?model=DeepSeek-R1-0528'Responses
BenchmarkRowsBenchmark rows with scalar metrics in the metrics object.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"model": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"prefill_dp_attention": {
"type": "boolean"
},
"prefill_num_workers": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"decode_dp_attention": {
"type": "boolean"
},
"decode_num_workers": {
"type": "integer"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"benchmark_type": {
"type": "string"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"conc": {
"type": "integer"
},
"offload_mode": {
"type": "string"
},
"image": {
"type": [
"string",
"null"
]
},
"recipe_fingerprint": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"description": "Scalar metric map. Time metrics, including p99_itl and p99_tpot, are in seconds. p99_itl measures inter-token latency; p99_tpot measures per-request time per output token. Use the actual p99_itl field for an inter-token latency requirement, not the reciprocal of p99_intvty. Throughput metrics use tokens per second per GPU unless their name states otherwise; output_tput_per_gpu counts output tokens. Keys evolve independently; measured power / energy / GPU-telemetry keys are typed below.",
"properties": {
"power_valid": {
"type": "number",
"description": "Publication verdict: 1 = validated measurement window; 0 = failed validation — measured power/energy values are withheld from this row end-to-end, so treat any that remain as unreliable; absent = no validation verdict is available in this response. Absence alone establishes neither the reason, the measurement age, nor invalidity."
},
"power_metric_schema_version": {
"type": "number",
"description": "Power schema version. Version 2 defines every unprefixed joules_per_* field as whole-deployment energy, including on disaggregated runs."
},
"avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts during the measured load window."
},
"avg_total_gpu_power_w": {
"type": "number",
"description": "Mean total GPU power draw in watts across the measured deployment."
},
"total_gpu_energy_j": {
"type": "number",
"description": "Total GPU energy integrated over the measured deployment load window, in joules."
},
"p75_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p75_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"p90_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p90_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"joules_per_successful_query": {
"type": "number",
"description": "Whole-deployment energy in joules divided by successful requests."
},
"joules_per_output_token": {
"type": "number",
"description": "Energy per generated output token in joules; cluster-wide on schema-version-2 rows, including disaggregated runs."
},
"joules_per_total_token": {
"type": "number",
"description": "Total system energy divided by input plus output tokens; a workload-shape-fair view that does not treat prompt tokens as free."
},
"prefill_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across prefill workers; emitted only for deployments with distinct prefill and decode roles."
},
"decode_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across decode workers; emitted only for deployments with distinct prefill and decode roles."
},
"joules_per_input_token": {
"type": "number",
"description": "Energy per input token in joules; cluster-wide on schema-version-2 rows."
},
"prefill_joules_per_input_token": {
"type": "number",
"description": "Role-local prefill energy per input token in joules."
},
"decode_joules_per_output_token": {
"type": "number",
"description": "Role-local decode energy per generated output token in joules."
},
"avg_temp_c": {
"type": "number",
"description": "Mean per-GPU temperature in degrees Celsius during the load window."
},
"peak_temp_c": {
"type": "number",
"description": "Maximum instantaneous per-GPU temperature in degrees Celsius during the load window."
},
"avg_util_pct": {
"type": "number",
"description": "Mean per-GPU utilization percentage (0-100) during the load window."
},
"avg_mem_used_mb": {
"type": "number",
"description": "Mean per-GPU memory used in MB during the load window."
}
}
},
"workers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"worker_idx": {
"type": "integer"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
}
},
"num_gpus": {
"type": "integer"
},
"avg_power_w": {
"type": "number"
},
"avg_temp_c": {
"type": "number"
},
"peak_temp_c": {
"type": "number"
},
"avg_util_pct": {
"type": "number"
},
"avg_mem_used_mb": {
"type": "number"
}
},
"required": [
"role",
"worker_idx",
"num_gpus",
"avg_power_w"
],
"additionalProperties": false
}
},
"power_invalid_reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Producer snake_case reason codes explaining a withheld measurement, present when metrics.power_valid == 0. Absent on legacy rows and validated rows."
},
"power_audit": {
"type": "object",
"properties": {
"window_start_unix": {
"type": "number"
},
"window_end_unix": {
"type": "number"
},
"expected_gpu_count": {
"type": "integer"
},
"observed_gpu_count": {
"type": "integer"
},
"sample_count": {
"type": "integer"
},
"max_sample_gap_s": {
"type": "number"
},
"producer_sha": {
"type": [
"string",
"null"
]
},
"exporter_image_sha256": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"observed_gpu_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true,
"description": "Compact power measurement-window audit emitted alongside the power_valid verdict: window bounds, expected vs. observed GPU counts, sample statistics, and producer identity (producer_sha / exporter_image_sha256 are null for single-node telemetry without an srt-slurm producer). source is a relative path within the source run artifact bundle; observed_gpu_ids contains producer device identifiers, which may be indices rather than physical UUIDs. Present on valid and invalid rows when emitted; absence alone does not establish age or validity."
},
"date": {
"type": "string",
"format": "date"
},
"workflow_run_id": {
"type": "integer"
},
"run_started_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"run_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"hardware",
"framework",
"model",
"precision",
"spec_method",
"disagg",
"is_multinode",
"prefill_tp",
"prefill_ep",
"prefill_dp_attention",
"prefill_num_workers",
"decode_tp",
"decode_ep",
"decode_dp_attention",
"decode_num_workers",
"num_prefill_gpu",
"num_decode_gpu",
"benchmark_type",
"isl",
"osl",
"conc",
"offload_mode",
"image",
"recipe_fingerprint",
"metrics",
"date",
"run_url"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": 421,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"decode_tp": 8,
"decode_ep": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"benchmark_type": "single_turn",
"isl": 1024,
"osl": 1024,
"conc": 32,
"offload_mode": "off",
"image": "vllm/vllm-openai:v0.10.2",
"recipe_fingerprint": "7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d",
"metrics": {
"median_ttft": 0.42,
"median_tpot": 0.018,
"tput_per_gpu": 128.4,
"power_valid": 1,
"power_metric_schema_version": 2,
"avg_power_w": 678.5,
"joules_per_output_token": 5.3,
"joules_per_total_token": 2.65,
"avg_temp_c": 61.2
},
"date": "2026-08-08",
"run_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789"
}
]Scroll to inspect the full example.
The model is missing or unsupported, the calculator sequence is unknown, a supplied powerValid value is not strictV2, or powerValid=strictV2 is combined with view=calculator.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown model"
}The benchmark query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/benchmarks/historyRead benchmark history
Returns historical logical snapshots for one model and either a fixed input/output token pair or Agentic Traces. Replaced AgentX variants remain in their earlier snapshots. Append-only snapshots include inherited points with original producer metadata and separate curve snapshot metadata.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| model | query | string | Required | Display model name. | DeepSeek-R1-0528 |
| isl | query | integer | Optional | Positive input sequence length in tokens. Required unless benchmarkType=agentic_traces. | 1024 |
| osl | query | integer | Optional | Positive output sequence length in tokens. Required unless benchmarkType=agentic_traces. | 1024 |
| benchmarkType | query | string | Optional | Set to agentic_traces to read Agentic Traces history without ISL/OSL. | agentic_traces |
| view | query | enum | Optional | calculator trims each row to the metrics the throughput calculator consumes, for a smaller payload. Omit to retain other history metrics, including measured power when present. Both views omit mean_* and std_* statistics for ttft, tpot, itl, e2el, and intvty. | calculator |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmarks/history?model=DeepSeek-R1-0528&isl=1024&osl=1024'Responses
BenchmarkRowsHistorical benchmark rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"model": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"prefill_dp_attention": {
"type": "boolean"
},
"prefill_num_workers": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"decode_dp_attention": {
"type": "boolean"
},
"decode_num_workers": {
"type": "integer"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"benchmark_type": {
"type": "string"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"conc": {
"type": "integer"
},
"offload_mode": {
"type": "string"
},
"image": {
"type": [
"string",
"null"
]
},
"recipe_fingerprint": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"description": "Scalar metric map. Time metrics, including p99_itl and p99_tpot, are in seconds. p99_itl measures inter-token latency; p99_tpot measures per-request time per output token. Use the actual p99_itl field for an inter-token latency requirement, not the reciprocal of p99_intvty. Throughput metrics use tokens per second per GPU unless their name states otherwise; output_tput_per_gpu counts output tokens. Keys evolve independently; measured power / energy / GPU-telemetry keys are typed below.",
"properties": {
"power_valid": {
"type": "number",
"description": "Publication verdict: 1 = validated measurement window; 0 = failed validation — measured power/energy values are withheld from this row end-to-end, so treat any that remain as unreliable; absent = no validation verdict is available in this response. Absence alone establishes neither the reason, the measurement age, nor invalidity."
},
"power_metric_schema_version": {
"type": "number",
"description": "Power schema version. Version 2 defines every unprefixed joules_per_* field as whole-deployment energy, including on disaggregated runs."
},
"avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts during the measured load window."
},
"avg_total_gpu_power_w": {
"type": "number",
"description": "Mean total GPU power draw in watts across the measured deployment."
},
"total_gpu_energy_j": {
"type": "number",
"description": "Total GPU energy integrated over the measured deployment load window, in joules."
},
"p75_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p75_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"p90_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p90_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"joules_per_successful_query": {
"type": "number",
"description": "Whole-deployment energy in joules divided by successful requests."
},
"joules_per_output_token": {
"type": "number",
"description": "Energy per generated output token in joules; cluster-wide on schema-version-2 rows, including disaggregated runs."
},
"joules_per_total_token": {
"type": "number",
"description": "Total system energy divided by input plus output tokens; a workload-shape-fair view that does not treat prompt tokens as free."
},
"prefill_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across prefill workers; emitted only for deployments with distinct prefill and decode roles."
},
"decode_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across decode workers; emitted only for deployments with distinct prefill and decode roles."
},
"joules_per_input_token": {
"type": "number",
"description": "Energy per input token in joules; cluster-wide on schema-version-2 rows."
},
"prefill_joules_per_input_token": {
"type": "number",
"description": "Role-local prefill energy per input token in joules."
},
"decode_joules_per_output_token": {
"type": "number",
"description": "Role-local decode energy per generated output token in joules."
},
"avg_temp_c": {
"type": "number",
"description": "Mean per-GPU temperature in degrees Celsius during the load window."
},
"peak_temp_c": {
"type": "number",
"description": "Maximum instantaneous per-GPU temperature in degrees Celsius during the load window."
},
"avg_util_pct": {
"type": "number",
"description": "Mean per-GPU utilization percentage (0-100) during the load window."
},
"avg_mem_used_mb": {
"type": "number",
"description": "Mean per-GPU memory used in MB during the load window."
}
}
},
"workers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"worker_idx": {
"type": "integer"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
}
},
"num_gpus": {
"type": "integer"
},
"avg_power_w": {
"type": "number"
},
"avg_temp_c": {
"type": "number"
},
"peak_temp_c": {
"type": "number"
},
"avg_util_pct": {
"type": "number"
},
"avg_mem_used_mb": {
"type": "number"
}
},
"required": [
"role",
"worker_idx",
"num_gpus",
"avg_power_w"
],
"additionalProperties": false
}
},
"power_invalid_reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Producer snake_case reason codes explaining a withheld measurement, present when metrics.power_valid == 0. Absent on legacy rows and validated rows."
},
"power_audit": {
"type": "object",
"properties": {
"window_start_unix": {
"type": "number"
},
"window_end_unix": {
"type": "number"
},
"expected_gpu_count": {
"type": "integer"
},
"observed_gpu_count": {
"type": "integer"
},
"sample_count": {
"type": "integer"
},
"max_sample_gap_s": {
"type": "number"
},
"producer_sha": {
"type": [
"string",
"null"
]
},
"exporter_image_sha256": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"observed_gpu_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true,
"description": "Compact power measurement-window audit emitted alongside the power_valid verdict: window bounds, expected vs. observed GPU counts, sample statistics, and producer identity (producer_sha / exporter_image_sha256 are null for single-node telemetry without an srt-slurm producer). source is a relative path within the source run artifact bundle; observed_gpu_ids contains producer device identifiers, which may be indices rather than physical UUIDs. Present on valid and invalid rows when emitted; absence alone does not establish age or validity."
},
"date": {
"type": "string",
"format": "date"
},
"workflow_run_id": {
"type": "integer"
},
"run_started_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"run_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"hardware",
"framework",
"model",
"precision",
"spec_method",
"disagg",
"is_multinode",
"prefill_tp",
"prefill_ep",
"prefill_dp_attention",
"prefill_num_workers",
"decode_tp",
"decode_ep",
"decode_dp_attention",
"decode_num_workers",
"num_prefill_gpu",
"num_decode_gpu",
"benchmark_type",
"isl",
"osl",
"conc",
"offload_mode",
"image",
"recipe_fingerprint",
"metrics",
"date",
"run_url"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": 421,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"decode_tp": 8,
"decode_ep": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"benchmark_type": "single_turn",
"isl": 1024,
"osl": 1024,
"conc": 32,
"offload_mode": "off",
"image": "vllm/vllm-openai:v0.10.2",
"recipe_fingerprint": "7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d",
"metrics": {
"median_ttft": 0.42,
"median_tpot": 0.018,
"tput_per_gpu": 128.4,
"power_valid": 1,
"power_metric_schema_version": 2,
"avg_power_w": 678.5,
"joules_per_output_token": 5.3,
"joules_per_total_token": 2.65,
"avg_temp_c": 61.2
},
"date": "2026-08-08",
"run_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789"
}
]Scroll to inspect the full example.
Required parameters are missing or the model is unsupported.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "model, isl, and osl are required"
}The history query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/workflow-infoRead workflow provenance
Returns workflow runs, changelogs, available configurations, and per-run configuration coverage. Omit date for all dates.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| date | query | date | Optional | Optional YYYY-MM-DD filter. | 2026-08-08 |
| benchmarkType | query | string | Optional | Set to agentic_traces to scope per-run configuration coverage to Agentic Traces. | agentic_traces |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/workflow-info?date=2026-08-08'Responses
WorkflowInfoWorkflow provenance grouped into four arrays.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"runs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"github_run_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"run_attempt": {
"type": "integer"
},
"html_url": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time"
},
"date": {
"type": "string",
"format": "date"
}
},
"required": [
"github_run_id",
"name",
"conclusion",
"run_attempt",
"html_url",
"created_at",
"date"
],
"additionalProperties": false
}
},
"changelogs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"configs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"runConfigs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"runs",
"changelogs",
"configs",
"runConfigs"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"runs": [
{
"github_run_id": 123456789,
"name": "nightly-h200",
"conclusion": "success",
"run_attempt": 1,
"html_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789",
"created_at": "2026-08-08T03:00:00Z",
"date": "2026-08-08"
}
],
"changelogs": [],
"configs": [],
"runConfigs": []
}Scroll to inspect the full example.
date is not YYYY-MM-DD.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Invalid date format (YYYY-MM-DD required)"
}The workflow query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/evaluationsList evaluation aggregates
Returns latest-attempt evaluation results with configuration, task, provenance, and metric values.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/evaluations'Responses
EvaluationRowsEvaluation result rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"config_id": {
"type": "integer"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"model": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"prefill_dp_attention": {
"type": "boolean"
},
"prefill_num_workers": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"decode_dp_attention": {
"type": "boolean"
},
"decode_num_workers": {
"type": "integer"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"task": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
},
"conc": {
"type": [
"number",
"null"
]
},
"metrics": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"run_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"config_id",
"hardware",
"framework",
"model",
"precision",
"spec_method",
"disagg",
"is_multinode",
"prefill_tp",
"prefill_ep",
"prefill_dp_attention",
"prefill_num_workers",
"decode_tp",
"decode_ep",
"decode_dp_attention",
"decode_num_workers",
"num_prefill_gpu",
"num_decode_gpu",
"task",
"date",
"conc",
"metrics",
"timestamp",
"run_url"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": 72,
"config_id": 11,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"decode_tp": 8,
"decode_ep": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"task": "gpqa",
"date": "2026-08-08",
"conc": null,
"metrics": {
"accuracy": 0.78
},
"timestamp": "2026-08-08T03:00:00Z",
"run_url": null
}
]Scroll to inspect the full example.
The evaluation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/reliabilityList benchmark reliability
Returns successful and total run counts by hardware and date.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/reliability'Responses
ReliabilityRowsReliability count rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"hardware": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
},
"n_success": {
"type": "integer"
},
"total": {
"type": "integer"
}
},
"required": [
"hardware",
"date",
"n_success",
"total"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"hardware": "h200_sxm",
"date": "2026-08-08",
"n_success": 18,
"total": 20
}
]The reliability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}External feeds
Stable feeds for spreadsheets, release tracking, submissions, and runtime images.
GETStable/api/v1/tco-feedCompute a TCO feed
Computes Pareto-frontier throughput points or weighted scores for spreadsheet TCO models. Every scoring assumption is encoded in the URL. CSV returns the same selected view as a flat table.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| model | query | string | Optional | DB model key or display model name. | dsv4 |
| workloads | query | CSV workload list | Optional | Comma-separated <isl>x<osl> token pairs. | 1024x1024,8192x1024 |
| tiers | query | CSV number list | Optional | Positive interactivity targets in output tokens per second per user. | 30,50,75,100 |
| date | query | date | Optional | Use data on or before YYYY-MM-DD. Omit for latest. | 2026-08-08 |
| format | query | enum | Optional | Response encoding. | json |
| view | query | enum | Optional | points returns one row per hardware, workload, and tier. scores returns one row per hardware. | points |
| weights | query | CSV number list | Optional | scores only. One non-negative weight per tier, normalized to sum to 1. | 0.35,0.4,0.2,0.05 |
| workload_weights | query | CSV number list | Optional | scores only. One non-negative weight per workload, normalized to sum to 1. Defaults to equal weights. | 0.5,0.5 |
| alpha | query | number | Optional | scores only. Input-token value ratio in [0, 10]. | 0.25 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/tco-feed?model=dsv4&workloads=1024x1024,8192x1024&tiers=30,50,75,100&view=points&format=json'Responses
TcoFeedThe selected points or scores envelope.
Media type: application/jsonResponse shape
{
"oneOf": [
{
"type": "object",
"properties": {
"model": {
"type": "string"
},
"db_model_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"date": {
"type": [
"string",
"null"
],
"format": "date"
},
"workloads": {
"type": "array",
"items": {
"type": "string"
}
},
"tiers": {
"type": "array",
"items": {
"type": "number"
}
},
"rows": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"model",
"db_model_keys",
"date",
"workloads",
"tiers",
"rows"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"model": {
"type": "string"
},
"db_model_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"date": {
"type": [
"string",
"null"
],
"format": "date"
},
"workloads": {
"type": "array",
"items": {
"type": "string"
}
},
"tiers": {
"type": "array",
"items": {
"type": "number"
}
},
"weights": {
"type": "array",
"items": {
"type": "number"
}
},
"workload_weights": {
"type": "array",
"items": {
"type": "number"
}
},
"alpha": {
"type": "number"
},
"rows": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"model",
"db_model_keys",
"date",
"workloads",
"tiers",
"weights",
"workload_weights",
"alpha",
"rows"
],
"additionalProperties": false
}
]
}Scroll to inspect the full example.
Response example
{
"model": "dsv4",
"db_model_keys": [
"dsv4"
],
"date": null,
"workloads": [
"1024x1024"
],
"tiers": [
50
],
"rows": [
{
"hardware": "h200_sxm",
"workload": "1024x1024",
"tier": 50,
"output_tput_per_gpu": 118.2,
"boundary": "interpolated",
"is_interpolated": true,
"frontier_points": 3,
"frontier_min_interactivity": 30,
"frontier_max_interactivity": 75,
"latest_date": "2026-08-08",
"oldest_frontier_date": "2026-08-06",
"evidence_date": {
"from": "2026-08-06",
"to": "2026-08-08"
}
}
]
}Scroll to inspect the full example.
Alternate representation: text/csv
Response shape
{
"type": "string"
}Response example
hardware,workload,tier,output_tput_per_gpu,boundary,frontier_points,frontier_min_interactivity,frontier_max_interactivity,latest_date,oldest_frontier_date
h200_sxm,1024x1024,50,118.2,interpolated,3,30,75,2026-08-08,2026-08-06
A model, date, view, format, workload, tier, weight, or alpha value is invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Invalid tiers: expected comma-separated positive numbers"
}The TCO calculation failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/submissionsRead submission coverage
Returns configuration-level submission summaries and daily hardware submission volume.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/submissions'Responses
SubmissionsSubmission summary and volume arrays.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"summary": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"date": {
"type": "string",
"format": "date"
},
"total_datapoints": {
"type": "integer"
},
"distinct_sequences": {
"type": "integer"
},
"distinct_concurrencies": {
"type": "integer"
},
"max_concurrency": {
"type": "integer"
},
"image": {
"type": [
"string",
"null"
]
}
},
"required": [
"model",
"hardware",
"framework",
"precision",
"spec_method",
"disagg",
"is_multinode",
"num_prefill_gpu",
"num_decode_gpu",
"prefill_tp",
"prefill_ep",
"decode_tp",
"decode_ep",
"date",
"total_datapoints",
"distinct_sequences",
"distinct_concurrencies",
"max_concurrency",
"image"
],
"additionalProperties": false
}
},
"volume": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date"
},
"hardware": {
"type": "string"
},
"datapoints": {
"type": "integer"
}
},
"required": [
"date",
"hardware",
"datapoints"
],
"additionalProperties": false
}
}
},
"required": [
"summary",
"volume"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"summary": [
{
"model": "dsr1",
"hardware": "h200_sxm",
"framework": "vllm",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"prefill_tp": 1,
"prefill_ep": 1,
"decode_tp": 8,
"decode_ep": 1,
"date": "2026-08-08",
"total_datapoints": 24,
"distinct_sequences": 3,
"distinct_concurrencies": 8,
"max_concurrency": 256,
"image": "vllm/vllm-openai:v0.10.2"
}
],
"volume": [
{
"date": "2026-08-08",
"hardware": "h200_sxm",
"datapoints": 24
}
]
}Scroll to inspect the full example.
The submissions query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/framework-releasesRead latest framework releases
Returns the latest non-draft, non-prerelease GitHub release tag for vLLM and SGLang. A null value means the upstream lookup had no usable release.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/framework-releases'Responses
FrameworkReleasesFramework keys mapped to release tags or null.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": [
"string",
"null"
]
}
}Response example
{
"vllm": "v0.10.2",
"sglang": "v0.4.10"
}The release lookup failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/latest-imagesRead latest runtime images
Returns the latest container image observed for each benchmark configuration and sequence.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/latest-images'Responses
LatestImageRowsLatest image rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"benchmark_type": {
"type": "string"
},
"image": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
}
},
"required": [
"model",
"hardware",
"framework",
"precision",
"spec_method",
"disagg",
"isl",
"osl",
"benchmark_type",
"image",
"date"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"model": "dsr1",
"hardware": "h200_sxm",
"framework": "vllm",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"isl": 1024,
"osl": 1024,
"benchmark_type": "single_turn",
"image": "vllm/vllm-openai:v0.10.2",
"date": "2026-08-08"
},
{
"model": "dsr1",
"hardware": "h200_sxm",
"framework": "vllm",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"isl": null,
"osl": null,
"benchmark_type": "agentic_traces",
"image": "vllm/vllm-openai:v0.10.2",
"date": "2026-08-08"
}
]Scroll to inspect the full example.
The image query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}Datasets
Dataset registry, metadata, conversation indexes, and conversation structures.
GETStable/api/v1/datasetsList ingested datasets
Returns dataset registry cards without the large chart_data field.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets'Responses
DatasetRecordsDataset registry records.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"variant": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"hf_url": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
},
"conversation_count": {
"type": "integer"
},
"summary": {
"type": "object",
"additionalProperties": true
},
"ingested_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"slug",
"label",
"variant",
"description",
"hf_url",
"license",
"conversation_count",
"summary",
"ingested_at"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": "ds_01",
"slug": "cc-traces-weka",
"label": "CC Traces Weka",
"variant": "default",
"description": "Agentic coding traces",
"hf_url": "https://huggingface.co/datasets/example/cc-traces-weka",
"license": "Apache-2.0",
"conversation_count": 1200,
"summary": {
"totalIn": 8200000,
"totalOut": 1700000
},
"ingested_at": "2026-08-08T03:00:00Z"
}
]Scroll to inspect the full example.
The dataset registry query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/datasets/{slug}Read dataset details
Returns one dataset registry record plus its precomputed chart_data distributions.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| slug | path | string | Required | Dataset slug from the registry. | cc-traces-weka |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka'Responses
DatasetDetailDataset metadata with chart_data.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"variant": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"hf_url": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
},
"conversation_count": {
"type": "integer"
},
"summary": {
"type": "object",
"additionalProperties": true
},
"ingested_at": {
"type": "string",
"format": "date-time"
},
"chart_data": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"id",
"slug",
"label",
"variant",
"description",
"hf_url",
"license",
"conversation_count",
"summary",
"ingested_at",
"chart_data"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"id": "ds_01",
"slug": "cc-traces-weka",
"label": "CC Traces Weka",
"variant": "default",
"description": "Agentic coding traces",
"hf_url": null,
"license": "Apache-2.0",
"conversation_count": 1200,
"summary": {},
"ingested_at": "2026-08-08T03:00:00Z",
"chart_data": {
"tokens": {
"bins": [
0,
1000,
2000
],
"counts": [
140,
320
]
}
}
}Scroll to inspect the full example.
No dataset has this slug.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The dataset query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/datasets/{slug}/conversationsList dataset conversations
Returns a searchable, sorted, paginated conversation index. It contains counts only, not the full conversation structure.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| slug | path | string | Required | Dataset slug from the registry. | cc-traces-weka |
| search | query | string | Optional | Trimmed conversation ID search, at most 100 characters. | trace-018 |
| limit | query | integer | Optional | Page size, clamped to 1 through 200. | 50 |
| offset | query | integer | Optional | Zero-based row offset. Negative values become 0. | 0 |
| sort | query | enum | Optional | Sort by tokens, turns, subagents, or id. Unknown values fall back to tokens. | tokens |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka/conversations?limit=50&offset=0&sort=tokens'Responses
ConversationListTotal count and conversation index items.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"total": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"conv_id": {
"type": "string"
},
"models": {
"type": "array",
"items": {
"type": "string"
}
},
"num_turns": {
"type": "integer"
},
"num_subagent_groups": {
"type": "integer"
},
"total_in": {
"type": "integer"
},
"total_out": {
"type": "integer"
},
"total_cached": {
"type": "integer"
}
},
"required": [
"conv_id",
"models",
"num_turns",
"num_subagent_groups",
"total_in",
"total_out",
"total_cached"
],
"additionalProperties": false
}
}
},
"required": [
"total",
"items"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"total": 1200,
"items": [
{
"conv_id": "trace-018",
"models": [
"claude-sonnet-4"
],
"num_turns": 42,
"num_subagent_groups": 3,
"total_in": 18200,
"total_out": 4200,
"total_cached": 9600
}
]
}Scroll to inspect the full example.
search exceeds 100 characters.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "search too long"
}No dataset has this slug.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The conversation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/datasets/{slug}/conversations/{convId}Read a conversation structure
Returns one conversation and its flamegraph-ready nested structure. App Router decodes each path value once.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| slug | path | string | Required | Dataset slug from the registry. | cc-traces-weka |
| convId | path | string | Required | Conversation ID exactly as listed by the conversation index. | trace-018 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka/conversations/trace-018'Responses
ConversationDetailConversation counts and nested structure.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"conv_id": {
"type": "string"
},
"models": {
"type": "array",
"items": {
"type": "string"
}
},
"num_turns": {
"type": "integer"
},
"num_subagent_groups": {
"type": "integer"
},
"total_in": {
"type": "integer"
},
"total_out": {
"type": "integer"
},
"total_cached": {
"type": "integer"
},
"structure": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"conv_id",
"models",
"num_turns",
"num_subagent_groups",
"total_in",
"total_out",
"total_cached",
"structure"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"conv_id": "trace-018",
"models": [
"claude-sonnet-4"
],
"num_turns": 42,
"num_subagent_groups": 3,
"total_in": 18200,
"total_out": 4200,
"total_cached": 9600,
"structure": {
"name": "trace-018",
"children": []
}
}Scroll to inspect the full example.
The dataset or conversation does not exist.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The conversation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}CollectiveX
Versioned collective communication sweep results and run discovery.
GETBeta/api/v1/collectivex/latestRead the latest CollectiveX dataset
Discovers and ingests the latest sweep when needed, then returns its versioned neutral dataset. A stored run is served if refresh fails.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| version | query | enum | Required | CollectiveX contract version. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/latest?version=1'Responses
CollectiveXDatasetLatest CollectiveX run, coverage, series, and optional KV cases.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"run": {
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"run_attempt": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"source_sha": {
"type": "string"
},
"requested_cases": {
"type": "integer"
},
"terminal_cases": {
"type": "integer"
},
"measured_cases": {
"type": "integer"
},
"unsupported_cases": {
"type": "integer"
},
"failed_cases": {
"type": "integer"
},
"requested_points": {
"type": "integer"
},
"terminal_points": {
"type": "integer"
},
"measured_points": {
"type": "integer"
},
"covered_skus": {
"type": "array",
"items": {
"type": "string"
}
},
"kv_requested_cases": {
"type": "integer"
},
"kv_measured_cases": {
"type": "integer"
}
},
"required": [
"run_id",
"run_attempt",
"generated_at",
"conclusion",
"source_sha",
"requested_cases",
"terminal_cases",
"measured_cases",
"unsupported_cases",
"failed_cases",
"requested_points",
"terminal_points",
"measured_points",
"covered_skus"
],
"additionalProperties": false
},
"coverage": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"series": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"kv": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"version",
"run",
"coverage",
"series"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"version": 1,
"run": {
"run_id": "123456789",
"run_attempt": 1,
"generated_at": "2026-08-08T03:00:00Z",
"conclusion": "success",
"source_sha": "0123456789abcdef",
"requested_cases": 12,
"terminal_cases": 12,
"measured_cases": 10,
"unsupported_cases": 2,
"failed_cases": 0,
"requested_points": 48,
"terminal_points": 48,
"measured_points": 40,
"covered_skus": [
"h200_sxm"
],
"kv_requested_cases": 4,
"kv_measured_cases": 4
},
"coverage": [],
"series": [],
"kv": []
}Scroll to inspect the full example.
version is missing or unsupported.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown version"
}No stored or discoverable run exists.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}Upstream sweep discovery is unavailable and no stored fallback exists.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}Upstream sweep processing is temporarily unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}The stored run query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/collectivex/runsList CollectiveX runs
Returns progressively discovered run summaries. discovery_complete=false means clients may poll while older runs are still being discovered.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| version | query | enum | Required | CollectiveX contract version. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/runs?version=1'Responses
CollectiveXRunListVersion, run summaries, and discovery state.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"runs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"run_attempt": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"covered_skus": {
"type": "array",
"items": {
"type": "string"
}
},
"requested_cases": {
"type": "integer"
},
"measured_cases": {
"type": "integer"
},
"requested_points": {
"type": "integer"
},
"terminal_points": {
"type": "integer"
},
"terminal_counts": {
"type": "object",
"properties": {
"measured": {
"type": "integer"
},
"unsupported": {
"type": "integer"
},
"failed": {
"type": "integer"
}
},
"required": [
"measured",
"unsupported",
"failed"
],
"additionalProperties": false
},
"kv_cases": {
"type": "object",
"properties": {
"requested": {
"type": "integer"
},
"measured": {
"type": "integer"
}
},
"required": [
"requested",
"measured"
],
"additionalProperties": false
}
},
"required": [
"run_id",
"run_attempt",
"generated_at",
"conclusion",
"covered_skus",
"requested_cases",
"measured_cases",
"requested_points",
"terminal_points",
"terminal_counts"
],
"additionalProperties": false
}
},
"discovery_complete": {
"type": "boolean"
}
},
"required": [
"version",
"runs",
"discovery_complete"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"version": 1,
"runs": [
{
"run_id": "123456789",
"run_attempt": 1,
"generated_at": "2026-08-08T03:00:00Z",
"conclusion": "success",
"covered_skus": [
"h200_sxm"
],
"requested_cases": 12,
"measured_cases": 10,
"requested_points": 48,
"terminal_points": 48,
"terminal_counts": {
"measured": 40,
"unsupported": 8,
"failed": 0
},
"kv_cases": {
"requested": 4,
"measured": 4
}
}
],
"discovery_complete": true
}Scroll to inspect the full example.
version is missing or unsupported.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown version"
}Discovery failed and no stored run list exists.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}Discovery is temporarily unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}The stored run list query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/collectivex/runs/{runId}Read a CollectiveX run
Returns one positive numeric run ID as a versioned CollectiveX dataset, discovering and ingesting it on demand when possible.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| runId | path | integer | Required | Positive GitHub Actions run ID. | 123456789 |
| version | query | enum | Required | CollectiveX contract version. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/runs/123456789?version=1'Responses
CollectiveXDatasetThe requested CollectiveX dataset.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"run": {
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"run_attempt": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"source_sha": {
"type": "string"
},
"requested_cases": {
"type": "integer"
},
"terminal_cases": {
"type": "integer"
},
"measured_cases": {
"type": "integer"
},
"unsupported_cases": {
"type": "integer"
},
"failed_cases": {
"type": "integer"
},
"requested_points": {
"type": "integer"
},
"terminal_points": {
"type": "integer"
},
"measured_points": {
"type": "integer"
},
"covered_skus": {
"type": "array",
"items": {
"type": "string"
}
},
"kv_requested_cases": {
"type": "integer"
},
"kv_measured_cases": {
"type": "integer"
}
},
"required": [
"run_id",
"run_attempt",
"generated_at",
"conclusion",
"source_sha",
"requested_cases",
"terminal_cases",
"measured_cases",
"unsupported_cases",
"failed_cases",
"requested_points",
"terminal_points",
"measured_points",
"covered_skus"
],
"additionalProperties": false
},
"coverage": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"series": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"kv": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"version",
"run",
"coverage",
"series"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"version": 1,
"run": {
"run_id": "123456789",
"run_attempt": 1,
"generated_at": "2026-08-08T03:00:00Z",
"conclusion": "success",
"source_sha": "0123456789abcdef",
"requested_cases": 12,
"terminal_cases": 12,
"measured_cases": 10,
"unsupported_cases": 2,
"failed_cases": 0,
"requested_points": 48,
"terminal_points": 48,
"measured_points": 40,
"covered_skus": [
"h200_sxm"
],
"kv_requested_cases": 4,
"kv_measured_cases": 4
},
"coverage": [],
"series": [],
"kv": []
}Scroll to inspect the full example.
version or runId is invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown version or run id"
}The run does not exist.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The run cannot be fetched from the upstream source.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}Upstream processing is temporarily unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}The run query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}Diagnostic reads
Per-result trace, cache, request, sibling, and server metric diagnostics.
GETBeta/api/v1/agentic-aggregatesRead agentic aggregate percentiles
Returns ISL, OSL, KV-cache utilization, and prefix-cache hit-rate percentiles keyed by benchmark result ID. IDs are deduplicated and at most 200 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 200 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/agentic-aggregates?ids=421,422'Responses
AgenticAggregateMapResult IDs mapped to aggregate percentiles or null metric groups.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"isl": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"osl": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"kvCacheUtil": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"prefixCacheHitRate": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"isl",
"osl",
"kvCacheUtil",
"prefixCacheHitRate"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
{
"421": {
"id": 421,
"isl": {
"mean": 18320,
"p50": 16440,
"p75": 20110,
"p90": 24880,
"p95": 27940,
"p99": 31900,
"n": 512
},
"osl": null,
"kvCacheUtil": null,
"prefixCacheHitRate": null
}
}Scroll to inspect the full example.
ids is missing, malformed, or exceeds 200 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The aggregate query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/benchmark-siblingsRead sibling benchmark points
Returns the benchmark SKU and every point in the same hardware, framework, model, precision, method, benchmark type, and workflow run. Siblings may have different workloads. is_current is true only for the requested result ID; false does not mean stale, invalid, or superseded.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmark-siblings?id=421'Responses
BenchmarkSiblingsSKU metadata and sibling navigation rows.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"sku": {
"type": "object",
"additionalProperties": true
},
"siblings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"sku",
"siblings"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"sku": {
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"benchmark_type": "agentic_traces",
"github_run_id": 123456789,
"date": "2026-08-08",
"dataset_slug": "cc-traces-weka"
},
"siblings": [
{
"id": 421,
"conc": 32,
"offload_mode": "off",
"decode_tp": 8,
"decode_ep": 1,
"decode_pp": null,
"decode_dcp_size": 8,
"decode_pcp_size": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_pp": null,
"prefill_dcp_size": 8,
"prefill_pcp_size": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"disagg": false,
"is_multinode": false,
"tput_per_gpu": 128.4,
"total_requests": 320,
"is_current": true,
"has_trace": true
}
]
}Scroll to inspect the full example.
id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No benchmark result has this ID.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The sibling query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/derived-agentic-metricsRead derived agentic metrics
Returns normalized interactivity percentiles keyed by benchmark result ID. IDs are deduplicated and at most 200 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 200 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/derived-agentic-metrics?ids=421,422'Responses
DerivedAgenticMetricMapResult IDs mapped to p75 and p90 normalized interactivity.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"p75_e2e_norm_intvty": {
"type": [
"number",
"null"
]
},
"p90_e2e_norm_intvty": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"p75_e2e_norm_intvty",
"p90_e2e_norm_intvty"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
{
"421": {
"id": 421,
"p75_e2e_norm_intvty": 31.2,
"p90_e2e_norm_intvty": 24.8
}
}ids is missing, malformed, or exceeds 200 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The derived metric query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/request-timelineRead a request timeline
Returns a versioned benchmark window and per-request replay identity, source provenance, dispatch, acknowledgement, completion, token, phase, worker, and cancellation timing.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/request-timeline?id=421'Responses
RequestTimelineTimeline metadata and request records. Nanosecond event fields are offsets from startNs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"startNs": {
"type": "integer"
},
"endNs": {
"type": "integer"
},
"durationS": {
"type": "number"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cid": {
"type": "string"
},
"ri": {
"type": "integer"
},
"ti": {
"type": "integer"
},
"srcTrace": {
"type": "string"
},
"srcOuter": {
"type": "integer"
},
"srcInner": {
"type": "integer"
},
"srcKind": {
"type": "string"
},
"wid": {
"type": "string"
},
"ad": {
"type": "integer"
},
"phase": {
"type": "string"
},
"credit": {
"type": "integer"
},
"start": {
"type": "integer"
},
"ack": {
"type": [
"number",
"null"
]
},
"end": {
"type": "integer"
},
"ttftMs": {
"type": [
"number",
"null"
]
},
"tpotMs": {
"type": [
"number",
"null"
]
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"cancelled": {
"type": "boolean"
}
},
"required": [
"cid",
"ti",
"wid",
"ad",
"phase",
"credit",
"start",
"ack",
"end",
"ttftMs",
"tpotMs",
"isl",
"osl",
"cancelled"
],
"additionalProperties": false
}
}
},
"required": [
"version",
"startNs",
"endNs",
"durationS",
"requests"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"version": 6,
"startNs": 1000000000,
"endNs": 2400000000,
"durationS": 1.4,
"requests": [
{
"cid": "trace-018",
"ri": 0,
"ti": 0,
"wid": "7",
"ad": 0,
"phase": "profiling",
"credit": 0,
"start": 1200000,
"ack": 1800000,
"end": 420000000,
"ttftMs": 42.3,
"tpotMs": 18.1,
"isl": 18320,
"osl": 410,
"cancelled": false
}
]
}Scroll to inspect the full example.
id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No timeline exists for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The timeline query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/server-logRead a benchmark server log
Returns one stored .log/.out file for a benchmark result ID. Use file with a name from server-log-files. Add offset or limit for a bounded chunk; add download=1 to stream the complete selected file as a text attachment.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
| file | query | string | Optional | Artifact-relative filename. Omit it to read the primary/legacy file. | results/router.log |
| offset | query | integer | Optional | Zero-based character offset. Supplying offset or limit enables chunked mode. | 0 |
| limit | query | integer | Optional | Chunk size in characters, from 1 to 262144. Defaults to 65536. | 65536 |
| download | query | integer | Optional | Set to 1 to stream the complete selected file as a text attachment. Cannot be combined with offset or limit. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log?id=421&file=results%2Frouter.log&offset=0&limit=65536'Responses
ServerLog | ServerLogChunk | text/plain attachmentBenchmark result ID and server log text, plus range metadata in chunked mode.
Media type: application/jsonResponse shape
{
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"serverLog": {
"type": "string"
}
},
"required": [
"id",
"serverLog"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"fileName": {
"type": "string"
},
"serverLog": {
"type": "string"
},
"offset": {
"type": "integer"
},
"nextOffset": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"fileName",
"serverLog",
"offset",
"nextOffset"
],
"additionalProperties": false
}
]
}Scroll to inspect the full example.
Response example
{
"id": 421,
"fileName": "results/router.log",
"serverLog": "INFO router initialized\n",
"offset": 0,
"nextOffset": 24
}id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No server log exists for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The server log query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/server-log-searchSearch complete benchmark logs
Runs a literal, case-insensitive search across every stored .log/.out file for one benchmark result. The bounded response contains contextual snippets without transferring complete log files.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
| q | query | string | Required | Literal search text, from 1 to 256 characters. | router ready |
| limit | query | integer | Optional | Maximum matches to return, from 1 to 100. Defaults to 50. | 50 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log-search?id=421&q=router%20ready&limit=50'Responses
ServerLogSearchResultBounded matches with filenames, character offsets, and contextual text.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"query": {
"type": "string"
},
"matches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fileName": {
"type": "string"
},
"offset": {
"type": "integer"
},
"before": {
"type": "string"
},
"match": {
"type": "string"
},
"after": {
"type": "string"
}
},
"required": [
"fileName",
"offset",
"before",
"match",
"after"
],
"additionalProperties": false
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"id",
"query",
"matches",
"truncated"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"id": 421,
"query": "router ready",
"matches": [
{
"fileName": "results/router.log",
"offset": 128,
"before": "INFO ",
"match": "router ready",
"after": " on port 8000\n"
}
],
"truncated": false
}Scroll to inspect the full example.
The search parameters are invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Invalid query"
}The complete-log search failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/server-log-filesList stored benchmark log files
Lists every .log and .out filename retained from the matching server-log artifact. Paths are returned relative to the artifact root, with the primary file first.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log-files?id=421'Responses
ServerLogFileNamesArtifact-relative .log/.out filenames.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "string"
}
}Response example
[
"results/server.log",
"results/benchmark.log",
"results/router.log"
]id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No log bundle exists for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The log filename query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/log-availabilityCheck server-log availability
Returns only benchmark result IDs that have a stored server log. IDs are deduplicated and at most 500 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 500 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/log-availability?ids=421,422'Responses
LogAvailabilityMapAvailable result IDs mapped to true. Missing keys have no server log.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "boolean"
}
}Response example
{
"421": true
}ids is missing, malformed, or exceeds 500 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Expected ids as comma-separated positive integers"
}The server-log availability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/trace-availabilityCheck trace availability
Returns only benchmark result IDs that have a stored trace. IDs are deduplicated and at most 500 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 500 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-availability?ids=421,422'Responses
TraceAvailabilityMapAvailable result IDs mapped to true. Missing keys have no trace.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "boolean"
}
}Response example
{
"421": true
}ids is missing, malformed, or exceeds 500 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The trace availability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/trace-histogramsRead trace histograms
Returns input and output token count arrays for each benchmark result ID. IDs are deduplicated and at most 200 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 200 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-histograms?ids=421,422'Responses
TraceHistogramMapResult IDs mapped to raw ISL and OSL samples.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"isl": {
"type": "array",
"items": {
"type": "number"
}
},
"osl": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"id",
"isl",
"osl"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
{
"421": {
"id": 421,
"isl": [
18220,
19340,
15110
],
"osl": [
410,
380,
512
]
}
}Scroll to inspect the full example.
ids is missing, malformed, or exceeds 200 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The histogram query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/trace-server-metricsRead trace server metrics
Returns point metadata and chart-ready aggregate time series for cache usage, queue depth, prefill and decode throughput, and prompt-token sources. metricSources contains source descriptors; source-specific arrays are loaded by the point-detail UI only when selected.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-server-metrics?id=421'Responses
TraceServerMetricsPoint metadata, window bounds, and server metric series.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"additionalProperties": true
},
"startNs": {
"type": "integer"
},
"endNs": {
"type": "integer"
},
"durationS": {
"type": "number"
},
"timeslicesCount": {
"type": "integer"
},
"kvCacheUsage": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"prefixCacheHitRate": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"queueDepth": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"promptTokensBySource": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"prefillTps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"decodeTps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"prefixCacheHitsTps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"hostKvCacheUsage": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"kvCacheUsageByEngine": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"kvCachePoolTokens": {
"type": [
"number",
"null"
]
},
"metricSources": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"meta",
"startNs",
"endNs",
"durationS",
"timeslicesCount",
"kvCacheUsage",
"prefixCacheHitRate",
"queueDepth",
"promptTokensBySource",
"prefillTps",
"decodeTps",
"prefixCacheHitsTps",
"hostKvCacheUsage",
"kvCacheUsageByEngine",
"kvCachePoolTokens",
"metricSources"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"meta": {
"id": 421,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"conc": 32,
"date": "2026-08-08"
},
"startNs": 1000000000,
"endNs": 2400000000,
"durationS": 1.4,
"timeslicesCount": 2,
"kvCacheUsage": [
{
"t": 0,
"v": 0.44
}
],
"prefixCacheHitRate": [],
"queueDepth": [],
"promptTokensBySource": {},
"prefillTps": [],
"decodeTps": [],
"prefixCacheHitsTps": [],
"hostKvCacheUsage": [],
"kvCacheUsageByEngine": [],
"kvCachePoolTokens": 983040,
"metricSources": []
}Scroll to inspect the full example.
id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No server metrics exist for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The server metric query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}