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.

  1. 01

    Discover configurations

    Start with availability to choose real model, hardware, framework, and sequence values.

    Discover configurations
    curl "https://inferencex.semianalysis.com/api/v1/availability"
  2. 02

    Fetch benchmark rows

    Then request the latest raw benchmark rows for a supported display model.

    Fetch benchmark rows
    curl "https://inferencex.semianalysis.com/api/v1/benchmarks?model=DeepSeek-R1-0528"
Skill version · 1.0.0

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.

Codex
npm exec --yes --package @semianalysisai/inferencex-skills@1.0.0 -- inferencex-skills install --target codex
Claude Code
npm exec --yes --package @semianalysisai/inferencex-skills@1.0.0 -- inferencex-skills install --target claude

To 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 examples
First example: measured PowerX
Use 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.
- Use the installed CLI's powerx export command to create separate CSV and JSON evidence bundles outside the InferenceX repository. Keep each result.csv or result.json with its manifest.json and responses/, and verify each bundle before reporting.
- 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 CLI 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
Run the installed CLI (Codex)
mkdir -p evidence
node .agents/skills/inferencex-api/scripts/inferencex.mjs powerx export \
  --model DeepSeek-V4-Pro --isl 8192 --osl 1024 \
  --format csv --output-dir evidence/powerx-csv
node .agents/skills/inferencex-api/scripts/inferencex.mjs verify evidence/powerx-csv

For Claude Code, use the .claude/skills/inferencex-api path. For JSON, use --format json --output-dir evidence/powerx-json and verify that directory. Use a new output directory for each export. It contains result.csv or result.json, manifest.json, and responses/; keep the whole bundle to preserve request and coverage metadata even for an empty result. Omit --date for latest available observations, or add --date YYYY-MM-DD for an as-of cutoff.

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.

Client request counts
Optional inferencex-cli/<version> or inferencex-skill/<version> User-Agent markers attribute public GET arrivals, including cache hits and retries. X-InferenceX-Traffic separates normal, ci and validation requests. Only route templates, package versions, transport, environment and traffic class are recorded; no query values or user identifiers. Packaged clients can omit attribution with INFERENCEX_TELEMETRY=0. These headers do not affect authentication, response data or caching.
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

Code
BenchmarkRows

Example

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

Code
BenchmarkRows

Example

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

Code
Record<string, value>

Example

Code
{
  "421": true
}
CollectiveX versions

CollectiveX reads require an explicit supported contract version. Supported versions: 1.

Shape

Code
CollectiveXDataset

04 / Reference

Endpoint reference

Expand an operation for parameters, statuses, and complete examples.

51 operations

Read-only dashboard views

Dashboard data and calculations with explicit filters.

GETBeta/api/v1/views/optionsDiscover every views-API option domain

Static discovery endpoint for the views API: models (with DB keys, category and release date), sequences, precisions, hardware (with vendor, architecture, TDP and per-provider hourly cost), frameworks, speculative-decoding methods, percentiles, x-axis and scale modes, chart metrics (bilingual labels, unit, polarity), quick-filter domains, reliability ranges, and overview/calculator/fleet option sets — plus the defaults the dashboard itself uses. Values come from the same registries the dashboard renders its controls from, so this response is the authoritative input catalog for the other /api/v1/views endpoints. No database access.

Parameters

GET /api/v1/views/options: Parameters
NameLocationTypeRequirementDescriptionExample
formatqueryenumOptionalResponse encoding. This discovery endpoint is JSON-only.json

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/options'

Responses

ViewOptions
200

Every option domain the views endpoints accept, plus dashboard-parity defaults.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "options"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "properties": {
        "format": {
          "type": "string",
          "enum": [
            "json"
          ]
        }
      },
      "required": [
        "format"
      ],
      "additionalProperties": false
    },
    "models": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "dbKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "type": "string"
          },
          "releaseDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "compareSlug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "dbKeys",
          "category",
          "releaseDate",
          "compareSlug"
        ],
        "additionalProperties": false
      }
    },
    "sequences": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "labelZh": {
            "type": "string"
          },
          "urlSegment": {
            "type": [
              "string",
              "null"
            ]
          },
          "isl": {
            "type": [
              "integer",
              "null"
            ]
          },
          "osl": {
            "type": [
              "integer",
              "null"
            ]
          },
          "kind": {
            "type": "string"
          },
          "deprecated": {
            "type": "boolean"
          }
        },
        "required": [
          "key",
          "label",
          "labelZh",
          "urlSegment",
          "isl",
          "osl",
          "kind",
          "deprecated"
        ],
        "additionalProperties": false
      }
    },
    "precisions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "hardware": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "vendor": {
            "type": "string"
          },
          "arch": {
            "type": "string"
          },
          "tdpW": {
            "type": "number"
          },
          "costPerHour": {
            "type": "object",
            "properties": {
              "h": {
                "type": "number"
              },
              "r": {
                "type": "number"
              }
            },
            "required": [
              "h",
              "r"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "key",
          "label",
          "vendor",
          "arch",
          "tdpW",
          "costPerHour"
        ],
        "additionalProperties": false
      }
    },
    "frameworks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "family": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "key",
          "label",
          "family"
        ],
        "additionalProperties": false
      }
    },
    "specMethods": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "percentiles": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "xAxisModes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scaleModes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "metrics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "configKey": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "labelZh": {
            "type": "string"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "polarity": {
            "type": [
              "string",
              "null"
            ]
          },
          "group": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "configKey",
          "label",
          "labelZh",
          "unit",
          "polarity",
          "group",
          "source"
        ],
        "additionalProperties": false
      }
    },
    "quickFilters": {
      "type": "object",
      "properties": {
        "vendors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "frameworkFamilies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "deployments": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "specModes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "vendors",
        "frameworkFamilies",
        "deployments",
        "specModes"
      ],
      "additionalProperties": false
    },
    "reliabilityRanges": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "overview": {
      "type": "object",
      "additionalProperties": true
    },
    "calculator": {
      "type": "object",
      "additionalProperties": true
    },
    "fleet": {
      "type": "object",
      "additionalProperties": true
    },
    "defaults": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params",
    "models",
    "sequences",
    "precisions",
    "hardware",
    "frameworks",
    "metrics",
    "defaults"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "options",
  "apiVersion": "v1",
  "params": {
    "format": "json"
  },
  "models": [
    {
      "name": "DeepSeek-V4-Pro",
      "dbKeys": [
        "dsv4"
      ],
      "category": "default",
      "releaseDate": "2026-06-30",
      "compareSlug": "deepseek-v4-pro"
    }
  ],
  "sequences": [
    {
      "key": "8k/1k",
      "label": "8k/1k",
      "labelZh": "8k/1k",
      "urlSegment": "8k-1k",
      "isl": 8192,
      "osl": 1024,
      "kind": "fixed",
      "deprecated": false
    }
  ],
  "precisions": [
    "fp4",
    "fp4fp8",
    "fp8",
    "bf16",
    "int4"
  ],
  "hardware": [
    {
      "key": "h200",
      "label": "H200",
      "vendor": "NVIDIA",
      "arch": "Hopper",
      "tdpW": 700,
      "costPerHour": {
        "h": 2.29,
        "n": 2.99,
        "r": 3.11
      }
    }
  ],
  "frameworks": [
    {
      "key": "trt",
      "label": "TRTLLM",
      "family": "trt"
    }
  ],
  "specMethods": [
    "mtp",
    "none"
  ],
  "percentiles": [
    "p75",
    "p90"
  ],
  "xAxisModes": [
    "interactivity",
    "ttft",
    "e2e",
    "e2e-normalized-interactivity"
  ],
  "scaleModes": [
    "auto",
    "linear",
    "log"
  ],
  "metrics": [
    {
      "key": "tokensPerDollarN",
      "configKey": "y_tokensPerDollarN",
      "label": "Tokens per Dollar (Neocloud)",
      "labelZh": "每美元 Token 数(Neocloud)",
      "unit": null,
      "polarity": "higher",
      "group": "Cost",
      "source": "benchmark"
    }
  ],
  "quickFilters": {
    "vendors": [
      "NVIDIA",
      "AMD"
    ],
    "frameworkFamilies": [
      "vllm",
      "sglang",
      "trt",
      "atom"
    ],
    "deployments": [
      "single-node",
      "multi-node",
      "disagg"
    ],
    "specModes": [
      "mtp",
      "stp"
    ]
  },
  "reliabilityRanges": [
    "last-3-days",
    "last-7-days",
    "last-month",
    "last-3-months",
    "all-time"
  ],
  "defaults": {
    "model": "DeepSeek-V4-Pro",
    "sequence": "8k/1k",
    "metric": "y_tokensPerDollarH",
    "percentile": "p90",
    "xmode": "interactivity"
  }
}

Scroll to inspect the full example.

400

The format value is invalid — this endpoint is JSON-only.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unsupported format: csv",
  "param": "format",
  "allowed": [
    "json"
  ]
}
500

Option assembly failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/inferenceGet the main inference chart view

Returns the chart-ready series the /inference scatter chart renders: per hardware config, x/y points at each measured concurrency for the selected metric, sequence, precisions and x-axis mode, with boundary and best-per-SKU flags computed by the same code the dashboard runs. Filters mirror the dashboard quick filters (gpus, vendors, framework families, deployment, spec). Use optimal=true for boundary points or best=true for the best series per GPU SKU. Measured-power boundaries follow the higher-power outer envelope: frontier.direction describes that boundary, while metric.direction remains the optimization direction used by best-per-SKU selection.

Parameters

GET /api/v1/views/inference: Parameters
NameLocationTypeRequirementDescriptionExample
allPointsquerystringOptionalBoolean, default false. Include points clipped by dashboard limits; optimal and best still apply independently.
bestquerybooleanOptionalReturn only the best series per GPU SKU. Default depends on model and sequence, matching the dashboard.true
datequerystringOptionalAs-of date (YYYY-MM-DD): the latest run on or before this date per config.2026-08-01
datesquerystringOptionalUp to twelve comma-separated YYYY-MM-DD or YYYY-MM-DD~rRUN_ID comparison entries. Date-only entries select that exact logical snapshot, not an as-of cutoff; run entries select the exact logical run snapshot. Each snapshot is evaluated independently.
deploymentquerystringOptionalComma-separated deployment modes; agg expands to single-node and multi-node.disagg
endquerystringOptionalComparison range end, YYYY-MM-DD; must not precede start. Historical uses an inclusive data bound.
formatqueryenumOptionalResponse encoding. csv returns one flat row per point.csv
frameworksquerystringOptionalComma-separated framework families.vllm,sglang
gpusquerystringOptionalComma-separated hardware keys or bare GPU names to include (e.g. h200 or a full hwKey).h200,mi355x
metricquerystringOptionalY-axis metric key or config key, e.g. tpPerGpu or y_tokensPerDollarN (see options → metrics).y_tpPerGpu
modelquerystringRequiredFrontend model display name (see /api/v1/views/options → models).DeepSeek-V4-Pro
optimalquerybooleanOptionalReturn only boundary points per hardware, precision and snapshot date. Measured-power gauges use the higher-power outer envelope, matching the chart; other metrics use their Pareto frontier. The power envelope is not an efficiency recommendation.true
percentilequeryenumOptionalLatency percentile for agentic-trace x fields.p75
powerquerystringOptionalComma-separated certified and/or legacy power tiers. Omit for all tiers.
precisionsquerystringOptionalComma-separated precisions. When omitted, the densest available precision is auto-selected, matching the dashboard default.fp8,bf16
priceSourcequerystringOptionalProfit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used.
runIdqueryintegerOptionalGitHub Actions run id. Returns exactly that run snapshot instead of the latest data.12345678
sequencequeryenumOptionalBenchmark sequence. Aliases like 8k-1k and agentic are accepted.agentic-traces
specquerystringOptionalComma-separated speculative-decoding modes.mtp
startquerystringOptionalComparison range start, YYYY-MM-DD. With end, adds the two endpoints, not every intermediate date. Historical uses an inclusive data bound.
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.
userCostsquerystringOptionalJSON object from hardware keys to finite nonnegative USD/chip-hour values for user-priced metrics.
userPowersquerystringOptionalJSON object from hardware keys to finite nonnegative power assumptions in kW/chip.
vendorsquerystringOptionalComma-separated GPU vendors.NVIDIA
xmetricqueryenumOptionalTTFT percentile used when the x axis shows time to first token.p99_ttft
xmodequeryenumOptionalX-axis mode. e2e-normalized-interactivity uses persisted derived AgentX metrics; points without eligible derived values are omitted.e2e

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/inference?model=DeepSeek-V4-Pro&metric=y_tokensPerDollarN&sequence=8k-1k'

Responses

InferenceView
200

Chart-ready series grouped by hardware config, with frontier and best-per-SKU flags per point.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "inference"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "metric": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "configKey": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "labelZh": {
          "type": "string"
        },
        "unit": {
          "type": [
            "string",
            "null"
          ]
        },
        "polarity": {
          "type": [
            "string",
            "null"
          ]
        },
        "direction": {
          "type": [
            "string",
            "null"
          ],
          "description": "Configured optimization direction, also used by best-per-SKU selection."
        }
      },
      "required": [
        "key",
        "configKey",
        "label",
        "labelZh"
      ],
      "additionalProperties": false
    },
    "xAxis": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string"
        },
        "field": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "mode",
        "field",
        "label"
      ],
      "additionalProperties": false
    },
    "frontier": {
      "type": "object",
      "properties": {
        "direction": {
          "type": [
            "string",
            "null"
          ],
          "description": "Selected boundary direction. Measured-power gauges use upper_right for interactivity or upper_left for latency, independently of metric.direction."
        },
        "points": {
          "type": "integer"
        }
      },
      "required": [
        "direction",
        "points"
      ],
      "additionalProperties": false
    },
    "hardware": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "vendor": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "label"
        ],
        "additionalProperties": false
      }
    },
    "series": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hwKey": {
            "type": "string"
          },
          "gpu": {
            "type": "string"
          },
          "framework": {
            "type": "string"
          },
          "specMethod": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "vendor": {
            "type": "string"
          },
          "deployment": {
            "type": "string"
          },
          "kvOffload": {
            "type": "boolean"
          },
          "bestPerSku": {
            "type": "boolean"
          },
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "precision": {
                  "type": "string"
                },
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "concurrency": {
                  "type": "number"
                },
                "tp": {
                  "type": "number"
                },
                "date": {
                  "type": "string",
                  "format": "date"
                },
                "runId": {
                  "type": "integer"
                },
                "frontier": {
                  "type": "boolean"
                },
                "bestPerSku": {
                  "type": "boolean"
                },
                "metrics": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "number"
                  }
                }
              },
              "required": [
                "x",
                "y",
                "concurrency",
                "tp",
                "date",
                "frontier",
                "bestPerSku",
                "metrics"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "hwKey",
          "gpu",
          "framework",
          "specMethod",
          "label",
          "deployment",
          "kvOffload",
          "bestPerSku",
          "points"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "integer"
    },
    "pricing": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "comparisons": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "overlays": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params",
    "metric",
    "xAxis",
    "frontier",
    "series",
    "count"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "inference",
  "apiVersion": "v1",
  "params": {
    "model": "DeepSeek-V4-Pro",
    "sequence": "8k/1k",
    "precisions": [
      "fp8"
    ],
    "metric": "y_tpPerGpu",
    "xmode": "interactivity",
    "xmetric": "p90_ttft",
    "percentile": "p90",
    "date": null,
    "runId": null,
    "gpus": [],
    "vendors": [],
    "frameworks": [],
    "deployment": [],
    "spec": [],
    "optimal": true,
    "best": true,
    "format": "json"
  },
  "metric": {
    "key": "tpPerGpu",
    "configKey": "y_tpPerGpu",
    "label": "Output Throughput per GPU (tok/s/gpu)",
    "labelZh": "单 GPU 输出吞吐(tok/s/gpu)",
    "unit": "tok/s/gpu",
    "polarity": "higher",
    "direction": "upper_left"
  },
  "xAxis": {
    "mode": "interactivity",
    "field": "median_intvty",
    "label": "Median Interactivity (tok/s/user)"
  },
  "frontier": {
    "direction": "upper_left",
    "points": 14
  },
  "hardware": [
    {
      "key": "h200_trt",
      "label": "H200 (TRTLLM)",
      "vendor": "NVIDIA"
    }
  ],
  "series": [
    {
      "hwKey": "h200_trt",
      "gpu": "h200",
      "framework": "trt",
      "specMethod": "none",
      "label": "H200 (TRTLLM)",
      "vendor": "NVIDIA",
      "deployment": "single-node",
      "kvOffload": false,
      "bestPerSku": true,
      "points": [
        {
          "x": 12.5,
          "y": 450.5,
          "concurrency": 64,
          "tp": 8,
          "date": "2026-08-20",
          "runId": 12345678,
          "frontier": true,
          "bestPerSku": true,
          "metrics": {
            "tpPerGpu": 450.5,
            "outputTputPerGpu": 400.2,
            "inputTputPerGpu": 50.3
          }
        }
      ]
    }
  ],
  "count": 1
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
hwKey,gpu,framework,specMethod,label,vendor,deployment,kvOffload,x,y,concurrency,tp,date,runId,frontier,bestPerSku,metric_tpPerGpu
h200_trt,h200,trt,none,H200 (TRTLLM),NVIDIA,single-node,false,12.5,450.5,64,8,2026-08-20,12345678,true,true,450.5
400

A parameter is invalid. The body names the parameter and, for enums, lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown xmode: bogus",
  "param": "xmode",
  "allowed": [
    "interactivity",
    "ttft",
    "e2e",
    "e2e-normalized-interactivity"
  ]
}
500

The benchmark query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/historicalGet the historical trends view

Returns the Historical Trends dashboard lines computed server-side: for every benchmark snapshot date, the selected metric is interpolated at the target interactivity per hardware config (per precision when several are selected), then assembled into date-sorted trend lines. Interpolation uses the same monotone-spline math as the dashboard. Lines are extended to extendToDate (current UTC date by default), using a synthetic copy of their last value marked synthetic: true. Pass extendToDate explicitly for reproducible snapshots.

Parameters

GET /api/v1/views/historical: Parameters
NameLocationTypeRequirementDescriptionExample
deploymentquerystringOptionalComma-separated deployment modes; agg expands to single-node and multi-node.single-node
endquerystringOptionalLatest snapshot date to include (YYYY-MM-DD).2026-08-01
extendToDatequerystringOptionalSynthetic history-line end date, YYYY-MM-DD; defaults to current UTC date, matching the dashboard.
formatqueryenumOptionalResponse encoding. csv returns one flat row per line point.csv
frameworksquerystringOptionalComma-separated framework families.vllm,trt
gpusquerystringOptionalComma-separated hardware keys or bare GPU names to include.h200,mi355x
metricquerystringOptionalTrend metric key or config key, e.g. tpPerGpu or y_tokensPerDollarN (see options → metrics).y_tpPerGpu
modelquerystringRequiredFrontend model display name (see /api/v1/views/options → models).DeepSeek-V4-Pro
precisionsquerystringOptionalComma-separated precisions. When omitted, the densest available precision is auto-selected. With multiple precisions, each hardware gets one line per precision (key hwKey__precision).fp8,bf16
priceSourcequerystringOptionalProfit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used.
sequencequeryenumOptionalBenchmark sequence. Aliases like 8k-1k and agentic are accepted.agentic-traces
startquerystringOptionalEarliest snapshot date to include (YYYY-MM-DD).2026-01-01
targetquerynumberOptionalTarget interactivity (tok/s/user) the metric is interpolated at for every snapshot date.50
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
vendorsquerystringOptionalComma-separated GPU vendors.AMD

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/historical?model=DeepSeek-V4-Pro&metric=y_tpPerGpu&target=35'

Responses

HistoricalView
200

Date-sorted trend lines per hardware config, interpolated at the target interactivity.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "historical"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "metric": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "configKey": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "labelZh": {
          "type": "string"
        }
      },
      "required": [
        "key",
        "configKey",
        "label",
        "labelZh"
      ],
      "additionalProperties": false
    },
    "target": {
      "type": "number"
    },
    "hwKeysWithData": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "series": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "hwKey": {
            "type": "string"
          },
          "precision": {
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ]
          },
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string",
                  "format": "date"
                },
                "value": {
                  "type": "number"
                },
                "synthetic": {
                  "type": "boolean"
                }
              },
              "required": [
                "date",
                "value"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "key",
          "hwKey",
          "label",
          "points"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "integer"
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params",
    "metric",
    "target",
    "hwKeysWithData",
    "series",
    "count"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "historical",
  "apiVersion": "v1",
  "params": {
    "model": "DeepSeek-V4-Pro",
    "sequence": "8k/1k",
    "metric": "y_tpPerGpu",
    "target": 35,
    "precisions": [
      "fp8"
    ],
    "gpus": [],
    "vendors": [],
    "frameworks": [],
    "deployment": [],
    "start": null,
    "end": null,
    "format": "json"
  },
  "metric": {
    "key": "tpPerGpu",
    "configKey": "y_tpPerGpu",
    "label": "Output Throughput per GPU (tok/s/gpu)",
    "labelZh": "单 GPU 输出吞吐(tok/s/gpu)"
  },
  "target": 35,
  "hwKeysWithData": [
    "h200_trt"
  ],
  "series": [
    {
      "key": "h200_trt",
      "hwKey": "h200_trt",
      "precision": null,
      "label": "H200 (TRTLLM)",
      "vendor": "NVIDIA",
      "points": [
        {
          "date": "2026-07-01",
          "value": 310.4
        },
        {
          "date": "2026-08-20",
          "value": 355.2
        },
        {
          "date": "2026-08-25",
          "value": 355.2,
          "synthetic": true
        }
      ]
    }
  ],
  "count": 3
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
key,hwKey,precision,label,vendor,date,value,synthetic
h200_trt,h200_trt,,H200 (TRTLLM),NVIDIA,2026-07-01,310.4,false
400

A parameter is invalid. The body names the parameter and, for enums, lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "target must be >= 1",
  "param": "target"
}
500

The benchmark history query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/calculatorInterpolated calculator operating points

Computes the throughput calculator server-side: benchmark sweeps are grouped per hardware config, reduced to their Pareto frontier, and read at the requested target with the same monotone Steffen–Hermite interpolation the dashboard uses. Optionally sizes a fixed-power fleet per config (mw) and reports each config’s maximum interactivity under a $/M-token cost cap (costcap).

Parameters

GET /api/v1/views/calculator: Parameters
NameLocationTypeRequirementDescriptionExample
costProviderqueryenumOptionalCost basis: costh (owning) or costr (renting), with tcoBasis selecting internal or external assumptions.costh
costTypequeryenumOptionalToken basis for cost and throughput fields.total
costcapquerynumberOptionalCost cap in $/M tokens. When set, the response carries a costCap section with each config’s maximum interactivity under the cap.2.5
datequerydateOptionalUse data on or before YYYY-MM-DD. Omit for latest.2026-08-08
formatqueryenumOptionalResponse encoding.json
gpusqueryCSV listOptionalComma-separated hardware keys; matches a full hwKey (b300_sglang) or a base chip (b300).b300,mi355x
hideSkuAboveConfigLimitquerystringOptionalBoolean, default true. Omit hardware whose interpolation clamps above its measured configuration limit.
modequeryenumOptionalInterpolation direction.interactivity-to-throughput
modelquerystringRequiredDisplay model name or compare slug.DeepSeek-V4-Pro
mwquerynumberOptionalFacility power budget in MW. When set, each result carries a fleet block (chips, total tok/s, concurrent users, cost).100
percentilequeryenumOptionalInteractivity percentile for agentic traces; fixed sequences use the median.p90
precisionsqueryCSV listOptionalComma-separated precisions. Omit to auto-select the densest official precision and include precisions present in unofficial-run overlays.fp4,fp8
runIdquerystringOptionalNumeric GitHub workflow run id to pin the snapshot to.123456789
sequencequeryenumOptionalWorkload sequence. Accepts 1k/1k, 1k/8k, 8k/1k (or hyphenated forms) and agentic-traces (alias agentic).1k/1k
targetquerynumberOptionalTarget value on the input axis: interactivity in tok/s/user, or throughput in tok/s/GPU when mode is throughput-to-interactivity.35
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/calculator?model=DeepSeek-V4-Pro&sequence=1k/1k'

Responses

CalculatorView
200

Steffen–Hermite interpolated operating point per hardware config at the requested target.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "calculator"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "generatedAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Latest run date among the rows the view was computed from."
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "hardware": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hwKey": {
            "type": "string"
          },
          "resultKey": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "precision": {
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "inputThroughput": {
            "type": "number"
          },
          "outputThroughput": {
            "type": "number"
          },
          "cost": {
            "type": "object",
            "properties": {
              "total": {
                "type": "number"
              },
              "input": {
                "type": "number"
              },
              "output": {
                "type": "number"
              }
            },
            "required": [
              "total",
              "input",
              "output"
            ],
            "additionalProperties": false
          },
          "tpPerMw": {
            "type": "number"
          },
          "inputTpPerMw": {
            "type": "number"
          },
          "outputTpPerMw": {
            "type": "number"
          },
          "concurrency": {
            "type": "number"
          },
          "cacheHitRate": {
            "type": [
              "number",
              "null"
            ]
          },
          "inputTokenShare": {
            "type": [
              "number",
              "null"
            ]
          },
          "clamped": {
            "type": "boolean"
          },
          "clampedAbove": {
            "type": "boolean"
          },
          "clampedBelow": {
            "type": "boolean"
          },
          "nearest": {
            "type": "object",
            "properties": {
              "below": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "interactivity": {
                    "type": "number"
                  },
                  "throughput": {
                    "type": "number"
                  },
                  "concurrency": {
                    "type": "number"
                  }
                },
                "additionalProperties": false
              },
              "above": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "interactivity": {
                    "type": "number"
                  },
                  "throughput": {
                    "type": "number"
                  },
                  "concurrency": {
                    "type": "number"
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "below",
              "above"
            ],
            "additionalProperties": false
          },
          "fleet": {
            "type": [
              "object",
              "null"
            ],
            "description": "Present only when mw is set.",
            "properties": {
              "chips": {
                "type": "number"
              },
              "totalTokPerSec": {
                "type": "number"
              },
              "concurrentUsers": {
                "type": "number"
              },
              "costPerHour": {
                "type": "number"
              },
              "costPerMonth": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "hwKey",
          "resultKey",
          "precision",
          "label",
          "value",
          "inputThroughput",
          "outputThroughput",
          "cost",
          "tpPerMw",
          "inputTpPerMw",
          "outputTpPerMw",
          "concurrency",
          "cacheHitRate",
          "inputTokenShare",
          "clamped",
          "clampedAbove",
          "clampedBelow",
          "nearest"
        ],
        "additionalProperties": false
      }
    },
    "costCap": {
      "type": "array",
      "description": "Present only when costcap is set.",
      "items": {
        "type": "object",
        "properties": {
          "hwKey": {
            "type": "string"
          },
          "resultKey": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "maxInteractivity": {
            "type": [
              "number",
              "null"
            ]
          },
          "throughput": {
            "type": [
              "number",
              "null"
            ]
          },
          "concurrentUsers": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "hwKey",
          "resultKey",
          "label",
          "maxInteractivity",
          "throughput",
          "concurrentUsers"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "integer"
    }
  },
  "required": [
    "view",
    "apiVersion",
    "generatedAt",
    "params",
    "hardware",
    "count"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "calculator",
  "apiVersion": "v1",
  "generatedAt": "2026-08-20",
  "params": {
    "model": "DeepSeek-V4-Pro",
    "sequence": "1k/1k",
    "precisions": [
      "fp4"
    ],
    "target": 35,
    "mode": "interactivity-to-throughput",
    "costProvider": "costh",
    "costType": "total",
    "percentile": "p90",
    "gpus": [],
    "format": "json"
  },
  "hardware": [
    {
      "hwKey": "b300_sglang",
      "resultKey": "b300_sglang",
      "precision": "fp4",
      "label": "B300 (SGLang)",
      "value": 1234.5,
      "inputThroughput": 820.1,
      "outputThroughput": 414.4,
      "cost": {
        "total": 1.21,
        "input": 1.83,
        "output": 3.62
      },
      "tpPerMw": 890123.4,
      "inputTpPerMw": 591234.5,
      "outputTpPerMw": 298888.9,
      "concurrency": 24,
      "cacheHitRate": null,
      "inputTokenShare": 0.5,
      "clamped": false,
      "clampedAbove": false,
      "clampedBelow": false,
      "nearest": {
        "below": {
          "interactivity": 30,
          "throughput": 1500,
          "concurrency": 32
        },
        "above": {
          "interactivity": 50,
          "throughput": 900,
          "concurrency": 16
        }
      }
    }
  ],
  "count": 1
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string",
  "description": "One flat row per hardware result."
}

Response example

Code
hwKey,resultKey,precision,label,value,inputThroughput,outputThroughput,costTotal,costInput,costOutput,tpPerMw,concurrency,clamped,clampedAbove,clampedBelow
b300_sglang,b300_sglang,fp4,B300 (SGLang),1234.5,820.1,414.4,1.21,1.83,3.62,890123.4,24,false,false,false
400

Invalid parameter. The body names the parameter and, for enums, the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "param": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "error": "Unknown mode: sideways",
  "param": "mode",
  "allowed": [
    "interactivity-to-throughput",
    "throughput-to-interactivity"
  ]
}
500

Calculator view failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "param": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/fleetFleet lifecycle economics

Sizes a fixed fleet of each chip against a facility power budget at the default 35 tok/s/user target, then projects revenue, cost, and margin across the model’s life. Each chip follows its measured best-so-far staircase: every run date whose best config beat everything before it becomes a step, rolled out over the ramp. Prices default to the cheapest fleet’s break-even at a 4x output:input ratio.

Parameters

GET /api/v1/views/fleet: Parameters
NameLocationTypeRequirementDescriptionExample
cachequerynumberOptionalCached-input percentage billed at the cache-read discount. Applies to agentic traces only.10
costProviderquerystringOptionalcosth = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider.
costTypequerystringOptionaltotal (default), input or output tokens. Disaggregated input/output rates retain their prefill/decode denominators.
formatqueryenumOptionalResponse encoding.json
gpusqueryCSV listOptionalComma-separated hardware keys; matches a full hwKey (b300_sglang) or a base chip (b300).b300,mi355x
horizonquerynumberOptionalProjection horizon in months. Defaults to a short tail past the last measured sweep.12
metricqueryenumOptionalWhich metric each point’s value field carries.margin
modelquerystringRequiredDisplay model name or compare slug.DeepSeek-V4-Pro
mtbiquerynumberOptionalMean time between interrupts, in days.24
mwquerynumberRequiredFacility power budget in MW. Must be greater than 0.100
opricequerynumberOptionalOutput token price in $/M tokens. Defaults to 4x the input price.1.68
percentilequeryenumOptionalInteractivity percentile for agentic traces; fixed sequences use the median.p90
precisionsqueryCSV listOptionalComma-separated precisions. Omit to auto-select the densest precision in the data.fp4
pricequerynumberOptionalInput token price in $/M tokens. Defaults to the cheapest fleet’s break-even; giving only oprice derives it through the 4x ratio.0.42
rampquerynumberOptionalMonths for each config rollout to reach full rate. Defaults to the dashboard lifecycle panel (0.5).0.5
recoveryquerynumberOptionalRecovery time per interrupt, in hours.12
sequencequeryenumOptionalWorkload sequence. Accepts 1k/1k, 1k/8k, 8k/1k (or hyphenated forms) and agentic-traces (alias agentic).8k/1k
targetquerystringOptionalPositive operating-point target, tok/s/user in interactivity-to-throughput mode. Profit defaults are model-specific.
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/fleet?model=DeepSeek-V4-Pro&mw=100'

Responses

FleetView
200

One lifecycle economics series per chip: a fixed fleet sized against the power budget, projected across the model’s life with every measured config improvement.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "fleet"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "generatedAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Latest run date among the history rows the view was computed from."
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "assumptions": {
      "type": "object",
      "additionalProperties": true
    },
    "series": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hwKey": {
            "type": "string",
            "description": "Base chip key, e.g. b300."
          },
          "label": {
            "type": "string"
          },
          "hwKeysUsed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Every config that contributed a rung, in takeover order."
          },
          "disagg": {
            "type": "boolean"
          },
          "gpus": {
            "type": "integer"
          },
          "provisionedMw": {
            "type": "number"
          },
          "costPerHour": {
            "type": "number"
          },
          "concurrentUsersNow": {
            "type": "number"
          },
          "availability": {
            "type": "number"
          },
          "breakEvenPricePerMTok": {
            "type": [
              "number",
              "null"
            ]
          },
          "improvementFactor": {
            "type": [
              "number",
              "null"
            ]
          },
          "improvementCount": {
            "type": "integer"
          },
          "paybackMonth": {
            "type": [
              "number",
              "null"
            ]
          },
          "lifetimeMargin": {
            "type": "number"
          },
          "revenuePerDay": {
            "type": "number"
          },
          "costPerDay": {
            "type": "number"
          },
          "marginPerDay": {
            "type": "number"
          },
          "startMonth": {
            "type": "number"
          },
          "endMonth": {
            "type": "number"
          },
          "rampEndMonth": {
            "type": [
              "number",
              "null"
            ]
          },
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "month": {
                  "type": "number",
                  "description": "Months since the anchor date (model release)."
                },
                "value": {
                  "type": "number",
                  "description": "The selected metric at this point."
                },
                "revenue": {
                  "type": "number",
                  "description": "$/day"
                },
                "cost": {
                  "type": "number",
                  "description": "$/day"
                },
                "margin": {
                  "type": "number",
                  "description": "$/day"
                },
                "revenuePerMw": {
                  "type": "number",
                  "description": "$/MW/day"
                },
                "marginPerMw": {
                  "type": "number",
                  "description": "$/MW/day"
                },
                "cumulative": {
                  "type": "number",
                  "description": "Cumulative margin, $"
                },
                "cumulativeRevenue": {
                  "type": "number",
                  "description": "Cumulative revenue, $"
                },
                "isStep": {
                  "type": "boolean"
                },
                "isRamp": {
                  "type": "boolean"
                }
              },
              "required": [
                "month",
                "value",
                "revenue",
                "cost",
                "margin",
                "revenuePerMw",
                "marginPerMw",
                "cumulative",
                "cumulativeRevenue",
                "isStep",
                "isRamp"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "hwKey",
          "label",
          "hwKeysUsed",
          "disagg",
          "gpus",
          "provisionedMw",
          "costPerHour",
          "concurrentUsersNow",
          "availability",
          "breakEvenPricePerMTok",
          "points"
        ],
        "additionalProperties": true
      }
    },
    "count": {
      "type": "integer"
    }
  },
  "required": [
    "view",
    "apiVersion",
    "generatedAt",
    "params",
    "assumptions",
    "series",
    "count"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "fleet",
  "apiVersion": "v1",
  "generatedAt": "2026-08-20",
  "params": {
    "model": "DeepSeek-V4-Pro",
    "sequence": "8k/1k",
    "precisions": [
      "fp4"
    ],
    "mw": 100,
    "price": 0.42,
    "oprice": 1.68,
    "ramp": 0.5,
    "cache": 10,
    "mtbi": 24,
    "recovery": 12,
    "horizon": 7,
    "metric": "margin",
    "percentile": "p90",
    "gpus": [],
    "format": "json"
  },
  "assumptions": {
    "target": 35,
    "costProvider": "costh",
    "costType": "total",
    "mtbiDays": 24,
    "recoveryHours": 12,
    "inputPricePerMTok": 0.42,
    "outputPricePerMTok": 1.68,
    "outputPriceMultiple": 4,
    "rampMonths": 0.5,
    "cachedInputPct": 10,
    "cacheReadRatio": 1,
    "availability": 0.98,
    "breakEvenPricePerMTok": 0.42,
    "anchorDate": "2026-04-24",
    "horizonMonths": 7
  },
  "series": [
    {
      "hwKey": "b300",
      "label": "B300",
      "hwKeysUsed": [
        "b300_sglang"
      ],
      "disagg": false,
      "gpus": 70921,
      "provisionedMw": 99.99,
      "costPerHour": 212763,
      "concurrentUsersNow": 2500000,
      "availability": 0.98,
      "breakEvenPricePerMTok": 0.42,
      "improvementFactor": 1.33,
      "improvementCount": 1,
      "paybackMonth": null,
      "lifetimeMargin": 0,
      "points": [
        {
          "month": 1.25,
          "value": -1250000,
          "revenue": 3860000,
          "cost": 5110000,
          "margin": -1250000,
          "revenuePerMw": 38600,
          "marginPerMw": -12500,
          "cumulative": -38000000,
          "cumulativeRevenue": 117000000,
          "isStep": true,
          "isRamp": true
        }
      ]
    }
  ],
  "count": 1
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string",
  "description": "One row per lifecycle point."
}

Response example

Code
hwKey,label,month,value,revenue,cost,margin,revenuePerMw,marginPerMw,cumulative,cumulativeRevenue,isStep,isRamp
b300,B300,1.25,-1250000,3860000,5110000,-1250000,38600,-12500,-38000000,117000000,true,true
400

Invalid or missing parameter. The body names the parameter and, for enums, the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "param": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "error": "mw is required (facility power budget in MW, > 0)",
  "param": "mw"
}
500

Fleet view failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "param": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/evaluationGet the evaluation chart view

Returns the aggregated evaluation bars the /evaluation dashboard renders for a model, benchmark, and run date: latest rows per config, with same-config retries averaged into one row (score is the mean; stderr covers the min/max error range; n counts the averaged runs). benchmarks lists every benchmark available for the model.

Parameters

GET /api/v1/views/evaluation: Parameters
NameLocationTypeRequirementDescriptionExample
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.
benchmarkquerystringOptionalEvaluation task key (e.g. gsm8k). Default: the first available benchmark for the model (alphabetical). Unknown values return 400 with the available list.gsm8k
datequerydateOptionalRequested eval run date (YYYY-MM-DD), resolved to the nearest available date like the dashboard. Default: latest available date.2026-08-20
formatqueryenumOptionalResponse encoding. csv returns one flat row per config with newline-free labels.json
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
modelquerystringRequiredDisplay model name (case-insensitive) or compare-page slug.DeepSeek-V4-Pro
precisionsqueryCSV listOptionalComma-separated precision filter (fp4, fp4fp8, fp8, bf16, int4). Default: every precision present in the model’s eval rows.fp8

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/evaluation?model=DeepSeek-V4-Pro&benchmark=gsm8k&format=json'

Responses

EvaluationView
200

Aggregated evaluation chart rows for the resolved model, benchmark, and date.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "evaluation"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "properties": {
        "model": {
          "type": "string"
        },
        "benchmark": {
          "type": [
            "string",
            "null"
          ]
        },
        "date": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "precisions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "gpus": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "unofficialrun": {
          "type": [
            "string",
            "null"
          ]
        },
        "format": {
          "type": "string",
          "enum": [
            "json",
            "csv"
          ]
        }
      },
      "required": [
        "model",
        "benchmark",
        "date",
        "precisions",
        "gpus",
        "unofficialrun",
        "format"
      ],
      "additionalProperties": false
    },
    "benchmarks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string"
          },
          "hwKey": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "stderr": {
            "type": "number"
          },
          "n": {
            "type": "integer",
            "description": "How many repeated runs (retries/reruns) the row averages."
          },
          "precision": {
            "type": "string"
          },
          "framework": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "source",
          "hwKey",
          "label",
          "score",
          "stderr",
          "n",
          "precision",
          "framework",
          "date"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params",
    "benchmarks",
    "rows"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "evaluation",
  "apiVersion": "v1",
  "params": {
    "model": "DeepSeek-V4-Pro",
    "benchmark": "gsm8k",
    "date": "2026-08-20",
    "precisions": [
      "fp8"
    ],
    "format": "json",
    "gpus": [],
    "unofficialrun": null
  },
  "benchmarks": [
    "aime25",
    "gsm8k"
  ],
  "rows": [
    {
      "source": "official",
      "hwKey": "h200_sglang",
      "label": "H200 (SGLang)\nC128 T8 E1",
      "score": 0.85,
      "stderr": 0.01,
      "n": 2,
      "precision": "fp8",
      "framework": "sglang",
      "date": "2026-08-20"
    }
  ]
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
hwKey,label,score,stderr,n,precision,framework,date
h200_sglang,H200 (SGLang) C128 T8 E1,0.85,0.01,2,fp8,sglang,2026-08-20
400

The model, benchmark, date, precisions, or format value is invalid. The body lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown benchmark for DeepSeek-V4-Pro: mmlu",
  "param": "benchmark",
  "allowed": [
    "aime25",
    "gsm8k"
  ]
}
500

The evaluation query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/reliabilityGet the reliability chart view

Returns the aggregated benchmark-run success rates per hardware that the /reliability dashboard chart renders, bucketed by a rolling date-range preset. Success rates are percentages rounded to 2 decimal places; generatedFrom reports the first and last dates in the underlying run stats.

Parameters

GET /api/v1/views/reliability: Parameters
NameLocationTypeRequirementDescriptionExample
asOfquerystringOptionalReference date YYYY-MM-DD for reproducible rolling reliability or image-age calculations.
formatqueryenumOptionalResponse encoding. csv returns one flat row per hardware.json
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
rangequeryenumOptionalRolling date-range preset for the aggregation, matching the /reliability dashboard presets.last-7-days

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/reliability?range=last-7-days&format=json'

Responses

ReliabilityView
200

Aggregated success rates per hardware for the selected range.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "reliability"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "properties": {
        "range": {
          "type": "string",
          "enum": [
            "last-3-days",
            "last-7-days",
            "last-month",
            "last-3-months",
            "all-time"
          ]
        },
        "format": {
          "type": "string",
          "enum": [
            "json",
            "csv"
          ]
        },
        "gpus": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "asOf": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        }
      },
      "required": [
        "range",
        "format",
        "gpus",
        "asOf"
      ],
      "additionalProperties": false
    },
    "range": {
      "type": "string",
      "enum": [
        "last-3-days",
        "last-7-days",
        "last-month",
        "last-3-months",
        "all-time"
      ]
    },
    "hardware": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "successRate": {
            "type": "number",
            "description": "Success percentage over the range, rounded to 2 decimal places."
          },
          "successes": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "required": [
          "key",
          "label",
          "successRate",
          "successes",
          "total"
        ],
        "additionalProperties": false
      }
    },
    "generatedFrom": {
      "type": "object",
      "properties": {
        "firstDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "lastDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        }
      },
      "required": [
        "firstDate",
        "lastDate"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params",
    "range",
    "hardware",
    "generatedFrom"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "reliability",
  "apiVersion": "v1",
  "params": {
    "range": "last-7-days",
    "format": "json",
    "gpus": [],
    "asOf": null
  },
  "range": "last-7-days",
  "hardware": [
    {
      "key": "h200",
      "label": "H200",
      "successRate": 93.33,
      "successes": 28,
      "total": 30
    },
    {
      "key": "b200",
      "label": "B200",
      "successRate": 90,
      "successes": 27,
      "total": 30
    }
  ],
  "generatedFrom": {
    "firstDate": "2025-11-03",
    "lastDate": "2026-08-26"
  }
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
range,key,label,successRate,successes,total
last-7-days,h200,H200,93.33,28,30
400

The range or format value is invalid. The body lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown range: last-year",
  "param": "range",
  "allowed": [
    "last-3-days",
    "last-7-days",
    "last-month",
    "last-3-months",
    "all-time"
  ]
}
500

The reliability query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/gpu-specsGet the GPU specs view

Returns the static chip specification table behind the /gpu-specs page — usable memory, bandwidth, dense tensor-core TFLOP/s, and scale-up/scale-out interconnect details — plus the chartable metric metadata. No database read; compute TFLOPS are dense (no sparsity) and memory capacities are driver-usable values.

Parameters

GET /api/v1/views/gpu-specs: Parameters
NameLocationTypeRequirementDescriptionExample
formatqueryenumOptionalResponse encoding. csv returns one flat row per chip.json
metricqueryenumOptionalChart metric key. When set, the response adds a ranking array of chips ordered by that metric (descending; chips without a value omitted).memoryBandwidth

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/gpu-specs?metric=memoryBandwidth&format=json'

Responses

GpuSpecsView
200

Static chip specifications plus chart metric metadata; ranking is present only when metric is set.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "gpu-specs"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "properties": {
        "metric": {
          "type": [
            "string",
            "null"
          ]
        },
        "format": {
          "type": "string",
          "enum": [
            "json",
            "csv"
          ]
        }
      },
      "required": [
        "metric",
        "format"
      ],
      "additionalProperties": false
    },
    "chips": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "vendor": {
            "type": "string",
            "enum": [
              "nvidia",
              "amd"
            ]
          },
          "memory": {
            "type": "string"
          },
          "memoryType": {
            "type": "string"
          },
          "memoryBandwidth": {
            "type": "string"
          },
          "fp4": {
            "type": [
              "number",
              "null"
            ]
          },
          "fp8": {
            "type": "number"
          },
          "bf16": {
            "type": "number"
          },
          "scaleUpTech": {
            "type": "string"
          },
          "scaleUpBandwidth": {
            "type": "string"
          },
          "scaleUpWorldSize": {
            "type": "integer"
          },
          "scaleOutBandwidth": {
            "type": [
              "string",
              "null"
            ]
          },
          "scaleOutTech": {
            "type": [
              "string",
              "null"
            ]
          },
          "nic": {
            "type": [
              "string",
              "null"
            ]
          },
          "scaleOutSwitch": {
            "type": [
              "string",
              "null"
            ]
          },
          "scaleOutTopology": {
            "type": [
              "string",
              "null"
            ]
          },
          "scaleUpTopology": {
            "type": "string"
          },
          "scaleUpSwitch": {
            "type": [
              "string",
              "null"
            ]
          },
          "memoryGB": {
            "type": [
              "number",
              "null"
            ]
          },
          "memoryBandwidthTBs": {
            "type": [
              "number",
              "null"
            ]
          },
          "fp4Tflops": {
            "type": [
              "number",
              "null"
            ]
          },
          "fp8Tflops": {
            "type": "number"
          },
          "bf16Tflops": {
            "type": "number"
          },
          "scaleUpBandwidthGBs": {
            "type": [
              "number",
              "null"
            ]
          },
          "domainMemoryTB": {
            "type": "number"
          },
          "domainMemoryBandwidthTBs": {
            "type": "number"
          },
          "scaleOutBandwidthGbits": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "key",
          "label",
          "name",
          "vendor",
          "memory",
          "memoryType",
          "memoryBandwidth",
          "fp4",
          "fp8",
          "bf16",
          "scaleUpTech",
          "scaleUpBandwidth",
          "scaleUpWorldSize",
          "scaleOutBandwidth",
          "scaleOutTech",
          "nic",
          "scaleOutSwitch",
          "scaleOutTopology",
          "scaleUpTopology",
          "scaleUpSwitch",
          "memoryGB",
          "memoryBandwidthTBs",
          "fp4Tflops",
          "fp8Tflops",
          "bf16Tflops",
          "scaleUpBandwidthGBs",
          "domainMemoryTB",
          "domainMemoryBandwidthTBs",
          "scaleOutBandwidthGbits"
        ],
        "additionalProperties": false
      }
    },
    "metrics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "label",
          "unit"
        ],
        "additionalProperties": false
      }
    },
    "ranking": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "chip": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "rank": {
            "type": "integer"
          }
        },
        "required": [
          "chip",
          "label",
          "value",
          "rank"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params",
    "chips",
    "metrics"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "gpu-specs",
  "apiVersion": "v1",
  "params": {
    "metric": "memoryBandwidth",
    "format": "json"
  },
  "chips": [
    {
      "key": "b200-sxm",
      "label": "B200 SXM",
      "name": "B200 SXM",
      "vendor": "nvidia",
      "memory": "180 GB",
      "memoryType": "HBM3e",
      "memoryBandwidth": "8 TB/s",
      "fp4": 9000,
      "fp8": 4500,
      "bf16": 2250,
      "scaleUpTech": "NVLink 5.0",
      "scaleUpBandwidth": "900 GB/s",
      "scaleUpWorldSize": 8,
      "scaleOutBandwidth": "400 Gbit/s",
      "scaleOutTech": "gIB RoCEv2 Ethernet",
      "nic": "ConnectX-7 400GbE",
      "scaleOutSwitch": "12.8T Whitebox Leaf Tomahawk3 & 25.6T Whitebox Tomahawk4",
      "scaleOutTopology": "4-rail optimized",
      "scaleUpTopology": "Switched 2-rail Optimized",
      "scaleUpSwitch": "28.8Tbit/s NVSwitch Gen 4.0",
      "memoryGB": 180,
      "memoryBandwidthTBs": 8,
      "fp4Tflops": 9000,
      "fp8Tflops": 4500,
      "bf16Tflops": 2250,
      "scaleUpBandwidthGBs": 900,
      "domainMemoryTB": 1.44,
      "domainMemoryBandwidthTBs": 64,
      "scaleOutBandwidthGbits": 400
    }
  ],
  "metrics": [
    {
      "key": "memory",
      "label": "Memory",
      "unit": "GB"
    },
    {
      "key": "memoryBandwidth",
      "label": "Mem BW",
      "unit": "TB/s"
    }
  ],
  "ranking": [
    {
      "chip": "b200-sxm",
      "label": "B200 SXM",
      "value": 8,
      "rank": 1
    }
  ]
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
key,label,name,vendor,memory,memoryType,memoryBandwidth,fp4,fp8,bf16
b200-sxm,B200 SXM,B200 SXM,nvidia,180 GB,HBM3e,8 TB/s,9000,4500,2250
400

The metric or format value is invalid. The body lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown metric: tdp",
  "param": "metric",
  "allowed": [
    "memory",
    "memoryBandwidth",
    "fp4",
    "fp8",
    "bf16",
    "scaleUpBandwidth",
    "scaleUpWorldSize",
    "domainMemory",
    "domainMemoryBandwidth",
    "scaleOutBandwidth"
  ]
}

Scroll to inspect the full example.

500

Assembling the GPU specs payload failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/overviewGet the overview cost matrix view

Returns the /overview dashboard matrix as data: for every curated model-scenario row, the best community (or all-engine) serving config per hardware at the requested interactivity tier, with $/M tokens, tok/s per GPU, deltas versus a reference GPU or a historical window, and the winning config. Unlike the page, invalid parameters return 400 rather than being silently normalized.

Parameters

GET /api/v1/views/overview: Parameters
NameLocationTypeRequirementDescriptionExample
comparequerystringOptionalComparison mode: hardware compares each cell against the reference GPU; a window (7d/30d/60d/90d) compares against the same cell that many days earlier.hardware
enginequerystringOptionalServing-engine scope: community frameworks only, or all engines including vendor stacks.community
formatquerystringOptionalResponse format. CSV returns one flat row per model-scenario-hardware cell.json
hwrowsquerystringOptionalHardware-cell scope: only cells with a priced measurement, or all hardware columns.all
modelsquerystringOptionalModel scope: the curated default set or every model with data.default
refquerystringOptionalReference GPU for compare=hardware deltas.b200
rowsquerystringOptionalRow scope for historical windows: only rows that changed inside the window, or all rows.all
tierqueryintegerOptionalInteractivity tier in output tokens per second per user. Cells are read at this tier.50

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/overview?tier=50&engine=community&compare=hardware&ref=b200'

Responses

OverviewView
200

The overview cost matrix at the requested tier: one row per model-scenario, one cell per hardware column.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "overview"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "generatedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "params": {
      "type": "object",
      "properties": {
        "tier": {
          "type": "integer"
        },
        "engine": {
          "type": "string"
        },
        "compare": {
          "type": "string"
        },
        "ref": {
          "type": "string"
        },
        "models": {
          "type": "string"
        },
        "rows": {
          "type": "string"
        },
        "hwrows": {
          "type": "string"
        },
        "format": {
          "type": "string",
          "enum": [
            "json",
            "csv"
          ]
        }
      },
      "required": [
        "tier",
        "engine",
        "compare",
        "ref",
        "models",
        "rows",
        "hwrows",
        "format"
      ],
      "additionalProperties": false
    },
    "tiers": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "scenarios": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "referenceHardware": {
      "type": "string"
    },
    "historicalWindow": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "key": {
          "type": "string"
        },
        "snapshotDate": {
          "type": "string"
        },
        "targetDate": {
          "type": "string"
        },
        "earliestDate": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "unchangedRowCount": {
      "type": "integer"
    },
    "emptyRowCount": {
      "type": "integer"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string"
          },
          "modelLabel": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "scenario": {
            "type": "string",
            "enum": [
              "single_turn_8k1k",
              "agentx"
            ]
          },
          "cells": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "hardware": {
                  "type": "string"
                },
                "hardwareLabel": {
                  "type": "string"
                },
                "costPerMtok": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "throughputPerGpu": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "estimated": {
                  "type": "boolean"
                },
                "deltaVsRefPct": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "missingReason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "config": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "framework": {
                      "type": "string"
                    },
                    "frameworkLabel": {
                      "type": "string"
                    },
                    "precision": {
                      "type": "string"
                    },
                    "specMethod": {
                      "type": "string"
                    },
                    "specLabel": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "disagg": {
                      "type": "boolean"
                    },
                    "multinode": {
                      "type": "boolean"
                    },
                    "latestDate": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "history": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "baselineCostPerMtok": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "costDeltaPct": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "baselineDate": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                }
              },
              "required": [
                "hardware",
                "hardwareLabel",
                "costPerMtok",
                "throughputPerGpu",
                "estimated",
                "deltaVsRefPct",
                "missingReason",
                "config"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "model",
          "modelLabel",
          "category",
          "scenario",
          "cells"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "generatedAt",
    "params",
    "tiers",
    "scenarios",
    "referenceHardware",
    "historicalWindow",
    "unchangedRowCount",
    "emptyRowCount",
    "rows"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "overview",
  "apiVersion": "v1",
  "generatedAt": "2026-08-20",
  "params": {
    "tier": 50,
    "engine": "community",
    "compare": "hardware",
    "ref": "b200",
    "models": "default",
    "rows": "all",
    "hwrows": "all",
    "format": "json"
  },
  "tiers": [
    30,
    50,
    75,
    100,
    150,
    200
  ],
  "scenarios": [
    "single_turn_8k1k",
    "agentx"
  ],
  "referenceHardware": "b200",
  "historicalWindow": null,
  "unchangedRowCount": 0,
  "emptyRowCount": 0,
  "rows": [
    {
      "model": "DeepSeek-V4-Pro",
      "modelLabel": "DeepSeekv4 Pro 0813 1.6T",
      "category": "frontier",
      "scenario": "agentx",
      "cells": [
        {
          "hardware": "b200",
          "hardwareLabel": "B200",
          "costPerMtok": 0.42,
          "throughputPerGpu": 1315.2,
          "estimated": false,
          "deltaVsRefPct": null,
          "missingReason": null,
          "config": {
            "framework": "sglang",
            "frameworkLabel": "SGLang",
            "precision": "fp8",
            "specMethod": "mtp",
            "specLabel": "MTP",
            "disagg": true,
            "multinode": false,
            "latestDate": "2026-08-20"
          }
        }
      ]
    }
  ]
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
model,scenario,tier,hardware,cost_per_mtok,throughput_per_gpu,estimated,delta_vs_ref_pct,missing_reason,framework,precision,spec_method,disagg,multinode,history_status,baseline_cost_per_mtok,history_delta_pct,baseline_date
DeepSeek-V4-Pro,agentx,50,b200,0.42,1315.2,false,,,SGLang,fp8,mtp,true,false,,,,
400

A parameter value is invalid. The body names the parameter and lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown tier: 42",
  "param": "tier",
  "allowed": [
    "30",
    "50",
    "75",
    "100",
    "150",
    "200"
  ]
}
500

The overview assembly failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/rankingsGet GPU ranking views

Returns the /rankings pages as data: per model and scenario, hardware ordered by best community serving config at the primary interactivity tier — fastest-gpu by tok/s per GPU, cheapest-gpu by $/M total tokens. Rows carry the winning framework, precision, and disaggregation flag; chip links each hardware to its /chips registry slug.

Parameters

GET /api/v1/views/rankings: Parameters
NameLocationTypeRequirementDescriptionExample
formatquerystringOptionalResponse format. CSV returns one flat row per ranked hardware.json
kindquerystringOptionalRanking kind: fastest-gpu orders by tok/s per GPU (descending), cheapest-gpu by $/M total tokens (ascending).cheapest-gpu
modelquerystringOptionalDisplay model name (case-insensitive) or compare-page slug. Default: every ranked model; models without measurable rows are dropped there but kept when requested explicitly.DeepSeek-V4-Pro
scenarioquerystringOptionalWorkload scenario. Aliases: 8k-1k for single_turn_8k1k, agentic for agentx. Default: every curated overview scenario per model (the rows the /overview matrix shows).agentx

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/rankings?kind=cheapest-gpu&model=DeepSeek-V4-Pro&scenario=agentx'

Responses

RankingsView
200

Ranked hardware per model-scenario at the primary tier (50 tok/s/user), community engine scope.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "rankings"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "generatedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "params": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "scenario": {
          "type": "string"
        },
        "tier": {
          "type": "integer"
        },
        "engine": {
          "type": "string"
        },
        "format": {
          "type": "string",
          "enum": [
            "json",
            "csv"
          ]
        }
      },
      "required": [
        "kind",
        "model",
        "scenario",
        "tier",
        "engine",
        "format"
      ],
      "additionalProperties": false
    },
    "kind": {
      "type": "string",
      "enum": [
        "fastest-gpu",
        "cheapest-gpu"
      ]
    },
    "tier": {
      "type": "integer"
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string"
          },
          "modelSlug": {
            "type": "string"
          },
          "modelLabel": {
            "type": "string"
          },
          "scenario": {
            "type": "string",
            "enum": [
              "single_turn_8k1k",
              "agentx"
            ]
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer"
                },
                "hardware": {
                  "type": "string"
                },
                "hardwareLabel": {
                  "type": "string"
                },
                "chip": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    "tokens_per_second_per_gpu",
                    "usd_per_million_tokens"
                  ]
                },
                "framework": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "precision": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "disagg": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "required": [
                "rank",
                "hardware",
                "hardwareLabel",
                "chip",
                "value",
                "unit",
                "framework",
                "precision",
                "disagg"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "model",
          "modelSlug",
          "modelLabel",
          "scenario",
          "rows"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "generatedAt",
    "params",
    "kind",
    "tier",
    "entries"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "rankings",
  "apiVersion": "v1",
  "generatedAt": "2026-08-20",
  "params": {
    "kind": "cheapest-gpu",
    "model": "DeepSeek-V4-Pro",
    "scenario": "agentx",
    "tier": 50,
    "engine": "community",
    "format": "json"
  },
  "kind": "cheapest-gpu",
  "tier": 50,
  "entries": [
    {
      "model": "DeepSeek-V4-Pro",
      "modelSlug": "deepseek-v4",
      "modelLabel": "DeepSeekv4 Pro 0813 1.6T",
      "scenario": "agentx",
      "rows": [
        {
          "rank": 1,
          "hardware": "b200",
          "hardwareLabel": "B200",
          "chip": "b200",
          "value": 0.42,
          "unit": "usd_per_million_tokens",
          "framework": "SGLang",
          "precision": "fp8",
          "disagg": true
        }
      ]
    }
  ]
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
kind,model,model_slug,scenario,tier,rank,hardware,hardware_label,chip,value,unit,framework,precision,disagg
cheapest-gpu,DeepSeek-V4-Pro,deepseek-v4,agentx,50,1,b200,B200,b200,0.42,usd_per_million_tokens,SGLang,fp8,true
400

The kind, model, scenario, or format value is invalid. The body names the parameter and lists the allowed values.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown kind: slowest-gpu",
  "param": "kind",
  "allowed": [
    "fastest-gpu",
    "cheapest-gpu"
  ]
}
500

The rankings query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/compareGet a GPU pair comparison view

Returns a /compare page as data: for one model and two GPUs, interpolated throughput, cost, and efficiency at each interactivity tier from the same pipeline the page renders, with a per-tier winner and an overall head-to-head summary. Supports custom tiers and per-dollar, precision, and spec-decode variants.

Parameters

GET /api/v1/views/compare: Parameters
NameLocationTypeRequirementDescriptionExample
formatquerystringOptionalResponse format. CSV returns one flat row per tier.json
gpusqueryCSV GPU listOptionalExactly 2 distinct GPU base keys, comma-separated (e.g. b200,mi355x). Unknown keys return 400 with the allowed list.b200,mi355x
modelquerystringOptionalDisplay model name (case-insensitive) or compare-page model slug. Use together with gpus as an alternative to slug.DeepSeek-V4-Pro
scenarioquerystringOptionalWorkload sequence. Aliases: 8k-1k, 1k-1k, 1k-8k, agentic. Default: the pair default the page picks (AgentX-featured models fall back to agentic-traces, others to 8k/1k).8k/1k
slugquerystringOptionalCompare-page slug, <model>-<gpuA>-vs-<gpuB>. Either slug or model+gpus is required; GPU order is canonicalized like the page redirect.deepseek-v4-b200-vs-mi355x
tiersqueryCSV number listOptionalCustom interactivity targets (tok/s/user), comma-separated, max 12. Default: the 3 page targets spanning the shared measured range. Requested tiers outside the measured range are dropped.25,50,75
variantquerystringOptionalView variant. per-dollar switches the winner/delta basis from throughput to $/M tokens; precision adds a per-precision head-to-head summary; spec-decode adds a per-speculative-decoding-method breakdown (fixed sequences only).per-dollar

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/compare?slug=deepseek-v4-b200-vs-mi355x'

Responses

CompareView
200

Head-to-head interpolated table for the GPU pair at the effective scenario and precision, plus per-side summaries.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "compare"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "generatedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "params": {
      "type": "object",
      "properties": {
        "slug": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "gpus": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "scenario": {
          "type": "string"
        },
        "variant": {
          "type": "string"
        },
        "tiers": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "default"
              ]
            },
            {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          ]
        },
        "format": {
          "type": "string",
          "enum": [
            "json",
            "csv"
          ]
        }
      },
      "additionalProperties": false
    },
    "model": {
      "type": "object",
      "properties": {
        "slug": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "slug",
        "displayName",
        "label"
      ],
      "additionalProperties": false
    },
    "gpus": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scenario": {
      "type": [
        "string",
        "null"
      ]
    },
    "precision": {
      "type": [
        "string",
        "null"
      ]
    },
    "variant": {
      "type": "string"
    },
    "tiers": {
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "interactivityRange": {
      "type": "object",
      "properties": {
        "min": {
          "type": "number"
        },
        "max": {
          "type": "number"
        }
      },
      "required": [
        "min",
        "max"
      ],
      "additionalProperties": false
    },
    "dataRange": {
      "type": "object",
      "properties": {
        "oldest": {
          "type": [
            "string",
            "null"
          ]
        },
        "newest": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "oldest",
        "newest"
      ],
      "additionalProperties": false
    },
    "table": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tier": {
            "type": "number"
          },
          "a": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "hardware": {
                "type": "string"
              },
              "configKey": {
                "type": "string"
              },
              "throughputPerGpu": {
                "type": "number"
              },
              "inputThroughputPerGpu": {
                "type": "number"
              },
              "outputThroughputPerGpu": {
                "type": "number"
              },
              "costPerMtok": {
                "type": "number"
              },
              "costPerMtokInput": {
                "type": "number"
              },
              "costPerMtokOutput": {
                "type": "number"
              },
              "throughputPerMw": {
                "type": "number"
              },
              "concurrency": {
                "type": "number"
              },
              "precision": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "clamped": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "b": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "hardware": {
                "type": "string"
              },
              "configKey": {
                "type": "string"
              },
              "throughputPerGpu": {
                "type": "number"
              },
              "inputThroughputPerGpu": {
                "type": "number"
              },
              "outputThroughputPerGpu": {
                "type": "number"
              },
              "costPerMtok": {
                "type": "number"
              },
              "costPerMtokInput": {
                "type": "number"
              },
              "costPerMtokOutput": {
                "type": "number"
              },
              "throughputPerMw": {
                "type": "number"
              },
              "concurrency": {
                "type": "number"
              },
              "precision": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "clamped": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "basis": {
            "type": "string",
            "enum": [
              "throughputPerGpu",
              "costPerMtok"
            ]
          },
          "deltaPct": {
            "type": [
              "number",
              "null"
            ]
          },
          "winner": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "tier",
          "a",
          "b",
          "basis",
          "deltaPct",
          "winner"
        ],
        "additionalProperties": false
      }
    },
    "summary": {
      "type": "object",
      "properties": {
        "a": {
          "type": "object",
          "properties": {
            "hardware": {
              "type": "string"
            },
            "configCount": {
              "type": "integer"
            },
            "bestThroughputPerGpu": {
              "type": [
                "number",
                "null"
              ]
            },
            "bestMedianTtft": {
              "type": [
                "number",
                "null"
              ]
            },
            "bestMedianTpot": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": true
        },
        "b": {
          "type": "object",
          "properties": {
            "hardware": {
              "type": "string"
            },
            "configCount": {
              "type": "integer"
            },
            "bestThroughputPerGpu": {
              "type": [
                "number",
                "null"
              ]
            },
            "bestMedianTtft": {
              "type": [
                "number",
                "null"
              ]
            },
            "bestMedianTpot": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": true
        },
        "headToHead": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "faster": {
              "type": "string"
            },
            "slower": {
              "type": "string"
            },
            "tputPct": {
              "type": "number"
            },
            "cheaper": {
              "type": "string"
            },
            "pricier": {
              "type": "string"
            },
            "costPct": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "byPrecision": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "precision": {
                "type": "string"
              },
              "tiers": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "headToHead": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "faster": {
                    "type": "string"
                  },
                  "slower": {
                    "type": "string"
                  },
                  "tputPct": {
                    "type": "number"
                  },
                  "cheaper": {
                    "type": "string"
                  },
                  "pricier": {
                    "type": "string"
                  },
                  "costPct": {
                    "type": "number"
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "precision",
              "tiers",
              "headToHead"
            ],
            "additionalProperties": false
          }
        },
        "bySpecDecode": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "specMethod": {
                "type": "string"
              },
              "tier": {
                "type": "number"
              },
              "a": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "hardware": {
                    "type": "string"
                  },
                  "configKey": {
                    "type": "string"
                  },
                  "throughputPerGpu": {
                    "type": "number"
                  },
                  "inputThroughputPerGpu": {
                    "type": "number"
                  },
                  "outputThroughputPerGpu": {
                    "type": "number"
                  },
                  "costPerMtok": {
                    "type": "number"
                  },
                  "costPerMtokInput": {
                    "type": "number"
                  },
                  "costPerMtokOutput": {
                    "type": "number"
                  },
                  "throughputPerMw": {
                    "type": "number"
                  },
                  "concurrency": {
                    "type": "number"
                  },
                  "precision": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "clamped": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "b": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "hardware": {
                    "type": "string"
                  },
                  "configKey": {
                    "type": "string"
                  },
                  "throughputPerGpu": {
                    "type": "number"
                  },
                  "inputThroughputPerGpu": {
                    "type": "number"
                  },
                  "outputThroughputPerGpu": {
                    "type": "number"
                  },
                  "costPerMtok": {
                    "type": "number"
                  },
                  "costPerMtokInput": {
                    "type": "number"
                  },
                  "costPerMtokOutput": {
                    "type": "number"
                  },
                  "throughputPerMw": {
                    "type": "number"
                  },
                  "concurrency": {
                    "type": "number"
                  },
                  "precision": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "clamped": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "specMethod",
              "tier",
              "a",
              "b"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "a",
        "b",
        "headToHead"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "view",
    "apiVersion",
    "generatedAt",
    "params",
    "model",
    "gpus",
    "scenario",
    "precision",
    "variant",
    "tiers",
    "interactivityRange",
    "dataRange",
    "table",
    "summary"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "compare",
  "apiVersion": "v1",
  "generatedAt": "2026-08-20",
  "params": {
    "slug": "deepseek-v4-b200-vs-mi355x",
    "model": "DeepSeek-V4-Pro",
    "gpus": [
      "b200",
      "mi355x"
    ],
    "scenario": "auto",
    "variant": "default",
    "tiers": "default",
    "format": "json"
  },
  "model": {
    "slug": "deepseek-v4",
    "displayName": "DeepSeek-V4-Pro",
    "label": "DeepSeekv4 Pro 0813 1.6T"
  },
  "gpus": [
    "b200",
    "mi355x"
  ],
  "scenario": "agentic-traces",
  "precision": "fp8",
  "variant": "default",
  "tiers": [
    21,
    34,
    47
  ],
  "interactivityRange": {
    "min": 12,
    "max": 55
  },
  "dataRange": {
    "oldest": "2026-05-02",
    "newest": "2026-08-20"
  },
  "table": [
    {
      "tier": 34,
      "a": {
        "hardware": "b200",
        "configKey": "b200_sglang",
        "throughputPerGpu": 1315.2,
        "inputThroughputPerGpu": 9821.4,
        "outputThroughputPerGpu": 1315.2,
        "costPerMtok": 0.42,
        "costPerMtokInput": 0.06,
        "costPerMtokOutput": 0.48,
        "throughputPerMw": 985000,
        "concurrency": 96,
        "precision": "fp8",
        "clamped": false
      },
      "b": {
        "hardware": "mi355x",
        "configKey": "mi355x_sglang",
        "throughputPerGpu": 1104.7,
        "inputThroughputPerGpu": 8455.1,
        "outputThroughputPerGpu": 1104.7,
        "costPerMtok": 0.47,
        "costPerMtokInput": 0.07,
        "costPerMtokOutput": 0.53,
        "throughputPerMw": 912000,
        "concurrency": 88,
        "precision": "fp8",
        "clamped": false
      },
      "basis": "throughputPerGpu",
      "deltaPct": 19.1,
      "winner": "b200"
    }
  ],
  "summary": {
    "a": {
      "hardware": "b200",
      "configCount": 12,
      "bestThroughputPerGpu": 1840.3,
      "bestMedianTtft": 0.42,
      "bestMedianTpot": 8.1
    },
    "b": {
      "hardware": "mi355x",
      "configCount": 9,
      "bestThroughputPerGpu": 1512.8,
      "bestMedianTtft": 0.51,
      "bestMedianTpot": 9.4
    },
    "headToHead": {
      "faster": "B200",
      "slower": "MI355X",
      "tputPct": 19,
      "cheaper": "B200",
      "pricier": "MI355X",
      "costPct": 11
    }
  }
}

Scroll to inspect the full example.

Alternate representation: text/csv

Response shape

Code
{
  "type": "string"
}

Response example

Code
model,scenario,tier,basis,delta_pct,winner,a_hardware,a_throughput_per_gpu,a_cost_per_mtok,a_concurrency,a_clamped,b_hardware,b_throughput_per_gpu,b_cost_per_mtok,b_concurrency,b_clamped
DeepSeek-V4-Pro,agentic-traces,34,throughputPerGpu,19.1,b200,b200,1315.2,0.42,96,false,mi355x,1104.7,0.47,88,false
400

The slug, model, gpus, scenario, variant, tiers, or format value is invalid. The body names the parameter and lists the allowed values where applicable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown compare slug: not-a-pair. Expected <model>-<gpuA>-vs-<gpuB>, e.g. deepseek-v4-b200-vs-mi355x.",
  "param": "slug"
}
500

The comparison assembly failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/first-tokenFirst-token winners

Read-only first-token winners using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/first-token: Parameters
NameLocationTypeRequirementDescriptionExample
capsquerystringOptionalOne to eight positive finite first-token caps in seconds, sorted and deduplicated; default 2,5,10,15,20. Any invalid entry returns 400.
costProviderquerystringOptionalcosth = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider.
costTypequerystringOptionaltotal (default), input or output tokens. Disaggregated input/output rates retain their prefill/decode denominators.
datequerystringOptionalSnapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead.
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
minInteractivityquerystringOptionalMinimum tok/s/user, default 150 for AgentX or 35 for fixed-length workloads.
modelquerystringRequiredModel display name or comparison slug, case-insensitive. Required for benchmark-based views. The image view also accepts current image-catalog names, trims whitespace and defaults to all; unknown models return 400.DeepSeek-V4-Pro
percentilequerystringOptionalAgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99.
precisionsquerystringOptionalComma-separated precision keys; omitted selection uses available curve density. Calculator extensions auto-select the densest official precision and include precisions present in unofficial-run overlays.
runIdquerystringOptionalPositive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics.123
sequencequerystringOptionalWorkload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces.
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/first-token?model=DeepSeek-V4-Pro'

Responses

FirstTokenView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "first-token"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "data": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "first-token",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/cache-reuseCache-reuse curves

Read-only cache-reuse curves using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/cache-reuse: Parameters
NameLocationTypeRequirementDescriptionExample
configquerystringOptionalExact cache-reuse configuration key from configurations. Omit for the shared dashboard default.
datequerystringOptionalSnapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead.
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
modelquerystringRequiredModel display name or comparison slug, case-insensitive. Required for benchmark-based views. The image view also accepts current image-catalog names, trims whitespace and defaults to all; unknown models return 400.DeepSeek-V4-Pro
percentilequerystringOptionalAgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99.
precisionsquerystringOptionalComma-separated precision keys; omitted selection uses available curve density. Calculator extensions auto-select the densest official precision and include precisions present in unofficial-run overlays.
runIdquerystringOptionalPositive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics.123
sequencequerystringOptionalWorkload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces.
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/cache-reuse?model=DeepSeek-V4-Pro'

Responses

CacheReuseView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "cache-reuse"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "configurations": {
      "type": "object",
      "additionalProperties": true
    },
    "data": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "cache-reuse",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/profit-estimatorProfit per chip-hour

Read-only profit per chip-hour using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/profit-estimator: Parameters
NameLocationTypeRequirementDescriptionExample
cachedInputPricequerystringOptionalCustom cached input USD/million tokens, default 0.1.
costProviderquerystringOptionalcosth = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider.
customCostsquerystringOptionalJSON object from base hardware keys to finite nonnegative USD/chip-hour values, at most 100 entries.
datequerystringOptionalSnapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead.
datesquerystringOptionalUp to twelve comma-separated YYYY-MM-DD or YYYY-MM-DD~rRUN_ID comparison entries. Date-only entries select that exact logical snapshot, not an as-of cutoff; run entries select the exact logical run snapshot. Each snapshot is evaluated independently.
endquerystringOptionalComparison range end, YYYY-MM-DD; must not precede start. Historical uses an inclusive data bound.
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
inputPricequerystringOptionalCustom uncached input USD/million tokens, default 1.
labCutquerystringOptionalModel license/revenue-share percentage, 0 through 100; model-specific default.
modelquerystringRequiredModel display name or comparison slug, case-insensitive. Required for benchmark-based views. The image view also accepts current image-catalog names, trims whitespace and defaults to all; unknown models return 400.DeepSeek-V4-Pro
outputPricequerystringOptionalCustom output USD/million tokens, default 1.
percentilequerystringOptionalAgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99.
powerBasisquerystringOptionalprovisioned (default), modeled or compare. Modeled power requires eligible measured source rows; estimates extrapolated from partial-GPU measurements to a full chassis are identified by powerLabel. Missing coverage is not zero.
precisionsquerystringOptionalComma-separated precision keys; omitted selection uses available curve density. Calculator extensions auto-select the densest official precision and include precisions present in unofficial-run overlays.
priceSourcequerystringOptionalProfit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used.
runIdquerystringOptionalPositive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics.123
sequencequerystringOptionalWorkload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces.
startquerystringOptionalComparison range start, YYYY-MM-DD. With end, adds the two endpoints, not every intermediate date. Historical uses an inclusive data bound.
targetquerystringOptionalPositive operating-point target, tok/s/user in interactivity-to-throughput mode. Profit defaults are model-specific.
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.
utilizationquerystringOptionalUtilization percent from 0 through 100, default 60.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/profit-estimator?model=DeepSeek-V4-Pro'

Responses

ProfitEstimatorView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "profit-estimator"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "pricing": {
      "type": "object",
      "additionalProperties": true
    },
    "data": {
      "type": "object",
      "additionalProperties": true
    },
    "overlays": {
      "type": "object",
      "additionalProperties": true
    },
    "comparisons": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "profit-estimator",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/profit-estimator-per-gigawattProfit per gigawatt-year

Read-only profit per gigawatt-year using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/profit-estimator-per-gigawatt: Parameters
NameLocationTypeRequirementDescriptionExample
cachedInputPricequerystringOptionalCustom cached input USD/million tokens, default 0.1.
costProviderquerystringOptionalcosth = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider.
customCostsquerystringOptionalJSON object from base hardware keys to finite nonnegative USD/chip-hour values, at most 100 entries.
datequerystringOptionalSnapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead.
datesquerystringOptionalUp to twelve comma-separated YYYY-MM-DD or YYYY-MM-DD~rRUN_ID comparison entries. Date-only entries select that exact logical snapshot, not an as-of cutoff; run entries select the exact logical run snapshot. Each snapshot is evaluated independently.
endquerystringOptionalComparison range end, YYYY-MM-DD; must not precede start. Historical uses an inclusive data bound.
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
inputPricequerystringOptionalCustom uncached input USD/million tokens, default 1.
labCutquerystringOptionalModel license/revenue-share percentage, 0 through 100; model-specific default.
modelquerystringRequiredModel display name or comparison slug, case-insensitive. Required for benchmark-based views. The image view also accepts current image-catalog names, trims whitespace and defaults to all; unknown models return 400.DeepSeek-V4-Pro
outputPricequerystringOptionalCustom output USD/million tokens, default 1.
percentilequerystringOptionalAgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99.
powerBasisquerystringOptionalprovisioned (default), modeled or compare. Modeled power requires eligible measured source rows; estimates extrapolated from partial-GPU measurements to a full chassis are identified by powerLabel. Missing coverage is not zero.
precisionsquerystringOptionalComma-separated precision keys; omitted selection uses available curve density. Calculator extensions auto-select the densest official precision and include precisions present in unofficial-run overlays.
priceSourcequerystringOptionalProfit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used.
runIdquerystringOptionalPositive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics.123
sequencequerystringOptionalWorkload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces.
startquerystringOptionalComparison range start, YYYY-MM-DD. With end, adds the two endpoints, not every intermediate date. Historical uses an inclusive data bound.
targetquerystringOptionalPositive operating-point target, tok/s/user in interactivity-to-throughput mode. Profit defaults are model-specific.
tcoBasisquerystringOptionalinternal (default) or external. Applies the same configured owning/rental cost basis as the UI.
unofficialrunquerystringOptionalUp to eight comma-separated public CI run IDs. Surrounding whitespace and duplicates are removed; run indices follow the remaining order. Overlay sources remain separate from official data.
utilizationquerystringOptionalUtilization percent from 0 through 100, default 60.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/profit-estimator-per-gigawatt?model=DeepSeek-V4-Pro'

Responses

ProfitEstimatorPerGigawattView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "profit-estimator-per-gigawatt"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "pricing": {
      "type": "object",
      "additionalProperties": true
    },
    "data": {
      "type": "object",
      "additionalProperties": true
    },
    "overlays": {
      "type": "object",
      "additionalProperties": true
    },
    "comparisons": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "profit-estimator-per-gigawatt",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/operatorxOperatorX selected sweep

Read-only operatorx selected sweep using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/operatorx: Parameters
NameLocationTypeRequirementDescriptionExample
backendquerystringOptionalBackend filter; omit for all.
clusterquerystringOptionalOperatorX cluster filter; omit for all.
metricquerystringOptionalView-specific metric key. OperatorX: tflops or latency; GPU metrics: power, temperature, clocks, utilization or available AMD metrics.
operatorquerystringOptionalgemm, attention_mha, attention_mla or moe_gemm; default first available operator.
pagequerystringOptionalOperatorX zero-based table page; video one-based CI discovery page.
precisionquerystringOptionalPrecision key; CollectiveX defaults to fp8 if available. The image view trims whitespace, ignores case and defaults to all.
runIdquerystringOptionalPositive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics.123
shapequerystringOptionalExact OperatorX shape key from response options.
statusquerystringOptionalOperatorX status: ok (default), unsupported, error, missing or all.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/operatorx'

Responses

OperatorxView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "operatorx"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "run": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "points": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "options": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "operatorx",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/collectivexCollectiveX EP, KV and swap views

Read-only collectivex ep, kv and swap views using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/collectivex: Parameters
NameLocationTypeRequirementDescriptionExample
activeSeriesquerystringOptionalComma-separated run-namespaced EP series IDs. Omit for all.
kvSeriesquerystringOptionalComma-separated run:case IDs for KV series. Omit for all.
swapSeriesquerystringOptionalComma-separated swap series IDs. Omit for all.
backendquerystringOptionalBackend filter; omit for all.
epSizequerystringOptionalEP size, default 8 when available, otherwise the first available size.
kvOpquerystringOptionalKV operation: pull (default) or push.
kvXquerystringOptionalKV projection: isl (default), batch, frontier or overlap.
kvYquerystringOptionalKV metric: bandwidth (default) or latency.
modesquerystringOptionalComma-separated EP mode keys, default every available mode.
operationquerystringOptionalEP operation: roundtrip (default), dispatch or combine.
overlapIslquerystringOptionalOverlap input length: max (default) or a positive integer.
pageTokensquerystringOptionalPositive KV page size in tokens; default first available size.
percentilequerystringOptionalAgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99.
phasequerystringOptionalCollectiveX phase, default decode; video phase: measurement, startup or warmup.
precisionquerystringOptionalPrecision key; CollectiveX defaults to fp8 if available. The image view trims whitespace, ignores case and defaults to all.
runsquerystringOptionalOrdered comma-separated run IDs, at most eight. Omit for newest measured run; empty value selects none.
skuquerystringOptionalCollectiveX chip SKU filter; default all.
suitequerystringOptionalRun-list filter: all, ep, kv or swap.
swapDirectionquerystringOptionalh2d (default), d2h or d2d.
swapLayoutquerystringOptionalcontiguous (default) or random.
swapMetricquerystringOptionalbandwidth (default) or latency.
swapPercentilequerystringOptionalp50 (default), p95 or p99.
versionquerystringOptionalCollectiveX dataset schema version; default 1.
yAxisquerystringOptionalCollectiveX: latency, tokens-per-second, activation-rate or payload-rate. Video: dollar, clipsGpu, secondsGpu, clipsAllocatedGpu, secondsAllocatedGpu or energy.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/collectivex'

Responses

CollectivexView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "collectivex"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "ep": {
      "type": "object",
      "additionalProperties": true
    },
    "kv": {
      "type": "object",
      "additionalProperties": true
    },
    "swap": {
      "type": "object",
      "additionalProperties": true
    },
    "options": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "collectivex",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/submissionsSubmission table and weekly volume

Read-only submission table and weekly volume using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/submissions: Parameters
NameLocationTypeRequirementDescriptionExample
directionquerystringOptionalasc or desc. Defaults: submissions desc, GPU statistics asc.
limitquerystringOptionalSubmission table row limit, default 100, maximum 10000.
linesquerystringOptionalSubmission chart lines: comma-separated nvidia, amd, total; amd includes non-NVIDIA rows as in the UI.
modequerystringOptionalSubmissions: weekly (default) or cumulative. Calculator modes use interactivity_to_throughput or throughput_to_interactivity.
offsetquerystringOptionalSubmission table offset, default 0.
onChangeOnlyquerystringOptionalBoolean, default true. For weekly charts only, apply the dashboard on-change reporting cutoff.
searchquerystringOptionalCase-insensitive submission search over chip, model, framework, precision, speculation and vendor.
sortquerystringOptionalTable sort column; submissions defaults to date, GPU statistics to gpuIndex.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/submissions'

Responses

SubmissionsView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "submissions"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "stats": {
      "type": "object",
      "additionalProperties": true
    },
    "series": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "submissions",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/current-inferencex-imageCurrent serving images

Read-only current serving images using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.

Parameters

GET /api/v1/views/current-inferencex-image: Parameters
NameLocationTypeRequirementDescriptionExample
asOfquerystringOptionalReference date YYYY-MM-DD for reproducible rolling reliability or image-age calculations.
frameworksquerystringOptionalComma-separated framework-family keys; omitted selection includes all.
hardwarequerystringOptionalImage-view hardware key; whitespace is trimmed and case ignored. Default all.
modelquerystringOptionalModel display name or comparison slug, case-insensitive. Required for benchmark-based views. The image view also accepts current image-catalog names, trims whitespace and defaults to all; unknown models return 400.DeepSeek-V4-Pro
nodeTypequerystringOptionalImage deployment: single (default), disagg or all.
precisionquerystringOptionalPrecision key; CollectiveX defaults to fp8 if available. The image view trims whitespace, ignores case and defaults to all.
sequencequerystringOptionalWorkload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces.
specquerystringOptionalSpeculative decoding filter; the image view trims whitespace and ignores case for a single value, default all. Inference uses a comma-separated list.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/current-inferencex-image'

Responses

CurrentInferencexImageView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "current-inferencex-image"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "options": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "current-inferencex-image",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/gpu-metricsLive GPU metrics and statistics

Read-only live gpu metrics and statistics using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter. Live artifact reads are no-store; statistics use all chips and unsampled values, while chart rows respect selected GPU indices.

Parameters

GET /api/v1/views/gpu-metrics: Parameters
NameLocationTypeRequirementDescriptionExample
artifactquerystringOptionalGPU metric artifact name, or video numeric artifact ID paired with run.
chartViewquerystringOptionalchart (default) or correlation. Both return unsampled source rows.
corrXMetricquerystringOptionalCorrelation x-axis GPU metric, default power.
corrYMetricquerystringOptionalCorrelation y-axis GPU metric, default temperature.
directionquerystringOptionalasc or desc. Defaults: submissions desc, GPU statistics asc.
downsamplequerystringOptionalBoolean, default true; declares the UI 2000-interactive-point rendering cap. Returned raw rows and statistics are never sampled.
gpusquerystringOptionalComma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all.
metricquerystringOptionalView-specific metric key. OperatorX: tflops or latency; GPU metrics: power, temperature, clocks, utilization or available AMD metrics.
runIdquerystringRequiredPositive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics.123
sortquerystringOptionalTable sort column; submissions defaults to date, GPU statistics to gpuIndex.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/gpu-metrics?runId=123'

Responses

GpuMetricsView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "gpu-metrics"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "runInfo": {
      "type": "object",
      "additionalProperties": true
    },
    "artifacts": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "stats": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "rendering": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "gpu-metrics",
  "apiVersion": "v1",
  "params": {}
}
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETBeta/api/v1/views/videoPublished video evidence and tradeoffs

Read-only published video evidence and tradeoffs using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter. Only already published artifacts are read. Cell, phase, slot and GPU-basis choices select result evidence and normalized serving rates; x/y/cost/workload filters produce computed tradeoff points. Local bundles and arbitrary URLs are excluded. Responses are no-store.

Parameters

GET /api/v1/views/video: Parameters
NameLocationTypeRequirementDescriptionExample
artifactquerystringOptionalGPU metric artifact name, or video numeric artifact ID paired with run.
cellquerystringOptionalServing cell ID. Unknown IDs fall back to the first cell, matching the UI; evidence.cell records the resolved choice.
comparequerystringOptionalVideo: up to eight comma-separated run:artifact pairs of already published evidence.
costsquerystringOptionalJSON object mapping video point IDs to {hourly,source,date} strings; hourly is nonnegative USD/deployment-hour.
gpuBasisquerystringOptionalVideo denominator: participating (default) or allocated GPUs.
pagequerystringOptionalOperatorX zero-based table page; video one-based CI discovery page.
phasequerystringOptionalCollectiveX phase, default decode; video phase: measurement, startup or warmup.
runquerystringOptionalPublic video CI run ID. Omit to discover runs.
selectedquerystringOptionalSelected video tradeoff point ID.
slotquerystringOptionalMedia/fidelity slot ID. Unknown IDs fall back to the UI default; evidence.slot records the resolved choice.
sourcequerystringOptionalPublished video source ID; defaults to first source.
viewquerystringOptionalVideo results (default) or tradeoff.
workloadquerystringOptionalExact workload-group key from video workloads. Comparisons never pool unequal workloads.
xAxisquerystringOptionalVideo latency: p90 or median. Serving defaults to median only when p90 is unavailable.
yAxisquerystringOptionalCollectiveX: latency, tokens-per-second, activation-rate or payload-rate. Video: dollar, clipsGpu, secondsGpu, clipsAllocatedGpu, secondsAllocatedGpu or energy.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/video'

Responses

VideoView
200

Resolved selection and public view data.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "video"
      ]
    },
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "points": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "curves": {
      "type": "object",
      "additionalProperties": true
    },
    "evidence": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "discovery": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "view",
    "apiVersion",
    "params"
  ],
  "additionalProperties": true
}

Scroll to inspect the full example.

Response example

Code
{
  "view": "video",
  "apiVersion": "v1",
  "params": {}
}
204

No published video artifact is available. The response has no body.

Response shape

Code
{
  "type": "null"
}

Response example

Code
null
404

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
429

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
503

Source status is preserved; internal details are removed and failures are not cached.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Source data unavailable"
}
400

Invalid or unsupported query.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid parameter",
  "param": "model"
}
500

Data retrieval or projection failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}

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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/availability'

Responses

AvailabilityRows
200

Available configuration rows.

Media type: application/json

Response shape

Code
{
  "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

Code
[
  {
    "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.

500

The availability query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/benchmarks: Parameters
NameLocationTypeRequirementDescriptionExample
modelquerystringRequiredDisplay model name.DeepSeek-R1-0528
datequerydateOptionalLatest data on or before YYYY-MM-DD, unless exact is true.2026-08-08
exactquerybooleanOptionalSet true to require the supplied date exactly.false
runIdqueryintegerOptionalNumeric GitHub Actions run ID. Non-numeric values are ignored.123456789
exactRunquerybooleanOptionalWith a numeric runId, return that run’s logical snapshot, including same-image predecessors for append-only runs.false
viewqueryenumOptionalcalculator 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
sequencequeryenumOptionalRequired when view=calculator and ignored otherwise. Unknown values yield 400 Unknown calculator sequence.1k/1k
powerValidqueryenumOptionalOnly 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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmarks?model=DeepSeek-R1-0528'

Responses

BenchmarkRows
200

Benchmark rows with scalar metrics in the metrics object.

Media type: application/json

Response shape

Code
{
  "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

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.

400

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/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown model"
}
500

The benchmark query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/benchmarks/history: Parameters
NameLocationTypeRequirementDescriptionExample
modelquerystringRequiredDisplay model name.DeepSeek-R1-0528
islqueryintegerOptionalPositive input sequence length in tokens. Required unless benchmarkType=agentic_traces.1024
oslqueryintegerOptionalPositive output sequence length in tokens. Required unless benchmarkType=agentic_traces.1024
benchmarkTypequerystringOptionalSet to agentic_traces to read Agentic Traces history without ISL/OSL.agentic_traces
viewqueryenumOptionalcalculator 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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmarks/history?model=DeepSeek-R1-0528&isl=1024&osl=1024'

Responses

BenchmarkRows
200

Historical benchmark rows.

Media type: application/json

Response shape

Code
{
  "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

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.

400

Required parameters are missing or the model is unsupported.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "model, isl, and osl are required"
}
500

The history query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/workflow-info: Parameters
NameLocationTypeRequirementDescriptionExample
datequerydateOptionalOptional YYYY-MM-DD filter.2026-08-08
benchmarkTypequerystringOptionalSet to agentic_traces to scope per-run configuration coverage to Agentic Traces.agentic_traces

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/workflow-info?date=2026-08-08'

Responses

WorkflowInfo
200

Workflow provenance grouped into four arrays.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

date is not YYYY-MM-DD.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid date format (YYYY-MM-DD required)"
}
500

The workflow query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/evaluations'

Responses

EvaluationRows
200

Evaluation result rows.

Media type: application/json

Response shape

Code
{
  "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

Code
[
  {
    "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.

500

The evaluation query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETStable/api/v1/reliabilityList benchmark reliability

Returns successful and total run counts by hardware and date.

Parameters

No parameters.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/reliability'

Responses

ReliabilityRows
200

Reliability count rows.

Media type: application/json

Response shape

Code
{
  "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

Code
[
  {
    "hardware": "h200_sxm",
    "date": "2026-08-08",
    "n_success": 18,
    "total": 20
  }
]
500

The reliability query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/tco-feed: Parameters
NameLocationTypeRequirementDescriptionExample
modelquerystringOptionalDB model key or display model name.dsv4
workloadsqueryCSV workload listOptionalComma-separated <isl>x<osl> token pairs.1024x1024,8192x1024
tiersqueryCSV number listOptionalPositive interactivity targets in output tokens per second per user.30,50,75,100
datequerydateOptionalUse data on or before YYYY-MM-DD. Omit for latest.2026-08-08
formatqueryenumOptionalResponse encoding.json
viewqueryenumOptionalpoints returns one row per hardware, workload, and tier. scores returns one row per hardware.points
weightsqueryCSV number listOptionalscores only. One non-negative weight per tier, normalized to sum to 1.0.35,0.4,0.2,0.05
workload_weightsqueryCSV number listOptionalscores only. One non-negative weight per workload, normalized to sum to 1. Defaults to equal weights.0.5,0.5
alphaquerynumberOptionalscores only. Input-token value ratio in [0, 10].0.25

Request

Code
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

TcoFeed
200

The selected points or scores envelope.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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

Code
{
  "type": "string"
}

Response example

Code
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
400

A model, date, view, format, workload, tier, weight, or alpha value is invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid tiers: expected comma-separated positive numbers"
}
500

The TCO calculation failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETStable/api/v1/submissionsRead submission coverage

Returns configuration-level submission summaries and daily hardware submission volume.

Parameters

No parameters.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/submissions'

Responses

Submissions
200

Submission summary and volume arrays.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

500

The submissions query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/framework-releases'

Responses

FrameworkReleases
200

Framework keys mapped to release tags or null.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": {
    "type": [
      "string",
      "null"
    ]
  }
}

Response example

Code
{
  "vllm": "v0.10.2",
  "sglang": "v0.4.10"
}
500

The release lookup failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/latest-images'

Responses

LatestImageRows
200

Latest image rows.

Media type: application/json

Response shape

Code
{
  "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

Code
[
  {
    "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.

500

The image query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets'

Responses

DatasetRecords
200

Dataset registry records.

Media type: application/json

Response shape

Code
{
  "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

Code
[
  {
    "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.

500

The dataset registry query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}
GETStable/api/v1/datasets/{slug}Read dataset details

Returns one dataset registry record plus its precomputed chart_data distributions.

Parameters

GET /api/v1/datasets/{slug}: Parameters
NameLocationTypeRequirementDescriptionExample
slugpathstringRequiredDataset slug from the registry.cc-traces-weka

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka'

Responses

DatasetDetail
200

Dataset metadata with chart_data.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

404

No dataset has this slug.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The dataset query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/datasets/{slug}/conversations: Parameters
NameLocationTypeRequirementDescriptionExample
slugpathstringRequiredDataset slug from the registry.cc-traces-weka
searchquerystringOptionalTrimmed conversation ID search, at most 100 characters.trace-018
limitqueryintegerOptionalPage size, clamped to 1 through 200.50
offsetqueryintegerOptionalZero-based row offset. Negative values become 0.0
sortqueryenumOptionalSort by tokens, turns, subagents, or id. Unknown values fall back to tokens.tokens

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka/conversations?limit=50&offset=0&sort=tokens'

Responses

ConversationList
200

Total count and conversation index items.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

search exceeds 100 characters.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "search too long"
}
404

No dataset has this slug.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The conversation query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/datasets/{slug}/conversations/{convId}: Parameters
NameLocationTypeRequirementDescriptionExample
slugpathstringRequiredDataset slug from the registry.cc-traces-weka
convIdpathstringRequiredConversation ID exactly as listed by the conversation index.trace-018

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka/conversations/trace-018'

Responses

ConversationDetail
200

Conversation counts and nested structure.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

404

The dataset or conversation does not exist.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The conversation query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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. Optional swap_blocks results contain verified copy latency in microseconds and payload GB/s (bytes counted once), with block_bytes, num_blocks, runtime provenance and skipped-point counts. Multi-pool sweeps preserve each GPU pool as an independent result.

Parameters

GET /api/v1/collectivex/latest: Parameters
NameLocationTypeRequirementDescriptionExample
versionqueryenumRequiredCollectiveX contract version.1

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/latest?version=1'

Responses

CollectiveXDataset
200

Latest CollectiveX run, coverage, series, and optional KV cases.

Media type: application/json

Response shape

Code
{
  "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"
          }
        },
        "swap_requested_cases": {
          "type": "integer"
        },
        "swap_measured_cases": {
          "type": "integer"
        },
        "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
      }
    },
    "swap_blocks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "result_id": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "runtime": {
            "type": "object",
            "additionalProperties": true
          },
          "timing": {
            "type": "string"
          },
          "warmup": {
            "type": "integer"
          },
          "iterations": {
            "type": "integer"
          },
          "max_payload_bytes": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipped_points": {
            "type": "integer"
          },
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string",
                  "enum": [
                    "h2d",
                    "d2h",
                    "d2d"
                  ]
                },
                "layout": {
                  "type": "string",
                  "enum": [
                    "contiguous",
                    "random"
                  ]
                },
                "block_bytes": {
                  "type": "integer"
                },
                "num_blocks": {
                  "type": "integer"
                },
                "payload_bytes": {
                  "type": "integer"
                },
                "seed": {
                  "type": "integer"
                },
                "host_memory": {
                  "type": "string"
                },
                "api": {
                  "type": "string"
                },
                "sample_count": {
                  "type": "integer"
                },
                "latency_us": {
                  "type": "object",
                  "additionalProperties": true
                },
                "payload_gbps_at_latency_percentile": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "direction",
                "layout",
                "block_bytes",
                "num_blocks",
                "payload_bytes",
                "seed",
                "host_memory",
                "api",
                "sample_count",
                "latency_us",
                "payload_gbps_at_latency_percentile"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "result_id",
          "sku",
          "runtime",
          "timing",
          "warmup",
          "iterations",
          "max_payload_bytes",
          "skipped_points",
          "points"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "version",
    "run",
    "coverage",
    "series"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "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": [],
  "swap_blocks": []
}

Scroll to inspect the full example.

400

version is missing or unsupported.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown version"
}
404

No stored or discoverable run exists.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
502

Upstream sweep discovery is unavailable and no stored fallback exists.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unavailable"
}
503

Upstream sweep processing is temporarily unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unavailable"
}
500

The stored run query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/collectivex/runs: Parameters
NameLocationTypeRequirementDescriptionExample
versionqueryenumRequiredCollectiveX contract version.1

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/runs?version=1'

Responses

CollectiveXRunList
200

Version, run summaries, and discovery state.

Media type: application/json

Response shape

Code
{
  "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
          },
          "swap_cases": {
            "type": "object",
            "properties": {
              "requested": {
                "type": "integer"
              },
              "measured": {
                "type": "integer"
              }
            },
            "required": [
              "requested",
              "measured"
            ],
            "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

Code
{
  "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.

400

version is missing or unsupported.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown version"
}
502

Discovery failed and no stored run list exists.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unavailable"
}
503

Discovery is temporarily unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unavailable"
}
500

The stored run list query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/collectivex/runs/{runId}: Parameters
NameLocationTypeRequirementDescriptionExample
runIdpathintegerRequiredPositive GitHub Actions run ID.123456789
versionqueryenumRequiredCollectiveX contract version.1

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/runs/123456789?version=1'

Responses

CollectiveXDataset
200

The requested CollectiveX dataset.

Media type: application/json

Response shape

Code
{
  "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"
          }
        },
        "swap_requested_cases": {
          "type": "integer"
        },
        "swap_measured_cases": {
          "type": "integer"
        },
        "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
      }
    },
    "swap_blocks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "result_id": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "runtime": {
            "type": "object",
            "additionalProperties": true
          },
          "timing": {
            "type": "string"
          },
          "warmup": {
            "type": "integer"
          },
          "iterations": {
            "type": "integer"
          },
          "max_payload_bytes": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipped_points": {
            "type": "integer"
          },
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string",
                  "enum": [
                    "h2d",
                    "d2h",
                    "d2d"
                  ]
                },
                "layout": {
                  "type": "string",
                  "enum": [
                    "contiguous",
                    "random"
                  ]
                },
                "block_bytes": {
                  "type": "integer"
                },
                "num_blocks": {
                  "type": "integer"
                },
                "payload_bytes": {
                  "type": "integer"
                },
                "seed": {
                  "type": "integer"
                },
                "host_memory": {
                  "type": "string"
                },
                "api": {
                  "type": "string"
                },
                "sample_count": {
                  "type": "integer"
                },
                "latency_us": {
                  "type": "object",
                  "additionalProperties": true
                },
                "payload_gbps_at_latency_percentile": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "direction",
                "layout",
                "block_bytes",
                "num_blocks",
                "payload_bytes",
                "seed",
                "host_memory",
                "api",
                "sample_count",
                "latency_us",
                "payload_gbps_at_latency_percentile"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "result_id",
          "sku",
          "runtime",
          "timing",
          "warmup",
          "iterations",
          "max_payload_bytes",
          "skipped_points",
          "points"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "version",
    "run",
    "coverage",
    "series"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "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": [],
  "swap_blocks": []
}

Scroll to inspect the full example.

400

version or runId is invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unknown version or run id"
}
404

The run does not exist.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
502

The run cannot be fetched from the upstream source.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unavailable"
}
503

Upstream processing is temporarily unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Unavailable"
}
500

The run query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}

OperatorX

GEMM, attention, and routed MoE measurements with complete run coverage.

GETBeta/api/v1/operatorx/runsList OperatorX runs

Lists stored completed manual OperatorX sweeps from any branch, newest first. Lazily imports at most four runs per request from the last 44 days; discovery_complete=false requests another pass. Raw documents persist beyond artifact expiry. Summary caches from reader versions before 3 are rebuilt from stored documents when listing runs. Cached for 60 seconds when discovery completes; incomplete responses are not cached. Requires server-side GitHub access and DATABASE_OPERATORX_WRITE_URL. Development on loopback hosts can explicitly read downloaded bundles through OPERATORX_LOCAL_ARTIFACT_DIR; production never reads local files.

Parameters

No parameters.

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/operatorx/runs'

Responses

OperatorXRunList
200

Run summaries.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "run_id": {
            "type": "string"
          },
          "run_attempt": {
            "type": "number"
          },
          "source_sha": {
            "type": "string"
          },
          "source_branch": {
            "type": [
              "string",
              "null"
            ]
          },
          "generated_at": {
            "type": "string"
          },
          "conclusion": {
            "type": [
              "string",
              "null"
            ]
          },
          "requested": {
            "type": "number"
          },
          "measured": {
            "type": "number"
          },
          "unsupported": {
            "type": "number"
          },
          "failed": {
            "type": "number"
          },
          "missing": {
            "type": "number"
          },
          "clusters": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "testlists": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "run_id",
          "run_attempt",
          "source_sha",
          "source_branch",
          "generated_at",
          "conclusion",
          "requested",
          "measured",
          "unsupported",
          "failed",
          "missing",
          "clusters",
          "testlists"
        ],
        "additionalProperties": false
      }
    },
    "discovery_complete": {
      "type": "boolean"
    }
  },
  "required": [
    "runs",
    "discovery_complete"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "runs": [
    {
      "run_id": "123456789",
      "run_attempt": 1,
      "source_sha": "0123456789abcdef",
      "source_branch": "example",
      "generated_at": "2026-09-16T12:00:00Z",
      "conclusion": "success",
      "requested": 1,
      "measured": 1,
      "unsupported": 0,
      "failed": 0,
      "missing": 0,
      "clusters": [
        "h100_dgxc_8x"
      ],
      "testlists": [
        "gemm"
      ]
    }
  ],
  "discovery_complete": true
}

Scroll to inspect the full example.

404

Workflow unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX unavailable"
}
409

Run still in progress.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX unavailable"
}
502

GitHub source unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX unavailable"
}
503

Storage or configuration unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX unavailable"
}
GETBeta/api/v1/operatorx/runs/{runId}Read an OperatorX run

Reads GEMM, MHA/GQA, materialized MLA, and routed MoE cases matched against the requested manifest. Version 3 adds moe_gemm and a nullable moe object with local/global dimensions, EP/TP, top-k, routing distribution and precision. Inapplicable GEMM, attention and MoE fields are null. MoE TFLOPS = 6*T*H*(top_k*local_intermediate+n_shared_experts*intermediate/shared_tensor_parallel_size)/(latency_us*1e6); local_intermediate=intermediate/routed_tensor_parallel_size. EP is not divided out again. The Kimi K3 vLLM benchmark profile measures generic SiLU experts with precomputed local routing, excluding native K3 SITU, latent projections, shared experts and communication. Attention TFLOPS = 2*B*Hq*P*(Dqk+Dv)/(latency_us*1e6), where P=Sq*Sk for noncausal attention, or R*(2*Sk-R+1)/2 with R=min(Sq,Sk) for bottom-right causality. This counts useful QK and AV matmul work, including the diagonal, and excludes softmax, cache projection and RoPE. GQA uses query heads; MLA uses materialized Q/K/V dimensions. Existing saved attention bundles gain TFLOPS on read. Newest shard attempts replace older results, while untouched shards survive partial reruns. Source/run/attempt/cluster provenance is validated. GEMM TFLOPS = 2*M*N*K/(latency_us*1e6), per GPU; unsupported, failed, missing, or zero-sized cases have null TFLOPS. A completed failed run may still contain measurements. The server lazily stores raw artifacts and serves stored data during a GitHub outage. Cached for 60 seconds. The same explicit loopback development preview as the runs endpoint is available.

Parameters

GET /api/v1/operatorx/runs/{runId}: Parameters
NameLocationTypeRequirementDescriptionExample
runIdpathintegerRequiredPositive GitHub Actions run ID.123456789

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/operatorx/runs/123456789'

Responses

OperatorXDataset
200

Run coverage and measurements.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "version": {
      "type": "integer",
      "enum": [
        3
      ]
    },
    "run": {
      "type": "object",
      "properties": {
        "run_id": {
          "type": "string"
        },
        "run_attempt": {
          "type": "number"
        },
        "source_sha": {
          "type": "string"
        },
        "source_branch": {
          "type": [
            "string",
            "null"
          ]
        },
        "generated_at": {
          "type": "string"
        },
        "conclusion": {
          "type": [
            "string",
            "null"
          ]
        },
        "requested": {
          "type": "number"
        },
        "measured": {
          "type": "number"
        },
        "unsupported": {
          "type": "number"
        },
        "failed": {
          "type": "number"
        },
        "missing": {
          "type": "number"
        },
        "clusters": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "testlists": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "run_id",
        "run_attempt",
        "source_sha",
        "source_branch",
        "generated_at",
        "conclusion",
        "requested",
        "measured",
        "unsupported",
        "failed",
        "missing",
        "clusters",
        "testlists"
      ],
      "additionalProperties": false
    },
    "points": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "gemm",
              "attention_mha",
              "attention_mla",
              "moe_gemm"
            ]
          },
          "args": {
            "type": "object",
            "additionalProperties": true
          },
          "attention": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "batch_size": {
                "type": "number"
              },
              "seq_len_q": {
                "type": "number"
              },
              "seq_len_kv": {
                "type": "number"
              },
              "num_heads": {
                "type": "number"
              },
              "num_heads_kv": {
                "type": "number"
              },
              "head_dim_qk": {
                "type": "number"
              },
              "head_dim_v": {
                "type": "number"
              },
              "kv_lora_rank": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "dtype_q": {
                "type": "string"
              },
              "dtype_k": {
                "type": "string"
              },
              "dtype_v": {
                "type": "string"
              },
              "dtype_o": {
                "type": "string"
              },
              "causal": {
                "type": "boolean"
              }
            },
            "required": [
              "batch_size",
              "seq_len_q",
              "seq_len_kv",
              "num_heads",
              "num_heads_kv",
              "head_dim_qk",
              "head_dim_v",
              "kv_lora_rank",
              "dtype_q",
              "dtype_k",
              "dtype_v",
              "dtype_o",
              "causal"
            ],
            "additionalProperties": false
          },
          "moe": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "num_tokens": {
                "type": "number"
              },
              "hidden": {
                "type": "number"
              },
              "intermediate": {
                "type": "number"
              },
              "local_intermediate": {
                "type": "number"
              },
              "num_experts": {
                "type": "number"
              },
              "local_experts": {
                "type": "number"
              },
              "top_k": {
                "type": "number"
              },
              "expert_parallel_size": {
                "type": "number"
              },
              "routed_tensor_parallel_size": {
                "type": "number"
              },
              "shared_tensor_parallel_size": {
                "type": "number"
              },
              "n_shared_experts": {
                "type": "number"
              },
              "dtype_act": {
                "type": "string"
              },
              "dtype_weight": {
                "type": "string"
              },
              "expert_distribution": {
                "type": "string"
              }
            },
            "required": [
              "num_tokens",
              "hidden",
              "intermediate",
              "local_intermediate",
              "num_experts",
              "local_experts",
              "top_k",
              "expert_parallel_size",
              "routed_tensor_parallel_size",
              "shared_tensor_parallel_size",
              "n_shared_experts",
              "dtype_act",
              "dtype_weight",
              "expert_distribution"
            ],
            "additionalProperties": false
          },
          "id": {
            "type": "string"
          },
          "shard": {
            "type": "string"
          },
          "attempt": {
            "type": [
              "number",
              "null"
            ]
          },
          "cluster": {
            "type": "string"
          },
          "backend": {
            "type": "string"
          },
          "testlist": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "m": {
            "type": [
              "number",
              "null"
            ]
          },
          "n": {
            "type": [
              "number",
              "null"
            ]
          },
          "k": {
            "type": [
              "number",
              "null"
            ]
          },
          "dtype_a": {
            "type": [
              "string",
              "null"
            ]
          },
          "dtype_b": {
            "type": [
              "string",
              "null"
            ]
          },
          "dtype_out": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "unsupported",
              "error",
              "missing"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "latency_us": {
            "type": [
              "number",
              "null"
            ]
          },
          "tflops": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "type",
          "args",
          "attention",
          "moe",
          "id",
          "shard",
          "attempt",
          "cluster",
          "backend",
          "testlist",
          "name",
          "m",
          "n",
          "k",
          "dtype_a",
          "dtype_b",
          "dtype_out",
          "status",
          "message",
          "latency_us",
          "tflops"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "version",
    "run",
    "points"
  ],
  "additionalProperties": false
}

Scroll to inspect the full example.

Response example

Code
{
  "version": 3,
  "run": {
    "run_id": "123456789",
    "run_attempt": 1,
    "source_sha": "0123456789abcdef",
    "source_branch": "example",
    "generated_at": "2026-09-16T12:00:00Z",
    "conclusion": "success",
    "requested": 3,
    "measured": 3,
    "unsupported": 0,
    "failed": 0,
    "missing": 0,
    "clusters": [
      "h100_dgxc_8x"
    ],
    "testlists": [
      "gemm",
      "attention",
      "moe"
    ]
  },
  "points": [
    {
      "type": "gemm",
      "args": {
        "m": 1000,
        "n": 1000,
        "k": 1000,
        "dtype_a": "bf16",
        "dtype_b": "bf16",
        "dtype_out": "bf16"
      },
      "attention": null,
      "moe": null,
      "id": "shard:0:torch",
      "shard": "shard",
      "attempt": 1,
      "cluster": "h100_dgxc_8x",
      "backend": "torch",
      "testlist": "gemm",
      "name": null,
      "m": 1000,
      "n": 1000,
      "k": 1000,
      "dtype_a": "bf16",
      "dtype_b": "bf16",
      "dtype_out": "bf16",
      "status": "ok",
      "message": null,
      "latency_us": 1000,
      "tflops": 2
    },
    {
      "type": "attention_mha",
      "args": {
        "batch_size": 8,
        "seq_len_q": 1,
        "seq_len_kv": 4096,
        "num_heads": 32,
        "num_heads_kv": 8,
        "head_dim": 128,
        "dtype_q": "bf16",
        "dtype_k": "bf16",
        "dtype_v": "bf16",
        "dtype_o": "bf16",
        "causal": true
      },
      "attention": {
        "batch_size": 8,
        "seq_len_q": 1,
        "seq_len_kv": 4096,
        "num_heads": 32,
        "num_heads_kv": 8,
        "head_dim_qk": 128,
        "head_dim_v": 128,
        "kv_lora_rank": null,
        "dtype_q": "bf16",
        "dtype_k": "bf16",
        "dtype_v": "bf16",
        "dtype_o": "bf16",
        "causal": true
      },
      "moe": null,
      "id": "shard:1:torch",
      "shard": "shard",
      "attempt": 1,
      "cluster": "h100_dgxc_8x",
      "backend": "torch",
      "testlist": "attention",
      "name": null,
      "m": null,
      "n": null,
      "k": null,
      "dtype_a": null,
      "dtype_b": null,
      "dtype_out": null,
      "status": "ok",
      "message": null,
      "latency_us": 12.5,
      "tflops": 42.94967296
    },
    {
      "type": "moe_gemm",
      "args": {
        "num_tokens": 128,
        "hidden": 1024,
        "intermediate": 2048,
        "num_experts": 64,
        "top_k": 4,
        "expert_parallel_size": 8,
        "routed_tensor_parallel_size": 2,
        "shared_tensor_parallel_size": 1,
        "n_shared_experts": 0,
        "dtype_act": "bf16",
        "dtype_weight": "bf16",
        "expert_distribution": "uniform"
      },
      "moe": {
        "num_tokens": 128,
        "hidden": 1024,
        "intermediate": 2048,
        "local_intermediate": 1024,
        "num_experts": 64,
        "local_experts": 8,
        "top_k": 4,
        "expert_parallel_size": 8,
        "routed_tensor_parallel_size": 2,
        "shared_tensor_parallel_size": 1,
        "n_shared_experts": 0,
        "dtype_act": "bf16",
        "dtype_weight": "bf16",
        "expert_distribution": "uniform"
      },
      "attention": null,
      "id": "moe-shard:0:vllm",
      "shard": "moe-shard",
      "attempt": 1,
      "cluster": "h100_dgxc_8x",
      "backend": "vllm",
      "testlist": "moe",
      "name": "Controlled routed expert profile",
      "m": null,
      "n": null,
      "k": null,
      "dtype_a": null,
      "dtype_b": null,
      "dtype_out": null,
      "status": "ok",
      "message": null,
      "latency_us": 100,
      "tflops": 32.21225472
    }
  ]
}

Scroll to inspect the full example.

400

Invalid run ID.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX run unavailable"
}
404

Run or artifacts not found.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX run unavailable"
}
409

Run still in progress.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX run unavailable"
}
502

GitHub source unavailable.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX run unavailable"
}
503

Storage, configuration, or artifact validation failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "OperatorX run unavailable"
}

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

GET /api/v1/agentic-aggregates: Parameters
NameLocationTypeRequirementDescriptionExample
idsquerycomma-separated integersRequiredOne to 200 positive benchmark result IDs.421,422

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/agentic-aggregates?ids=421,422'

Responses

AgenticAggregateMap
200

Result IDs mapped to aggregate percentiles or null metric groups.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

ids is missing, malformed, or exceeds 200 unique IDs.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "ids query param is required"
}
500

The aggregate query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/benchmark-siblings: Parameters
NameLocationTypeRequirementDescriptionExample
idqueryintegerRequiredPositive benchmark result ID.421

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmark-siblings?id=421'

Responses

BenchmarkSiblings
200

SKU metadata and sibling navigation rows.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

id is missing or invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "id is required (benchmark_result_id)"
}
404

No benchmark result has this ID.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The sibling query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/derived-agentic-metrics: Parameters
NameLocationTypeRequirementDescriptionExample
idsquerycomma-separated integersRequiredOne to 200 positive benchmark result IDs.421,422

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/derived-agentic-metrics?ids=421,422'

Responses

DerivedAgenticMetricMap
200

Result IDs mapped to p75 and p90 normalized interactivity.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "421": {
    "id": 421,
    "p75_e2e_norm_intvty": 31.2,
    "p90_e2e_norm_intvty": 24.8
  }
}
400

ids is missing, malformed, or exceeds 200 unique IDs.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "ids query param is required"
}
500

The derived metric query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/request-timeline: Parameters
NameLocationTypeRequirementDescriptionExample
idqueryintegerRequiredPositive benchmark result ID.421

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/request-timeline?id=421'

Responses

RequestTimeline
200

Timeline metadata and request records. Nanosecond event fields are offsets from startNs.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

id is missing or invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "id is required (benchmark_result_id)"
}
404

No timeline exists for this result.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The timeline query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/server-log: Parameters
NameLocationTypeRequirementDescriptionExample
idqueryintegerRequiredPositive benchmark result ID.421
filequerystringOptionalArtifact-relative filename. Omit it to read the primary/legacy file.results/router.log
offsetqueryintegerOptionalZero-based character offset. Supplying offset or limit enables chunked mode.0
limitqueryintegerOptionalChunk size in characters, from 1 to 262144. Defaults to 65536.65536
downloadqueryintegerOptionalSet to 1 to stream the complete selected file as a text attachment. Cannot be combined with offset or limit.1

Request

Code
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 attachment
200

Benchmark result ID and server log text, plus range metadata in chunked mode.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "id": 421,
  "fileName": "results/router.log",
  "serverLog": "INFO router initialized\n",
  "offset": 0,
  "nextOffset": 24
}
400

id is missing or invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "id is required (benchmark_result_id)"
}
404

No server log exists for this result.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The server log query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/server-log-search: Parameters
NameLocationTypeRequirementDescriptionExample
idqueryintegerRequiredPositive benchmark result ID.421
qquerystringRequiredLiteral search text, from 1 to 256 characters.router ready
limitqueryintegerOptionalMaximum matches to return, from 1 to 100. Defaults to 50.50

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log-search?id=421&q=router%20ready&limit=50'

Responses

ServerLogSearchResult
200

Bounded matches with filenames, character offsets, and contextual text.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

The search parameters are invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Invalid query"
}
500

The complete-log search failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/server-log-files: Parameters
NameLocationTypeRequirementDescriptionExample
idqueryintegerRequiredPositive benchmark result ID.421

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log-files?id=421'

Responses

ServerLogFileNames
200

Artifact-relative .log/.out filenames.

Media type: application/json

Response shape

Code
{
  "type": "array",
  "items": {
    "type": "string"
  }
}

Response example

Code
[
  "results/server.log",
  "results/benchmark.log",
  "results/router.log"
]
400

id is missing or invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "id is required (benchmark_result_id)"
}
404

No log bundle exists for this result.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The log filename query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/log-availability: Parameters
NameLocationTypeRequirementDescriptionExample
idsquerycomma-separated integersRequiredOne to 500 positive benchmark result IDs.421,422

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/log-availability?ids=421,422'

Responses

LogAvailabilityMap
200

Available result IDs mapped to true. Missing keys have no server log.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": {
    "type": "boolean"
  }
}

Response example

Code
{
  "421": true
}
400

ids is missing, malformed, or exceeds 500 unique IDs.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Expected ids as comma-separated positive integers"
}
500

The server-log availability query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/trace-availability: Parameters
NameLocationTypeRequirementDescriptionExample
idsquerycomma-separated integersRequiredOne to 500 positive benchmark result IDs.421,422

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-availability?ids=421,422'

Responses

TraceAvailabilityMap
200

Available result IDs mapped to true. Missing keys have no trace.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "additionalProperties": {
    "type": "boolean"
  }
}

Response example

Code
{
  "421": true
}
400

ids is missing, malformed, or exceeds 500 unique IDs.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "ids query param is required"
}
500

The trace availability query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/trace-histograms: Parameters
NameLocationTypeRequirementDescriptionExample
idsquerycomma-separated integersRequiredOne to 200 positive benchmark result IDs.421,422

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-histograms?ids=421,422'

Responses

TraceHistogramMap
200

Result IDs mapped to raw ISL and OSL samples.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "421": {
    "id": 421,
    "isl": [
      18220,
      19340,
      15110
    ],
    "osl": [
      410,
      380,
      512
    ]
  }
}

Scroll to inspect the full example.

400

ids is missing, malformed, or exceeds 200 unique IDs.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "ids query param is required"
}
500

The histogram query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "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

GET /api/v1/trace-server-metrics: Parameters
NameLocationTypeRequirementDescriptionExample
idqueryintegerRequiredPositive benchmark result ID.421

Request

Code
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-server-metrics?id=421'

Responses

TraceServerMetrics
200

Point metadata, window bounds, and server metric series.

Media type: application/json

Response shape

Code
{
  "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

Code
{
  "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.

400

id is missing or invalid.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "id is required (benchmark_result_id)"
}
404

No server metrics exist for this result.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Not found"
}
500

The server metric query failed.

Media type: application/json

Response shape

Code
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": true
}

Response example

Code
{
  "error": "Internal server error"
}