Public data API
InferenceX API reference
Read benchmark, provenance, dataset, CollectiveX, and diagnostic data from the same sources that power InferenceX.
Machine-readable contract
OpenAPI 3.1 JSON
Inspect the canonical schema or pass it directly to your tooling.
Open OpenAPI JSON- Specification
- v1 · OpenAPI 3.1
- Authentication
- AuthenticationPublished read endpoints do not require authentication.
- Response format
- Response formatResponses are JSON unless an endpoint explicitly documents CSV. Dates use YYYY-MM-DD and timestamps use UTC ISO 8601.
- Base URL
- https://inferencex.semianalysis.com
01 / Quickstart
Quickstart
Move from contract discovery to a real response in a few steps.
- 01
Discover configurations
Start with availability to choose real model, hardware, framework, and sequence values.
Discover configurationscurl "https://inferencex.semianalysis.com/api/v1/availability" - 02
Fetch benchmark rows
Then request the latest raw benchmark rows for a supported display model.
Fetch benchmark rowscurl "https://inferencex.semianalysis.com/api/v1/benchmarks?model=DeepSeek-R1-0528"
Use the API with your agent
The inferencex-api skill helps your agent navigate the public API: benchmarks, provenance, datasets, CollectiveX, and diagnostics. Validated single-turn PowerX export is the first worked example.
@semianalysisai/inferencex-skills
Requires Node 24 or later with npm and Codex or Claude Code. Installation and API queries require internet access.
Queries use the public API without database credentials. The separate MCP server has its own setup; this skill does not require or reconfigure it.
Install in your project
Run the command for your agent from your project directory, then start an agent session in that project.
npm exec --yes --package @semianalysisai/inferencex-skills@1.0.0 -- inferencex-skills install --target codexnpm exec --yes --package @semianalysisai/inferencex-skills@1.0.0 -- inferencex-skills install --target claudeTo upgrade, replace the version in the installation command with a new published version and rerun it with --force. Existing skills are otherwise skipped. Save local edits first: --force overwrites matching files and retains obsolete files.
To check the copied skill version, replace install with status in the command above and keep the same --target. Installer version identifies the installer; Installed version identifies the copied skill. Older installations may report unknown.
Usage examplesUse inferencex-api to export latest available measured PowerX data for DeepSeek-V4-Pro:
- Select single-turn requests with exactly 8192 input and 1024 output tokens; require strictV2.
- 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
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-csvFor 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
CodeBenchmarkRowsExample
Code{ "id": 421, "hardware": "h200_sxm", "framework": "vllm", "model": "dsr1", "precision": "fp8", "spec_method": "none", "disagg": false, "is_multinode": false, "prefill_tp": 8, "prefill_ep": 1, "prefill_dp_attention": false, "prefill_num_workers": 1, "decode_tp": 8, "decode_ep": 1, "decode_dp_attention": false, "decode_num_workers": 1, "num_prefill_gpu": 0, "num_decode_gpu": 8, "benchmark_type": "single_turn", "isl": 1024, "osl": 1024, "conc": 32, "offload_mode": "off", "image": "vllm/vllm-openai:v0.10.2", "recipe_fingerprint": "7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d", "metrics": { "median_ttft": 0.42, "median_tpot": 0.018, "tput_per_gpu": 128.4, "power_valid": 1, "power_metric_schema_version": 2, "avg_power_w": 678.5, "joules_per_output_token": 5.3, "joules_per_total_token": 2.65, "avg_temp_c": 61.2 }, "date": "2026-08-08", "run_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789" }Scroll to inspect the full example.
- Measured power
Benchmark rows may carry measured power, energy, and GPU-telemetry metric keys (avg_power_w, avg_total_gpu_power_w, total_gpu_energy_j, p75_power_w, p75_total_gpu_power_w, p90_power_w, p90_total_gpu_power_w, joules_per_*, avg_temp_c, peak_temp_c, avg_util_pct, avg_mem_used_mb). power_valid is tri-state: 1 means the measurement window was validated; 0 means validation failed and measured values are withheld end-to-end (the producer strips them and ingest scrubs them — treat any that remain as unreliable); absent means no validation verdict is available in this response. Legacy rows can lack the field, but absence alone establishes neither the reason, the measurement age, nor invalidity. power_metric_schema_version == 2 defines every unprefixed joules_per_* field as whole-deployment energy — unversioned disaggregated joules are ambiguous because those fields previously carried role-local values. workers[] carries the per-worker power/telemetry breakdown on multinode and disaggregated runs. power_invalid_reasons lists producer reason codes. power_audit optionally carries measurement-window bounds, device and sample counts, producer identity and the retained audit reference on valid and invalid rows. Missing audit metadata does not establish the measurement age or validity. For measured-power requests, use powerValid=strictV2 to require power_valid == 1 and power_metric_schema_version == 2. It is the only supported power filter. Omit powerValid for general benchmark requests so results remain available even when they lack valid power measurements.
Shape
CodeBenchmarkRowsExample
Code{ "power_valid": 1, "power_metric_schema_version": 2, "avg_power_w": 678.5, "joules_per_output_token": 5.3 }- ID-keyed maps
Bulk diagnostic responses are JSON objects whose keys are decimal benchmark result IDs. A missing key means no value was available for that ID.
Shape
CodeRecord<string, value>Example
Code{ "421": true }- CollectiveX versions
CollectiveX reads require an explicit supported contract version. Supported versions: 1.
Shape
CodeCollectiveXDataset
04 / Reference
Endpoint reference
Expand an operation for parameters, statuses, and complete examples.
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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| format | query | enum | Optional | Response encoding. This discovery endpoint is JSON-only. | json |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/options'Responses
ViewOptionsEvery option domain the views endpoints accept, plus dashboard-parity defaults.
Media type: application/jsonResponse shape
{
"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
{
"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.
The format value is invalid — this endpoint is JSON-only.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unsupported format: csv",
"param": "format",
"allowed": [
"json"
]
}Option assembly failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| allPoints | query | string | Optional | Boolean, default false. Include points clipped by dashboard limits; optimal and best still apply independently. | |
| best | query | boolean | Optional | Return only the best series per GPU SKU. Default depends on model and sequence, matching the dashboard. | true |
| date | query | string | Optional | As-of date (YYYY-MM-DD): the latest run on or before this date per config. | 2026-08-01 |
| dates | query | string | Optional | Up 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. | |
| deployment | query | string | Optional | Comma-separated deployment modes; agg expands to single-node and multi-node. | disagg |
| end | query | string | Optional | Comparison range end, YYYY-MM-DD; must not precede start. Historical uses an inclusive data bound. | |
| format | query | enum | Optional | Response encoding. csv returns one flat row per point. | csv |
| frameworks | query | string | Optional | Comma-separated framework families. | vllm,sglang |
| gpus | query | string | Optional | Comma-separated hardware keys or bare GPU names to include (e.g. h200 or a full hwKey). | h200,mi355x |
| metric | query | string | Optional | Y-axis metric key or config key, e.g. tpPerGpu or y_tokensPerDollarN (see options → metrics). | y_tpPerGpu |
| model | query | string | Required | Frontend model display name (see /api/v1/views/options → models). | DeepSeek-V4-Pro |
| optimal | query | boolean | Optional | Return 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 |
| percentile | query | enum | Optional | Latency percentile for agentic-trace x fields. | p75 |
| power | query | string | Optional | Comma-separated certified and/or legacy power tiers. Omit for all tiers. | |
| precisions | query | string | Optional | Comma-separated precisions. When omitted, the densest available precision is auto-selected, matching the dashboard default. | fp8,bf16 |
| priceSource | query | string | Optional | Profit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used. | |
| runId | query | integer | Optional | GitHub Actions run id. Returns exactly that run snapshot instead of the latest data. | 12345678 |
| sequence | query | enum | Optional | Benchmark sequence. Aliases like 8k-1k and agentic are accepted. | agentic-traces |
| spec | query | string | Optional | Comma-separated speculative-decoding modes. | mtp |
| start | query | string | Optional | Comparison range start, YYYY-MM-DD. With end, adds the two endpoints, not every intermediate date. Historical uses an inclusive data bound. | |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| unofficialrun | query | string | Optional | Up 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. | |
| userCosts | query | string | Optional | JSON object from hardware keys to finite nonnegative USD/chip-hour values for user-priced metrics. | |
| userPowers | query | string | Optional | JSON object from hardware keys to finite nonnegative power assumptions in kW/chip. | |
| vendors | query | string | Optional | Comma-separated GPU vendors. | NVIDIA |
| xmetric | query | enum | Optional | TTFT percentile used when the x axis shows time to first token. | p99_ttft |
| xmode | query | enum | Optional | X-axis mode. e2e-normalized-interactivity uses persisted derived AgentX metrics; points without eligible derived values are omitted. | e2e |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/inference?model=DeepSeek-V4-Pro&metric=y_tokensPerDollarN&sequence=8k-1k'Responses
InferenceViewChart-ready series grouped by hardware config, with frontier and best-per-SKU flags per point.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
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.5A parameter is invalid. The body names the parameter and, for enums, lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown xmode: bogus",
"param": "xmode",
"allowed": [
"interactivity",
"ttft",
"e2e",
"e2e-normalized-interactivity"
]
}The benchmark query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| deployment | query | string | Optional | Comma-separated deployment modes; agg expands to single-node and multi-node. | single-node |
| end | query | string | Optional | Latest snapshot date to include (YYYY-MM-DD). | 2026-08-01 |
| extendToDate | query | string | Optional | Synthetic history-line end date, YYYY-MM-DD; defaults to current UTC date, matching the dashboard. | |
| format | query | enum | Optional | Response encoding. csv returns one flat row per line point. | csv |
| frameworks | query | string | Optional | Comma-separated framework families. | vllm,trt |
| gpus | query | string | Optional | Comma-separated hardware keys or bare GPU names to include. | h200,mi355x |
| metric | query | string | Optional | Trend metric key or config key, e.g. tpPerGpu or y_tokensPerDollarN (see options → metrics). | y_tpPerGpu |
| model | query | string | Required | Frontend model display name (see /api/v1/views/options → models). | DeepSeek-V4-Pro |
| precisions | query | string | Optional | Comma-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 |
| priceSource | query | string | Optional | Profit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used. | |
| sequence | query | enum | Optional | Benchmark sequence. Aliases like 8k-1k and agentic are accepted. | agentic-traces |
| start | query | string | Optional | Earliest snapshot date to include (YYYY-MM-DD). | 2026-01-01 |
| target | query | number | Optional | Target interactivity (tok/s/user) the metric is interpolated at for every snapshot date. | 50 |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| vendors | query | string | Optional | Comma-separated GPU vendors. | AMD |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/historical?model=DeepSeek-V4-Pro&metric=y_tpPerGpu&target=35'Responses
HistoricalViewDate-sorted trend lines per hardware config, interpolated at the target interactivity.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
key,hwKey,precision,label,vendor,date,value,synthetic
h200_trt,h200_trt,,H200 (TRTLLM),NVIDIA,2026-07-01,310.4,falseA parameter is invalid. The body names the parameter and, for enums, lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "target must be >= 1",
"param": "target"
}The benchmark history query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| costProvider | query | enum | Optional | Cost basis: costh (owning) or costr (renting), with tcoBasis selecting internal or external assumptions. | costh |
| costType | query | enum | Optional | Token basis for cost and throughput fields. | total |
| costcap | query | number | Optional | Cost cap in $/M tokens. When set, the response carries a costCap section with each config’s maximum interactivity under the cap. | 2.5 |
| date | query | date | Optional | Use data on or before YYYY-MM-DD. Omit for latest. | 2026-08-08 |
| format | query | enum | Optional | Response encoding. | json |
| gpus | query | CSV list | Optional | Comma-separated hardware keys; matches a full hwKey (b300_sglang) or a base chip (b300). | b300,mi355x |
| hideSkuAboveConfigLimit | query | string | Optional | Boolean, default true. Omit hardware whose interpolation clamps above its measured configuration limit. | |
| mode | query | enum | Optional | Interpolation direction. | interactivity-to-throughput |
| model | query | string | Required | Display model name or compare slug. | DeepSeek-V4-Pro |
| mw | query | number | Optional | Facility power budget in MW. When set, each result carries a fleet block (chips, total tok/s, concurrent users, cost). | 100 |
| percentile | query | enum | Optional | Interactivity percentile for agentic traces; fixed sequences use the median. | p90 |
| precisions | query | CSV list | Optional | Comma-separated precisions. Omit to auto-select the densest official precision and include precisions present in unofficial-run overlays. | fp4,fp8 |
| runId | query | string | Optional | Numeric GitHub workflow run id to pin the snapshot to. | 123456789 |
| sequence | query | enum | Optional | Workload sequence. Accepts 1k/1k, 1k/8k, 8k/1k (or hyphenated forms) and agentic-traces (alias agentic). | 1k/1k |
| target | query | number | Optional | Target value on the input axis: interactivity in tok/s/user, or throughput in tok/s/GPU when mode is throughput-to-interactivity. | 35 |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| unofficialrun | query | string | Optional | Up 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
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/calculator?model=DeepSeek-V4-Pro&sequence=1k/1k'Responses
CalculatorViewSteffen–Hermite interpolated operating point per hardware config at the requested target.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string",
"description": "One flat row per hardware result."
}Response example
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,falseInvalid parameter. The body names the parameter and, for enums, the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"param": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Scroll to inspect the full example.
Response example
{
"error": "Unknown mode: sideways",
"param": "mode",
"allowed": [
"interactivity-to-throughput",
"throughput-to-interactivity"
]
}Calculator view failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"param": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Scroll to inspect the full example.
Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| cache | query | number | Optional | Cached-input percentage billed at the cache-read discount. Applies to agentic traces only. | 10 |
| costProvider | query | string | Optional | costh = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider. | |
| costType | query | string | Optional | total (default), input or output tokens. Disaggregated input/output rates retain their prefill/decode denominators. | |
| format | query | enum | Optional | Response encoding. | json |
| gpus | query | CSV list | Optional | Comma-separated hardware keys; matches a full hwKey (b300_sglang) or a base chip (b300). | b300,mi355x |
| horizon | query | number | Optional | Projection horizon in months. Defaults to a short tail past the last measured sweep. | 12 |
| metric | query | enum | Optional | Which metric each point’s value field carries. | margin |
| model | query | string | Required | Display model name or compare slug. | DeepSeek-V4-Pro |
| mtbi | query | number | Optional | Mean time between interrupts, in days. | 24 |
| mw | query | number | Required | Facility power budget in MW. Must be greater than 0. | 100 |
| oprice | query | number | Optional | Output token price in $/M tokens. Defaults to 4x the input price. | 1.68 |
| percentile | query | enum | Optional | Interactivity percentile for agentic traces; fixed sequences use the median. | p90 |
| precisions | query | CSV list | Optional | Comma-separated precisions. Omit to auto-select the densest precision in the data. | fp4 |
| price | query | number | Optional | Input token price in $/M tokens. Defaults to the cheapest fleet’s break-even; giving only oprice derives it through the 4x ratio. | 0.42 |
| ramp | query | number | Optional | Months for each config rollout to reach full rate. Defaults to the dashboard lifecycle panel (0.5). | 0.5 |
| recovery | query | number | Optional | Recovery time per interrupt, in hours. | 12 |
| sequence | query | enum | Optional | Workload sequence. Accepts 1k/1k, 1k/8k, 8k/1k (or hyphenated forms) and agentic-traces (alias agentic). | 8k/1k |
| target | query | string | Optional | Positive operating-point target, tok/s/user in interactivity-to-throughput mode. Profit defaults are model-specific. | |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/fleet?model=DeepSeek-V4-Pro&mw=100'Responses
FleetViewOne 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/jsonResponse shape
{
"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
{
"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
{
"type": "string",
"description": "One row per lifecycle point."
}Response example
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,trueInvalid or missing parameter. The body names the parameter and, for enums, the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"param": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Scroll to inspect the full example.
Response example
{
"error": "mw is required (facility power budget in MW, > 0)",
"param": "mw"
}Fleet view failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"param": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Scroll to inspect the full example.
Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| unofficialrun | query | string | Optional | Up 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. | |
| benchmark | query | string | Optional | Evaluation task key (e.g. gsm8k). Default: the first available benchmark for the model (alphabetical). Unknown values return 400 with the available list. | gsm8k |
| date | query | date | Optional | Requested eval run date (YYYY-MM-DD), resolved to the nearest available date like the dashboard. Default: latest available date. | 2026-08-20 |
| format | query | enum | Optional | Response encoding. csv returns one flat row per config with newline-free labels. | json |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| model | query | string | Required | Display model name (case-insensitive) or compare-page slug. | DeepSeek-V4-Pro |
| precisions | query | CSV list | Optional | Comma-separated precision filter (fp4, fp4fp8, fp8, bf16, int4). Default: every precision present in the model’s eval rows. | fp8 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/evaluation?model=DeepSeek-V4-Pro&benchmark=gsm8k&format=json'Responses
EvaluationViewAggregated evaluation chart rows for the resolved model, benchmark, and date.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
hwKey,label,score,stderr,n,precision,framework,date
h200_sglang,H200 (SGLang) C128 T8 E1,0.85,0.01,2,fp8,sglang,2026-08-20The model, benchmark, date, precisions, or format value is invalid. The body lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown benchmark for DeepSeek-V4-Pro: mmlu",
"param": "benchmark",
"allowed": [
"aime25",
"gsm8k"
]
}The evaluation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| asOf | query | string | Optional | Reference date YYYY-MM-DD for reproducible rolling reliability or image-age calculations. | |
| format | query | enum | Optional | Response encoding. csv returns one flat row per hardware. | json |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| range | query | enum | Optional | Rolling date-range preset for the aggregation, matching the /reliability dashboard presets. | last-7-days |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/reliability?range=last-7-days&format=json'Responses
ReliabilityViewAggregated success rates per hardware for the selected range.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
range,key,label,successRate,successes,total
last-7-days,h200,H200,93.33,28,30The range or format value is invalid. The body lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown range: last-year",
"param": "range",
"allowed": [
"last-3-days",
"last-7-days",
"last-month",
"last-3-months",
"all-time"
]
}The reliability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| format | query | enum | Optional | Response encoding. csv returns one flat row per chip. | json |
| metric | query | enum | Optional | Chart metric key. When set, the response adds a ranking array of chips ordered by that metric (descending; chips without a value omitted). | memoryBandwidth |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/gpu-specs?metric=memoryBandwidth&format=json'Responses
GpuSpecsViewStatic chip specifications plus chart metric metadata; ranking is present only when metric is set.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
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,2250The metric or format value is invalid. The body lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown metric: tdp",
"param": "metric",
"allowed": [
"memory",
"memoryBandwidth",
"fp4",
"fp8",
"bf16",
"scaleUpBandwidth",
"scaleUpWorldSize",
"domainMemory",
"domainMemoryBandwidth",
"scaleOutBandwidth"
]
}Scroll to inspect the full example.
Assembling the GPU specs payload failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| compare | query | string | Optional | Comparison 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 |
| engine | query | string | Optional | Serving-engine scope: community frameworks only, or all engines including vendor stacks. | community |
| format | query | string | Optional | Response format. CSV returns one flat row per model-scenario-hardware cell. | json |
| hwrows | query | string | Optional | Hardware-cell scope: only cells with a priced measurement, or all hardware columns. | all |
| models | query | string | Optional | Model scope: the curated default set or every model with data. | default |
| ref | query | string | Optional | Reference GPU for compare=hardware deltas. | b200 |
| rows | query | string | Optional | Row scope for historical windows: only rows that changed inside the window, or all rows. | all |
| tier | query | integer | Optional | Interactivity tier in output tokens per second per user. Cells are read at this tier. | 50 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/overview?tier=50&engine=community&compare=hardware&ref=b200'Responses
OverviewViewThe overview cost matrix at the requested tier: one row per model-scenario, one cell per hardware column.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
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,,,,A parameter value is invalid. The body names the parameter and lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown tier: 42",
"param": "tier",
"allowed": [
"30",
"50",
"75",
"100",
"150",
"200"
]
}The overview assembly failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| format | query | string | Optional | Response format. CSV returns one flat row per ranked hardware. | json |
| kind | query | string | Optional | Ranking kind: fastest-gpu orders by tok/s per GPU (descending), cheapest-gpu by $/M total tokens (ascending). | cheapest-gpu |
| model | query | string | Optional | Display 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 |
| scenario | query | string | Optional | Workload 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
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/rankings?kind=cheapest-gpu&model=DeepSeek-V4-Pro&scenario=agentx'Responses
RankingsViewRanked hardware per model-scenario at the primary tier (50 tok/s/user), community engine scope.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
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,trueThe kind, model, scenario, or format value is invalid. The body names the parameter and lists the allowed values.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown kind: slowest-gpu",
"param": "kind",
"allowed": [
"fastest-gpu",
"cheapest-gpu"
]
}The rankings query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| format | query | string | Optional | Response format. CSV returns one flat row per tier. | json |
| gpus | query | CSV GPU list | Optional | Exactly 2 distinct GPU base keys, comma-separated (e.g. b200,mi355x). Unknown keys return 400 with the allowed list. | b200,mi355x |
| model | query | string | Optional | Display model name (case-insensitive) or compare-page model slug. Use together with gpus as an alternative to slug. | DeepSeek-V4-Pro |
| scenario | query | string | Optional | Workload 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 |
| slug | query | string | Optional | Compare-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 |
| tiers | query | CSV number list | Optional | Custom 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 |
| variant | query | string | Optional | View 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
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/compare?slug=deepseek-v4-b200-vs-mi355x'Responses
CompareViewHead-to-head interpolated table for the GPU pair at the effective scenario and precision, plus per-side summaries.
Media type: application/jsonResponse shape
{
"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
{
"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
{
"type": "string"
}Response example
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,falseThe 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/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown compare slug: not-a-pair. Expected <model>-<gpuA>-vs-<gpuB>, e.g. deepseek-v4-b200-vs-mi355x.",
"param": "slug"
}The comparison assembly failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| caps | query | string | Optional | One to eight positive finite first-token caps in seconds, sorted and deduplicated; default 2,5,10,15,20. Any invalid entry returns 400. | |
| costProvider | query | string | Optional | costh = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider. | |
| costType | query | string | Optional | total (default), input or output tokens. Disaggregated input/output rates retain their prefill/decode denominators. | |
| date | query | string | Optional | Snapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead. | |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| minInteractivity | query | string | Optional | Minimum tok/s/user, default 150 for AgentX or 35 for fixed-length workloads. | |
| model | query | string | Required | Model 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 |
| percentile | query | string | Optional | AgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99. | |
| precisions | query | string | Optional | Comma-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. | |
| runId | query | string | Optional | Positive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics. | 123 |
| sequence | query | string | Optional | Workload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces. | |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| unofficialrun | query | string | Optional | Up 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
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/first-token?model=DeepSeek-V4-Pro'Responses
FirstTokenViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "first-token",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| config | query | string | Optional | Exact cache-reuse configuration key from configurations. Omit for the shared dashboard default. | |
| date | query | string | Optional | Snapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead. | |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| model | query | string | Required | Model 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 |
| percentile | query | string | Optional | AgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99. | |
| precisions | query | string | Optional | Comma-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. | |
| runId | query | string | Optional | Positive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics. | 123 |
| sequence | query | string | Optional | Workload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces. | |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| unofficialrun | query | string | Optional | Up 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
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/cache-reuse?model=DeepSeek-V4-Pro'Responses
CacheReuseViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "cache-reuse",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| cachedInputPrice | query | string | Optional | Custom cached input USD/million tokens, default 0.1. | |
| costProvider | query | string | Optional | costh = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider. | |
| customCosts | query | string | Optional | JSON object from base hardware keys to finite nonnegative USD/chip-hour values, at most 100 entries. | |
| date | query | string | Optional | Snapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead. | |
| dates | query | string | Optional | Up 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. | |
| end | query | string | Optional | Comparison range end, YYYY-MM-DD; must not precede start. Historical uses an inclusive data bound. | |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| inputPrice | query | string | Optional | Custom uncached input USD/million tokens, default 1. | |
| labCut | query | string | Optional | Model license/revenue-share percentage, 0 through 100; model-specific default. | |
| model | query | string | Required | Model 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 |
| outputPrice | query | string | Optional | Custom output USD/million tokens, default 1. | |
| percentile | query | string | Optional | AgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99. | |
| powerBasis | query | string | Optional | provisioned (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. | |
| precisions | query | string | Optional | Comma-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. | |
| priceSource | query | string | Optional | Profit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used. | |
| runId | query | string | Optional | Positive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics. | 123 |
| sequence | query | string | Optional | Workload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces. | |
| start | query | string | Optional | Comparison range start, YYYY-MM-DD. With end, adds the two endpoints, not every intermediate date. Historical uses an inclusive data bound. | |
| target | query | string | Optional | Positive operating-point target, tok/s/user in interactivity-to-throughput mode. Profit defaults are model-specific. | |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| unofficialrun | query | string | Optional | Up 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. | |
| utilization | query | string | Optional | Utilization percent from 0 through 100, default 60. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/profit-estimator?model=DeepSeek-V4-Pro'Responses
ProfitEstimatorViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "profit-estimator",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| cachedInputPrice | query | string | Optional | Custom cached input USD/million tokens, default 0.1. | |
| costProvider | query | string | Optional | costh = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider. | |
| customCosts | query | string | Optional | JSON object from base hardware keys to finite nonnegative USD/chip-hour values, at most 100 entries. | |
| date | query | string | Optional | Snapshot cutoff date, YYYY-MM-DD. runId selects an exact logical run snapshot instead. | |
| dates | query | string | Optional | Up 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. | |
| end | query | string | Optional | Comparison range end, YYYY-MM-DD; must not precede start. Historical uses an inclusive data bound. | |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| inputPrice | query | string | Optional | Custom uncached input USD/million tokens, default 1. | |
| labCut | query | string | Optional | Model license/revenue-share percentage, 0 through 100; model-specific default. | |
| model | query | string | Required | Model 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 |
| outputPrice | query | string | Optional | Custom output USD/million tokens, default 1. | |
| percentile | query | string | Optional | AgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99. | |
| powerBasis | query | string | Optional | provisioned (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. | |
| precisions | query | string | Optional | Comma-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. | |
| priceSource | query | string | Optional | Profit: list, openrouter or custom. Inference/history: normalized or openrouter. Returned pricing records the prices actually used. | |
| runId | query | string | Optional | Positive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics. | 123 |
| sequence | query | string | Optional | Workload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces. | |
| start | query | string | Optional | Comparison range start, YYYY-MM-DD. With end, adds the two endpoints, not every intermediate date. Historical uses an inclusive data bound. | |
| target | query | string | Optional | Positive operating-point target, tok/s/user in interactivity-to-throughput mode. Profit defaults are model-specific. | |
| tcoBasis | query | string | Optional | internal (default) or external. Applies the same configured owning/rental cost basis as the UI. | |
| unofficialrun | query | string | Optional | Up 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. | |
| utilization | query | string | Optional | Utilization percent from 0 through 100, default 60. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/profit-estimator-per-gigawatt?model=DeepSeek-V4-Pro'Responses
ProfitEstimatorPerGigawattViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "profit-estimator-per-gigawatt",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| backend | query | string | Optional | Backend filter; omit for all. | |
| cluster | query | string | Optional | OperatorX cluster filter; omit for all. | |
| metric | query | string | Optional | View-specific metric key. OperatorX: tflops or latency; GPU metrics: power, temperature, clocks, utilization or available AMD metrics. | |
| operator | query | string | Optional | gemm, attention_mha, attention_mla or moe_gemm; default first available operator. | |
| page | query | string | Optional | OperatorX zero-based table page; video one-based CI discovery page. | |
| precision | query | string | Optional | Precision key; CollectiveX defaults to fp8 if available. The image view trims whitespace, ignores case and defaults to all. | |
| runId | query | string | Optional | Positive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics. | 123 |
| shape | query | string | Optional | Exact OperatorX shape key from response options. | |
| status | query | string | Optional | OperatorX status: ok (default), unsupported, error, missing or all. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/operatorx'Responses
OperatorxViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "operatorx",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| activeSeries | query | string | Optional | Comma-separated run-namespaced EP series IDs. Omit for all. | |
| kvSeries | query | string | Optional | Comma-separated run:case IDs for KV series. Omit for all. | |
| swapSeries | query | string | Optional | Comma-separated swap series IDs. Omit for all. | |
| backend | query | string | Optional | Backend filter; omit for all. | |
| epSize | query | string | Optional | EP size, default 8 when available, otherwise the first available size. | |
| kvOp | query | string | Optional | KV operation: pull (default) or push. | |
| kvX | query | string | Optional | KV projection: isl (default), batch, frontier or overlap. | |
| kvY | query | string | Optional | KV metric: bandwidth (default) or latency. | |
| modes | query | string | Optional | Comma-separated EP mode keys, default every available mode. | |
| operation | query | string | Optional | EP operation: roundtrip (default), dispatch or combine. | |
| overlapIsl | query | string | Optional | Overlap input length: max (default) or a positive integer. | |
| pageTokens | query | string | Optional | Positive KV page size in tokens; default first available size. | |
| percentile | query | string | Optional | AgentX latency percentile p75 or p90; CollectiveX supports p50, p95, p99. | |
| phase | query | string | Optional | CollectiveX phase, default decode; video phase: measurement, startup or warmup. | |
| precision | query | string | Optional | Precision key; CollectiveX defaults to fp8 if available. The image view trims whitespace, ignores case and defaults to all. | |
| runs | query | string | Optional | Ordered comma-separated run IDs, at most eight. Omit for newest measured run; empty value selects none. | |
| sku | query | string | Optional | CollectiveX chip SKU filter; default all. | |
| suite | query | string | Optional | Run-list filter: all, ep, kv or swap. | |
| swapDirection | query | string | Optional | h2d (default), d2h or d2d. | |
| swapLayout | query | string | Optional | contiguous (default) or random. | |
| swapMetric | query | string | Optional | bandwidth (default) or latency. | |
| swapPercentile | query | string | Optional | p50 (default), p95 or p99. | |
| version | query | string | Optional | CollectiveX dataset schema version; default 1. | |
| yAxis | query | string | Optional | CollectiveX: latency, tokens-per-second, activation-rate or payload-rate. Video: dollar, clipsGpu, secondsGpu, clipsAllocatedGpu, secondsAllocatedGpu or energy. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/collectivex'Responses
CollectivexViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "collectivex",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| direction | query | string | Optional | asc or desc. Defaults: submissions desc, GPU statistics asc. | |
| limit | query | string | Optional | Submission table row limit, default 100, maximum 10000. | |
| lines | query | string | Optional | Submission chart lines: comma-separated nvidia, amd, total; amd includes non-NVIDIA rows as in the UI. | |
| mode | query | string | Optional | Submissions: weekly (default) or cumulative. Calculator modes use interactivity_to_throughput or throughput_to_interactivity. | |
| offset | query | string | Optional | Submission table offset, default 0. | |
| onChangeOnly | query | string | Optional | Boolean, default true. For weekly charts only, apply the dashboard on-change reporting cutoff. | |
| search | query | string | Optional | Case-insensitive submission search over chip, model, framework, precision, speculation and vendor. | |
| sort | query | string | Optional | Table sort column; submissions defaults to date, GPU statistics to gpuIndex. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/submissions'Responses
SubmissionsViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "submissions",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| asOf | query | string | Optional | Reference date YYYY-MM-DD for reproducible rolling reliability or image-age calculations. | |
| frameworks | query | string | Optional | Comma-separated framework-family keys; omitted selection includes all. | |
| hardware | query | string | Optional | Image-view hardware key; whitespace is trimmed and case ignored. Default all. | |
| model | query | string | Optional | Model 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 |
| nodeType | query | string | Optional | Image deployment: single (default), disagg or all. | |
| precision | query | string | Optional | Precision key; CollectiveX defaults to fp8 if available. The image view trims whitespace, ignores case and defaults to all. | |
| sequence | query | string | Optional | Workload: 1k/1k, 1k/8k, 8k/1k or agentic-traces. AgentX extension views default to agentic-traces. | |
| spec | query | string | Optional | Speculative decoding filter; the image view trims whitespace and ignores case for a single value, default all. Inference uses a comma-separated list. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/current-inferencex-image'Responses
CurrentInferencexImageViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "current-inferencex-image",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| artifact | query | string | Optional | GPU metric artifact name, or video numeric artifact ID paired with run. | |
| chartView | query | string | Optional | chart (default) or correlation. Both return unsampled source rows. | |
| corrXMetric | query | string | Optional | Correlation x-axis GPU metric, default power. | |
| corrYMetric | query | string | Optional | Correlation y-axis GPU metric, default temperature. | |
| direction | query | string | Optional | asc or desc. Defaults: submissions desc, GPU statistics asc. | |
| downsample | query | string | Optional | Boolean, default true; declares the UI 2000-interactive-point rendering cap. Returned raw rows and statistics are never sampled. | |
| gpus | query | string | Optional | Comma-separated hardware/config keys; for gpu-metrics use numeric GPU indices. Omit for all. | |
| metric | query | string | Optional | View-specific metric key. OperatorX: tflops or latency; GPU metrics: power, temperature, clocks, utilization or available AMD metrics. | |
| runId | query | string | Required | Positive safe integer workflow run ID. Omit to select the default run; required for live GPU metrics. | 123 |
| sort | query | string | Optional | Table sort column; submissions defaults to date, GPU statistics to gpuIndex. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/gpu-metrics?runId=123'Responses
GpuMetricsViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "gpu-metrics",
"apiVersion": "v1",
"params": {}
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| artifact | query | string | Optional | GPU metric artifact name, or video numeric artifact ID paired with run. | |
| cell | query | string | Optional | Serving cell ID. Unknown IDs fall back to the first cell, matching the UI; evidence.cell records the resolved choice. | |
| compare | query | string | Optional | Video: up to eight comma-separated run:artifact pairs of already published evidence. | |
| costs | query | string | Optional | JSON object mapping video point IDs to {hourly,source,date} strings; hourly is nonnegative USD/deployment-hour. | |
| gpuBasis | query | string | Optional | Video denominator: participating (default) or allocated GPUs. | |
| page | query | string | Optional | OperatorX zero-based table page; video one-based CI discovery page. | |
| phase | query | string | Optional | CollectiveX phase, default decode; video phase: measurement, startup or warmup. | |
| run | query | string | Optional | Public video CI run ID. Omit to discover runs. | |
| selected | query | string | Optional | Selected video tradeoff point ID. | |
| slot | query | string | Optional | Media/fidelity slot ID. Unknown IDs fall back to the UI default; evidence.slot records the resolved choice. | |
| source | query | string | Optional | Published video source ID; defaults to first source. | |
| view | query | string | Optional | Video results (default) or tradeoff. | |
| workload | query | string | Optional | Exact workload-group key from video workloads. Comparisons never pool unequal workloads. | |
| xAxis | query | string | Optional | Video latency: p90 or median. Serving defaults to median only when p90 is unavailable. | |
| yAxis | query | string | Optional | CollectiveX: latency, tokens-per-second, activation-rate or payload-rate. Video: dollar, clipsGpu, secondsGpu, clipsAllocatedGpu, secondsAllocatedGpu or energy. |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/views/video'Responses
VideoViewResolved selection and public view data.
Media type: application/jsonResponse shape
{
"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
{
"view": "video",
"apiVersion": "v1",
"params": {}
}No published video artifact is available. The response has no body.
Response shape
{
"type": "null"
}Response example
nullSource status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Source status is preserved; internal details are removed and failures are not cached.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Source data unavailable"
}Invalid or unsupported query.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"error": "Invalid parameter",
"param": "model"
}Data retrieval or projection failed.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": true
}Response example
{
"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
curl -sS 'https://inferencex.semianalysis.com/api/v1/availability'Responses
AvailabilityRowsAvailable configuration rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"precision": {
"type": "string"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"benchmark_type": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
}
},
"required": [
"model",
"isl",
"osl",
"precision",
"hardware",
"framework",
"spec_method",
"disagg",
"benchmark_type",
"date"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"model": "dsr1",
"isl": 1024,
"osl": 1024,
"precision": "fp8",
"hardware": "h200_sxm",
"framework": "vllm",
"spec_method": "none",
"disagg": false,
"benchmark_type": "single_turn",
"date": "2026-08-08"
}
]Scroll to inspect the full example.
The availability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/benchmarksRead benchmark results
Returns raw benchmark rows for a display model. Use date for an as-of snapshot, exact=true for that exact date, runId to constrain the latest lookup, or exactRun=true with a numeric runId for that run’s logical snapshot. An AgentX curve is scoped by model, hardware, framework, precision, and workload: a normal run replaces all prior topology, speculative-decoding, and offload variants in that curve. Explicit append-only runs may include the preceding same-image snapshot; producer IDs and URLs are preserved. Historical snapshots remain accessible. view=calculator returns a trimmed page-owned projection (measured power metrics and workers are removed; its allowlist may change). powerValid=strictV2 selects validated schema-v2 power measurements and cannot be combined with view=calculator. Omit powerValid to keep general benchmark results regardless of power validity.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| model | query | string | Required | Display model name. | DeepSeek-R1-0528 |
| date | query | date | Optional | Latest data on or before YYYY-MM-DD, unless exact is true. | 2026-08-08 |
| exact | query | boolean | Optional | Set true to require the supplied date exactly. | false |
| runId | query | integer | Optional | Numeric GitHub Actions run ID. Non-numeric values are ignored. | 123456789 |
| exactRun | query | boolean | Optional | With a numeric runId, return that run’s logical snapshot, including same-image predecessors for append-only runs. | false |
| view | query | enum | Optional | calculator trims each row to the page-owned metric allowlist the throughput calculator consumes and removes workers; measured power metrics are excluded from this view. Requires sequence. Omit for every stored metric, including measured power. | calculator |
| sequence | query | enum | Optional | Required when view=calculator and ignored otherwise. Unknown values yield 400 Unknown calculator sequence. | 1k/1k |
| powerValid | query | enum | Optional | Only strictV2 is accepted. It keeps rows whose metrics.power_valid is the number 1 and metrics.power_metric_schema_version is the number 2 (whole-deployment energy semantics). Omit this parameter to apply no power filter, preserving throughput and latency results even when power is missing or invalid. Other values, including an empty value, yield 400 Unknown powerValid filter. Cannot be combined with view=calculator. | strictV2 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmarks?model=DeepSeek-R1-0528'Responses
BenchmarkRowsBenchmark rows with scalar metrics in the metrics object.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"model": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"prefill_dp_attention": {
"type": "boolean"
},
"prefill_num_workers": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"decode_dp_attention": {
"type": "boolean"
},
"decode_num_workers": {
"type": "integer"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"benchmark_type": {
"type": "string"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"conc": {
"type": "integer"
},
"offload_mode": {
"type": "string"
},
"image": {
"type": [
"string",
"null"
]
},
"recipe_fingerprint": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"description": "Scalar metric map. Time metrics, including p99_itl and p99_tpot, are in seconds. p99_itl measures inter-token latency; p99_tpot measures per-request time per output token. Use the actual p99_itl field for an inter-token latency requirement, not the reciprocal of p99_intvty. Throughput metrics use tokens per second per GPU unless their name states otherwise; output_tput_per_gpu counts output tokens. Keys evolve independently; measured power / energy / GPU-telemetry keys are typed below.",
"properties": {
"power_valid": {
"type": "number",
"description": "Publication verdict: 1 = validated measurement window; 0 = failed validation — measured power/energy values are withheld from this row end-to-end, so treat any that remain as unreliable; absent = no validation verdict is available in this response. Absence alone establishes neither the reason, the measurement age, nor invalidity."
},
"power_metric_schema_version": {
"type": "number",
"description": "Power schema version. Version 2 defines every unprefixed joules_per_* field as whole-deployment energy, including on disaggregated runs."
},
"avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts during the measured load window."
},
"avg_total_gpu_power_w": {
"type": "number",
"description": "Mean total GPU power draw in watts across the measured deployment."
},
"total_gpu_energy_j": {
"type": "number",
"description": "Total GPU energy integrated over the measured deployment load window, in joules."
},
"p75_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p75_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"p90_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p90_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"joules_per_successful_query": {
"type": "number",
"description": "Whole-deployment energy in joules divided by successful requests."
},
"joules_per_output_token": {
"type": "number",
"description": "Energy per generated output token in joules; cluster-wide on schema-version-2 rows, including disaggregated runs."
},
"joules_per_total_token": {
"type": "number",
"description": "Total system energy divided by input plus output tokens; a workload-shape-fair view that does not treat prompt tokens as free."
},
"prefill_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across prefill workers; emitted only for deployments with distinct prefill and decode roles."
},
"decode_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across decode workers; emitted only for deployments with distinct prefill and decode roles."
},
"joules_per_input_token": {
"type": "number",
"description": "Energy per input token in joules; cluster-wide on schema-version-2 rows."
},
"prefill_joules_per_input_token": {
"type": "number",
"description": "Role-local prefill energy per input token in joules."
},
"decode_joules_per_output_token": {
"type": "number",
"description": "Role-local decode energy per generated output token in joules."
},
"avg_temp_c": {
"type": "number",
"description": "Mean per-GPU temperature in degrees Celsius during the load window."
},
"peak_temp_c": {
"type": "number",
"description": "Maximum instantaneous per-GPU temperature in degrees Celsius during the load window."
},
"avg_util_pct": {
"type": "number",
"description": "Mean per-GPU utilization percentage (0-100) during the load window."
},
"avg_mem_used_mb": {
"type": "number",
"description": "Mean per-GPU memory used in MB during the load window."
}
}
},
"workers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"worker_idx": {
"type": "integer"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
}
},
"num_gpus": {
"type": "integer"
},
"avg_power_w": {
"type": "number"
},
"avg_temp_c": {
"type": "number"
},
"peak_temp_c": {
"type": "number"
},
"avg_util_pct": {
"type": "number"
},
"avg_mem_used_mb": {
"type": "number"
}
},
"required": [
"role",
"worker_idx",
"num_gpus",
"avg_power_w"
],
"additionalProperties": false
}
},
"power_invalid_reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Producer snake_case reason codes explaining a withheld measurement, present when metrics.power_valid == 0. Absent on legacy rows and validated rows."
},
"power_audit": {
"type": "object",
"properties": {
"window_start_unix": {
"type": "number"
},
"window_end_unix": {
"type": "number"
},
"expected_gpu_count": {
"type": "integer"
},
"observed_gpu_count": {
"type": "integer"
},
"sample_count": {
"type": "integer"
},
"max_sample_gap_s": {
"type": "number"
},
"producer_sha": {
"type": [
"string",
"null"
]
},
"exporter_image_sha256": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"observed_gpu_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true,
"description": "Compact power measurement-window audit emitted alongside the power_valid verdict: window bounds, expected vs. observed GPU counts, sample statistics, and producer identity (producer_sha / exporter_image_sha256 are null for single-node telemetry without an srt-slurm producer). source is a relative path within the source run artifact bundle; observed_gpu_ids contains producer device identifiers, which may be indices rather than physical UUIDs. Present on valid and invalid rows when emitted; absence alone does not establish age or validity."
},
"date": {
"type": "string",
"format": "date"
},
"workflow_run_id": {
"type": "integer"
},
"run_started_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"run_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"hardware",
"framework",
"model",
"precision",
"spec_method",
"disagg",
"is_multinode",
"prefill_tp",
"prefill_ep",
"prefill_dp_attention",
"prefill_num_workers",
"decode_tp",
"decode_ep",
"decode_dp_attention",
"decode_num_workers",
"num_prefill_gpu",
"num_decode_gpu",
"benchmark_type",
"isl",
"osl",
"conc",
"offload_mode",
"image",
"recipe_fingerprint",
"metrics",
"date",
"run_url"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": 421,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"decode_tp": 8,
"decode_ep": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"benchmark_type": "single_turn",
"isl": 1024,
"osl": 1024,
"conc": 32,
"offload_mode": "off",
"image": "vllm/vllm-openai:v0.10.2",
"recipe_fingerprint": "7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d",
"metrics": {
"median_ttft": 0.42,
"median_tpot": 0.018,
"tput_per_gpu": 128.4,
"power_valid": 1,
"power_metric_schema_version": 2,
"avg_power_w": 678.5,
"joules_per_output_token": 5.3,
"joules_per_total_token": 2.65,
"avg_temp_c": 61.2
},
"date": "2026-08-08",
"run_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789"
}
]Scroll to inspect the full example.
The model is missing or unsupported, the calculator sequence is unknown, a supplied powerValid value is not strictV2, or powerValid=strictV2 is combined with view=calculator.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown model"
}The benchmark query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/benchmarks/historyRead benchmark history
Returns historical logical snapshots for one model and either a fixed input/output token pair or Agentic Traces. Replaced AgentX variants remain in their earlier snapshots. Append-only snapshots include inherited points with original producer metadata and separate curve snapshot metadata.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| model | query | string | Required | Display model name. | DeepSeek-R1-0528 |
| isl | query | integer | Optional | Positive input sequence length in tokens. Required unless benchmarkType=agentic_traces. | 1024 |
| osl | query | integer | Optional | Positive output sequence length in tokens. Required unless benchmarkType=agentic_traces. | 1024 |
| benchmarkType | query | string | Optional | Set to agentic_traces to read Agentic Traces history without ISL/OSL. | agentic_traces |
| view | query | enum | Optional | calculator trims each row to the metrics the throughput calculator consumes, for a smaller payload. Omit to retain other history metrics, including measured power when present. Both views omit mean_* and std_* statistics for ttft, tpot, itl, e2el, and intvty. | calculator |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmarks/history?model=DeepSeek-R1-0528&isl=1024&osl=1024'Responses
BenchmarkRowsHistorical benchmark rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"model": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"prefill_dp_attention": {
"type": "boolean"
},
"prefill_num_workers": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"decode_dp_attention": {
"type": "boolean"
},
"decode_num_workers": {
"type": "integer"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"benchmark_type": {
"type": "string"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"conc": {
"type": "integer"
},
"offload_mode": {
"type": "string"
},
"image": {
"type": [
"string",
"null"
]
},
"recipe_fingerprint": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"description": "Scalar metric map. Time metrics, including p99_itl and p99_tpot, are in seconds. p99_itl measures inter-token latency; p99_tpot measures per-request time per output token. Use the actual p99_itl field for an inter-token latency requirement, not the reciprocal of p99_intvty. Throughput metrics use tokens per second per GPU unless their name states otherwise; output_tput_per_gpu counts output tokens. Keys evolve independently; measured power / energy / GPU-telemetry keys are typed below.",
"properties": {
"power_valid": {
"type": "number",
"description": "Publication verdict: 1 = validated measurement window; 0 = failed validation — measured power/energy values are withheld from this row end-to-end, so treat any that remain as unreliable; absent = no validation verdict is available in this response. Absence alone establishes neither the reason, the measurement age, nor invalidity."
},
"power_metric_schema_version": {
"type": "number",
"description": "Power schema version. Version 2 defines every unprefixed joules_per_* field as whole-deployment energy, including on disaggregated runs."
},
"avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts during the measured load window."
},
"avg_total_gpu_power_w": {
"type": "number",
"description": "Mean total GPU power draw in watts across the measured deployment."
},
"total_gpu_energy_j": {
"type": "number",
"description": "Total GPU energy integrated over the measured deployment load window, in joules."
},
"p75_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p75_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P75 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"p90_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts, divided by participating GPU count, over the validated benchmark window with piecewise-linear interpolation. Not a percentile of individual-device percentiles; absent when not measured."
},
"p90_total_gpu_power_w": {
"type": "number",
"description": "Time-weighted P90 of synchronized total GPU-board watts over the validated benchmark window with piecewise-linear interpolation. Accelerator boards only, not chassis or facility power."
},
"joules_per_successful_query": {
"type": "number",
"description": "Whole-deployment energy in joules divided by successful requests."
},
"joules_per_output_token": {
"type": "number",
"description": "Energy per generated output token in joules; cluster-wide on schema-version-2 rows, including disaggregated runs."
},
"joules_per_total_token": {
"type": "number",
"description": "Total system energy divided by input plus output tokens; a workload-shape-fair view that does not treat prompt tokens as free."
},
"prefill_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across prefill workers; emitted only for deployments with distinct prefill and decode roles."
},
"decode_avg_power_w": {
"type": "number",
"description": "Mean per-GPU power draw in watts across decode workers; emitted only for deployments with distinct prefill and decode roles."
},
"joules_per_input_token": {
"type": "number",
"description": "Energy per input token in joules; cluster-wide on schema-version-2 rows."
},
"prefill_joules_per_input_token": {
"type": "number",
"description": "Role-local prefill energy per input token in joules."
},
"decode_joules_per_output_token": {
"type": "number",
"description": "Role-local decode energy per generated output token in joules."
},
"avg_temp_c": {
"type": "number",
"description": "Mean per-GPU temperature in degrees Celsius during the load window."
},
"peak_temp_c": {
"type": "number",
"description": "Maximum instantaneous per-GPU temperature in degrees Celsius during the load window."
},
"avg_util_pct": {
"type": "number",
"description": "Mean per-GPU utilization percentage (0-100) during the load window."
},
"avg_mem_used_mb": {
"type": "number",
"description": "Mean per-GPU memory used in MB during the load window."
}
}
},
"workers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"worker_idx": {
"type": "integer"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
}
},
"num_gpus": {
"type": "integer"
},
"avg_power_w": {
"type": "number"
},
"avg_temp_c": {
"type": "number"
},
"peak_temp_c": {
"type": "number"
},
"avg_util_pct": {
"type": "number"
},
"avg_mem_used_mb": {
"type": "number"
}
},
"required": [
"role",
"worker_idx",
"num_gpus",
"avg_power_w"
],
"additionalProperties": false
}
},
"power_invalid_reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Producer snake_case reason codes explaining a withheld measurement, present when metrics.power_valid == 0. Absent on legacy rows and validated rows."
},
"power_audit": {
"type": "object",
"properties": {
"window_start_unix": {
"type": "number"
},
"window_end_unix": {
"type": "number"
},
"expected_gpu_count": {
"type": "integer"
},
"observed_gpu_count": {
"type": "integer"
},
"sample_count": {
"type": "integer"
},
"max_sample_gap_s": {
"type": "number"
},
"producer_sha": {
"type": [
"string",
"null"
]
},
"exporter_image_sha256": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"observed_gpu_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true,
"description": "Compact power measurement-window audit emitted alongside the power_valid verdict: window bounds, expected vs. observed GPU counts, sample statistics, and producer identity (producer_sha / exporter_image_sha256 are null for single-node telemetry without an srt-slurm producer). source is a relative path within the source run artifact bundle; observed_gpu_ids contains producer device identifiers, which may be indices rather than physical UUIDs. Present on valid and invalid rows when emitted; absence alone does not establish age or validity."
},
"date": {
"type": "string",
"format": "date"
},
"workflow_run_id": {
"type": "integer"
},
"run_started_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"run_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"hardware",
"framework",
"model",
"precision",
"spec_method",
"disagg",
"is_multinode",
"prefill_tp",
"prefill_ep",
"prefill_dp_attention",
"prefill_num_workers",
"decode_tp",
"decode_ep",
"decode_dp_attention",
"decode_num_workers",
"num_prefill_gpu",
"num_decode_gpu",
"benchmark_type",
"isl",
"osl",
"conc",
"offload_mode",
"image",
"recipe_fingerprint",
"metrics",
"date",
"run_url"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": 421,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"decode_tp": 8,
"decode_ep": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"benchmark_type": "single_turn",
"isl": 1024,
"osl": 1024,
"conc": 32,
"offload_mode": "off",
"image": "vllm/vllm-openai:v0.10.2",
"recipe_fingerprint": "7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d7d72a33d",
"metrics": {
"median_ttft": 0.42,
"median_tpot": 0.018,
"tput_per_gpu": 128.4,
"power_valid": 1,
"power_metric_schema_version": 2,
"avg_power_w": 678.5,
"joules_per_output_token": 5.3,
"joules_per_total_token": 2.65,
"avg_temp_c": 61.2
},
"date": "2026-08-08",
"run_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789"
}
]Scroll to inspect the full example.
Required parameters are missing or the model is unsupported.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "model, isl, and osl are required"
}The history query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/workflow-infoRead workflow provenance
Returns workflow runs, changelogs, available configurations, and per-run configuration coverage. Omit date for all dates.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| date | query | date | Optional | Optional YYYY-MM-DD filter. | 2026-08-08 |
| benchmarkType | query | string | Optional | Set to agentic_traces to scope per-run configuration coverage to Agentic Traces. | agentic_traces |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/workflow-info?date=2026-08-08'Responses
WorkflowInfoWorkflow provenance grouped into four arrays.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"runs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"github_run_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"run_attempt": {
"type": "integer"
},
"html_url": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time"
},
"date": {
"type": "string",
"format": "date"
}
},
"required": [
"github_run_id",
"name",
"conclusion",
"run_attempt",
"html_url",
"created_at",
"date"
],
"additionalProperties": false
}
},
"changelogs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"configs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"runConfigs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"runs",
"changelogs",
"configs",
"runConfigs"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"runs": [
{
"github_run_id": 123456789,
"name": "nightly-h200",
"conclusion": "success",
"run_attempt": 1,
"html_url": "https://github.com/semianalysis/inference-benchmarks/actions/runs/123456789",
"created_at": "2026-08-08T03:00:00Z",
"date": "2026-08-08"
}
],
"changelogs": [],
"configs": [],
"runConfigs": []
}Scroll to inspect the full example.
date is not YYYY-MM-DD.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Invalid date format (YYYY-MM-DD required)"
}The workflow query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/evaluationsList evaluation aggregates
Returns latest-attempt evaluation results with configuration, task, provenance, and metric values.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/evaluations'Responses
EvaluationRowsEvaluation result rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"config_id": {
"type": "integer"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"model": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"prefill_dp_attention": {
"type": "boolean"
},
"prefill_num_workers": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"decode_dp_attention": {
"type": "boolean"
},
"decode_num_workers": {
"type": "integer"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"task": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
},
"conc": {
"type": [
"number",
"null"
]
},
"metrics": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"run_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"config_id",
"hardware",
"framework",
"model",
"precision",
"spec_method",
"disagg",
"is_multinode",
"prefill_tp",
"prefill_ep",
"prefill_dp_attention",
"prefill_num_workers",
"decode_tp",
"decode_ep",
"decode_dp_attention",
"decode_num_workers",
"num_prefill_gpu",
"num_decode_gpu",
"task",
"date",
"conc",
"metrics",
"timestamp",
"run_url"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": 72,
"config_id": 11,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"decode_tp": 8,
"decode_ep": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"task": "gpqa",
"date": "2026-08-08",
"conc": null,
"metrics": {
"accuracy": 0.78
},
"timestamp": "2026-08-08T03:00:00Z",
"run_url": null
}
]Scroll to inspect the full example.
The evaluation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/reliabilityList benchmark reliability
Returns successful and total run counts by hardware and date.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/reliability'Responses
ReliabilityRowsReliability count rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"hardware": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
},
"n_success": {
"type": "integer"
},
"total": {
"type": "integer"
}
},
"required": [
"hardware",
"date",
"n_success",
"total"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"hardware": "h200_sxm",
"date": "2026-08-08",
"n_success": 18,
"total": 20
}
]The reliability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}External feeds
Stable feeds for spreadsheets, release tracking, submissions, and runtime images.
GETStable/api/v1/tco-feedCompute a TCO feed
Computes Pareto-frontier throughput points or weighted scores for spreadsheet TCO models. Every scoring assumption is encoded in the URL. CSV returns the same selected view as a flat table.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| model | query | string | Optional | DB model key or display model name. | dsv4 |
| workloads | query | CSV workload list | Optional | Comma-separated <isl>x<osl> token pairs. | 1024x1024,8192x1024 |
| tiers | query | CSV number list | Optional | Positive interactivity targets in output tokens per second per user. | 30,50,75,100 |
| date | query | date | Optional | Use data on or before YYYY-MM-DD. Omit for latest. | 2026-08-08 |
| format | query | enum | Optional | Response encoding. | json |
| view | query | enum | Optional | points returns one row per hardware, workload, and tier. scores returns one row per hardware. | points |
| weights | query | CSV number list | Optional | scores only. One non-negative weight per tier, normalized to sum to 1. | 0.35,0.4,0.2,0.05 |
| workload_weights | query | CSV number list | Optional | scores only. One non-negative weight per workload, normalized to sum to 1. Defaults to equal weights. | 0.5,0.5 |
| alpha | query | number | Optional | scores only. Input-token value ratio in [0, 10]. | 0.25 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/tco-feed?model=dsv4&workloads=1024x1024,8192x1024&tiers=30,50,75,100&view=points&format=json'Responses
TcoFeedThe selected points or scores envelope.
Media type: application/jsonResponse shape
{
"oneOf": [
{
"type": "object",
"properties": {
"model": {
"type": "string"
},
"db_model_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"date": {
"type": [
"string",
"null"
],
"format": "date"
},
"workloads": {
"type": "array",
"items": {
"type": "string"
}
},
"tiers": {
"type": "array",
"items": {
"type": "number"
}
},
"rows": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"model",
"db_model_keys",
"date",
"workloads",
"tiers",
"rows"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"model": {
"type": "string"
},
"db_model_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"date": {
"type": [
"string",
"null"
],
"format": "date"
},
"workloads": {
"type": "array",
"items": {
"type": "string"
}
},
"tiers": {
"type": "array",
"items": {
"type": "number"
}
},
"weights": {
"type": "array",
"items": {
"type": "number"
}
},
"workload_weights": {
"type": "array",
"items": {
"type": "number"
}
},
"alpha": {
"type": "number"
},
"rows": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"model",
"db_model_keys",
"date",
"workloads",
"tiers",
"weights",
"workload_weights",
"alpha",
"rows"
],
"additionalProperties": false
}
]
}Scroll to inspect the full example.
Response example
{
"model": "dsv4",
"db_model_keys": [
"dsv4"
],
"date": null,
"workloads": [
"1024x1024"
],
"tiers": [
50
],
"rows": [
{
"hardware": "h200_sxm",
"workload": "1024x1024",
"tier": 50,
"output_tput_per_gpu": 118.2,
"boundary": "interpolated",
"is_interpolated": true,
"frontier_points": 3,
"frontier_min_interactivity": 30,
"frontier_max_interactivity": 75,
"latest_date": "2026-08-08",
"oldest_frontier_date": "2026-08-06",
"evidence_date": {
"from": "2026-08-06",
"to": "2026-08-08"
}
}
]
}Scroll to inspect the full example.
Alternate representation: text/csv
Response shape
{
"type": "string"
}Response example
hardware,workload,tier,output_tput_per_gpu,boundary,frontier_points,frontier_min_interactivity,frontier_max_interactivity,latest_date,oldest_frontier_date
h200_sxm,1024x1024,50,118.2,interpolated,3,30,75,2026-08-08,2026-08-06
A model, date, view, format, workload, tier, weight, or alpha value is invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Invalid tiers: expected comma-separated positive numbers"
}The TCO calculation failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/submissionsRead submission coverage
Returns configuration-level submission summaries and daily hardware submission volume.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/submissions'Responses
SubmissionsSubmission summary and volume arrays.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"summary": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"is_multinode": {
"type": "boolean"
},
"num_prefill_gpu": {
"type": "integer",
"description": "Physical prefill chips; aggregate engines may mirror their single chip count in both role columns."
},
"num_decode_gpu": {
"type": "integer",
"description": "Physical decode chips, independent of logical TP and DP. Sum role counts only for disaggregated engines."
},
"prefill_tp": {
"type": "integer"
},
"prefill_ep": {
"type": "integer"
},
"decode_tp": {
"type": "integer"
},
"decode_ep": {
"type": "integer"
},
"date": {
"type": "string",
"format": "date"
},
"total_datapoints": {
"type": "integer"
},
"distinct_sequences": {
"type": "integer"
},
"distinct_concurrencies": {
"type": "integer"
},
"max_concurrency": {
"type": "integer"
},
"image": {
"type": [
"string",
"null"
]
}
},
"required": [
"model",
"hardware",
"framework",
"precision",
"spec_method",
"disagg",
"is_multinode",
"num_prefill_gpu",
"num_decode_gpu",
"prefill_tp",
"prefill_ep",
"decode_tp",
"decode_ep",
"date",
"total_datapoints",
"distinct_sequences",
"distinct_concurrencies",
"max_concurrency",
"image"
],
"additionalProperties": false
}
},
"volume": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date"
},
"hardware": {
"type": "string"
},
"datapoints": {
"type": "integer"
}
},
"required": [
"date",
"hardware",
"datapoints"
],
"additionalProperties": false
}
}
},
"required": [
"summary",
"volume"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"summary": [
{
"model": "dsr1",
"hardware": "h200_sxm",
"framework": "vllm",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"is_multinode": false,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"prefill_tp": 1,
"prefill_ep": 1,
"decode_tp": 8,
"decode_ep": 1,
"date": "2026-08-08",
"total_datapoints": 24,
"distinct_sequences": 3,
"distinct_concurrencies": 8,
"max_concurrency": 256,
"image": "vllm/vllm-openai:v0.10.2"
}
],
"volume": [
{
"date": "2026-08-08",
"hardware": "h200_sxm",
"datapoints": 24
}
]
}Scroll to inspect the full example.
The submissions query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/framework-releasesRead latest framework releases
Returns the latest non-draft, non-prerelease GitHub release tag for vLLM and SGLang. A null value means the upstream lookup had no usable release.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/framework-releases'Responses
FrameworkReleasesFramework keys mapped to release tags or null.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": [
"string",
"null"
]
}
}Response example
{
"vllm": "v0.10.2",
"sglang": "v0.4.10"
}The release lookup failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/latest-imagesRead latest runtime images
Returns the latest container image observed for each benchmark configuration and sequence.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/latest-images'Responses
LatestImageRowsLatest image rows.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"hardware": {
"type": "string"
},
"framework": {
"type": "string"
},
"precision": {
"type": "string"
},
"spec_method": {
"type": "string"
},
"disagg": {
"type": "boolean"
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"benchmark_type": {
"type": "string"
},
"image": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
}
},
"required": [
"model",
"hardware",
"framework",
"precision",
"spec_method",
"disagg",
"isl",
"osl",
"benchmark_type",
"image",
"date"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"model": "dsr1",
"hardware": "h200_sxm",
"framework": "vllm",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"isl": 1024,
"osl": 1024,
"benchmark_type": "single_turn",
"image": "vllm/vllm-openai:v0.10.2",
"date": "2026-08-08"
},
{
"model": "dsr1",
"hardware": "h200_sxm",
"framework": "vllm",
"precision": "fp8",
"spec_method": "none",
"disagg": false,
"isl": null,
"osl": null,
"benchmark_type": "agentic_traces",
"image": "vllm/vllm-openai:v0.10.2",
"date": "2026-08-08"
}
]Scroll to inspect the full example.
The image query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}Datasets
Dataset registry, metadata, conversation indexes, and conversation structures.
GETStable/api/v1/datasetsList ingested datasets
Returns dataset registry cards without the large chart_data field.
Parameters
No parameters.
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets'Responses
DatasetRecordsDataset registry records.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"variant": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"hf_url": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
},
"conversation_count": {
"type": "integer"
},
"summary": {
"type": "object",
"additionalProperties": true
},
"ingested_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"slug",
"label",
"variant",
"description",
"hf_url",
"license",
"conversation_count",
"summary",
"ingested_at"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
[
{
"id": "ds_01",
"slug": "cc-traces-weka",
"label": "CC Traces Weka",
"variant": "default",
"description": "Agentic coding traces",
"hf_url": "https://huggingface.co/datasets/example/cc-traces-weka",
"license": "Apache-2.0",
"conversation_count": 1200,
"summary": {
"totalIn": 8200000,
"totalOut": 1700000
},
"ingested_at": "2026-08-08T03:00:00Z"
}
]Scroll to inspect the full example.
The dataset registry query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/datasets/{slug}Read dataset details
Returns one dataset registry record plus its precomputed chart_data distributions.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| slug | path | string | Required | Dataset slug from the registry. | cc-traces-weka |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka'Responses
DatasetDetailDataset metadata with chart_data.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"variant": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"hf_url": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
},
"conversation_count": {
"type": "integer"
},
"summary": {
"type": "object",
"additionalProperties": true
},
"ingested_at": {
"type": "string",
"format": "date-time"
},
"chart_data": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"id",
"slug",
"label",
"variant",
"description",
"hf_url",
"license",
"conversation_count",
"summary",
"ingested_at",
"chart_data"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"id": "ds_01",
"slug": "cc-traces-weka",
"label": "CC Traces Weka",
"variant": "default",
"description": "Agentic coding traces",
"hf_url": null,
"license": "Apache-2.0",
"conversation_count": 1200,
"summary": {},
"ingested_at": "2026-08-08T03:00:00Z",
"chart_data": {
"tokens": {
"bins": [
0,
1000,
2000
],
"counts": [
140,
320
]
}
}
}Scroll to inspect the full example.
No dataset has this slug.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The dataset query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/datasets/{slug}/conversationsList dataset conversations
Returns a searchable, sorted, paginated conversation index. It contains counts only, not the full conversation structure.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| slug | path | string | Required | Dataset slug from the registry. | cc-traces-weka |
| search | query | string | Optional | Trimmed conversation ID search, at most 100 characters. | trace-018 |
| limit | query | integer | Optional | Page size, clamped to 1 through 200. | 50 |
| offset | query | integer | Optional | Zero-based row offset. Negative values become 0. | 0 |
| sort | query | enum | Optional | Sort by tokens, turns, subagents, or id. Unknown values fall back to tokens. | tokens |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka/conversations?limit=50&offset=0&sort=tokens'Responses
ConversationListTotal count and conversation index items.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"total": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"conv_id": {
"type": "string"
},
"models": {
"type": "array",
"items": {
"type": "string"
}
},
"num_turns": {
"type": "integer"
},
"num_subagent_groups": {
"type": "integer"
},
"total_in": {
"type": "integer"
},
"total_out": {
"type": "integer"
},
"total_cached": {
"type": "integer"
}
},
"required": [
"conv_id",
"models",
"num_turns",
"num_subagent_groups",
"total_in",
"total_out",
"total_cached"
],
"additionalProperties": false
}
}
},
"required": [
"total",
"items"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"total": 1200,
"items": [
{
"conv_id": "trace-018",
"models": [
"claude-sonnet-4"
],
"num_turns": 42,
"num_subagent_groups": 3,
"total_in": 18200,
"total_out": 4200,
"total_cached": 9600
}
]
}Scroll to inspect the full example.
search exceeds 100 characters.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "search too long"
}No dataset has this slug.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The conversation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETStable/api/v1/datasets/{slug}/conversations/{convId}Read a conversation structure
Returns one conversation and its flamegraph-ready nested structure. App Router decodes each path value once.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| slug | path | string | Required | Dataset slug from the registry. | cc-traces-weka |
| convId | path | string | Required | Conversation ID exactly as listed by the conversation index. | trace-018 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/datasets/cc-traces-weka/conversations/trace-018'Responses
ConversationDetailConversation counts and nested structure.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"conv_id": {
"type": "string"
},
"models": {
"type": "array",
"items": {
"type": "string"
}
},
"num_turns": {
"type": "integer"
},
"num_subagent_groups": {
"type": "integer"
},
"total_in": {
"type": "integer"
},
"total_out": {
"type": "integer"
},
"total_cached": {
"type": "integer"
},
"structure": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"conv_id",
"models",
"num_turns",
"num_subagent_groups",
"total_in",
"total_out",
"total_cached",
"structure"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"conv_id": "trace-018",
"models": [
"claude-sonnet-4"
],
"num_turns": 42,
"num_subagent_groups": 3,
"total_in": 18200,
"total_out": 4200,
"total_cached": 9600,
"structure": {
"name": "trace-018",
"children": []
}
}Scroll to inspect the full example.
The dataset or conversation does not exist.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The conversation query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}CollectiveX
Versioned collective communication sweep results and run discovery.
GETBeta/api/v1/collectivex/latestRead the latest CollectiveX dataset
Discovers and ingests the latest sweep when needed, then returns its versioned neutral dataset. A stored run is served if refresh fails. 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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| version | query | enum | Required | CollectiveX contract version. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/latest?version=1'Responses
CollectiveXDatasetLatest CollectiveX run, coverage, series, and optional KV cases.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"run": {
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"run_attempt": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"source_sha": {
"type": "string"
},
"requested_cases": {
"type": "integer"
},
"terminal_cases": {
"type": "integer"
},
"measured_cases": {
"type": "integer"
},
"unsupported_cases": {
"type": "integer"
},
"failed_cases": {
"type": "integer"
},
"requested_points": {
"type": "integer"
},
"terminal_points": {
"type": "integer"
},
"measured_points": {
"type": "integer"
},
"covered_skus": {
"type": "array",
"items": {
"type": "string"
}
},
"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
{
"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.
version is missing or unsupported.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown version"
}No stored or discoverable run exists.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}Upstream sweep discovery is unavailable and no stored fallback exists.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}Upstream sweep processing is temporarily unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}The stored run query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/collectivex/runsList CollectiveX runs
Returns progressively discovered run summaries. discovery_complete=false means clients may poll while older runs are still being discovered.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| version | query | enum | Required | CollectiveX contract version. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/runs?version=1'Responses
CollectiveXRunListVersion, run summaries, and discovery state.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"runs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"run_attempt": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"covered_skus": {
"type": "array",
"items": {
"type": "string"
}
},
"requested_cases": {
"type": "integer"
},
"measured_cases": {
"type": "integer"
},
"requested_points": {
"type": "integer"
},
"terminal_points": {
"type": "integer"
},
"terminal_counts": {
"type": "object",
"properties": {
"measured": {
"type": "integer"
},
"unsupported": {
"type": "integer"
},
"failed": {
"type": "integer"
}
},
"required": [
"measured",
"unsupported",
"failed"
],
"additionalProperties": false
},
"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
{
"version": 1,
"runs": [
{
"run_id": "123456789",
"run_attempt": 1,
"generated_at": "2026-08-08T03:00:00Z",
"conclusion": "success",
"covered_skus": [
"h200_sxm"
],
"requested_cases": 12,
"measured_cases": 10,
"requested_points": 48,
"terminal_points": 48,
"terminal_counts": {
"measured": 40,
"unsupported": 8,
"failed": 0
},
"kv_cases": {
"requested": 4,
"measured": 4
}
}
],
"discovery_complete": true
}Scroll to inspect the full example.
version is missing or unsupported.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown version"
}Discovery failed and no stored run list exists.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}Discovery is temporarily unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}The stored run list query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/collectivex/runs/{runId}Read a CollectiveX run
Returns one positive numeric run ID as a versioned CollectiveX dataset, discovering and ingesting it on demand when possible.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| runId | path | integer | Required | Positive GitHub Actions run ID. | 123456789 |
| version | query | enum | Required | CollectiveX contract version. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/collectivex/runs/123456789?version=1'Responses
CollectiveXDatasetThe requested CollectiveX dataset.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"run": {
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"run_attempt": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"conclusion": {
"type": [
"string",
"null"
]
},
"source_sha": {
"type": "string"
},
"requested_cases": {
"type": "integer"
},
"terminal_cases": {
"type": "integer"
},
"measured_cases": {
"type": "integer"
},
"unsupported_cases": {
"type": "integer"
},
"failed_cases": {
"type": "integer"
},
"requested_points": {
"type": "integer"
},
"terminal_points": {
"type": "integer"
},
"measured_points": {
"type": "integer"
},
"covered_skus": {
"type": "array",
"items": {
"type": "string"
}
},
"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
{
"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.
version or runId is invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unknown version or run id"
}The run does not exist.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The run cannot be fetched from the upstream source.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}Upstream processing is temporarily unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Unavailable"
}The run query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}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
curl -sS 'https://inferencex.semianalysis.com/api/v1/operatorx/runs'Responses
OperatorXRunListRun summaries.
Media type: application/jsonResponse shape
{
"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
{
"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.
Workflow unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX unavailable"
}Run still in progress.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX unavailable"
}GitHub source unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX unavailable"
}Storage or configuration unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| runId | path | integer | Required | Positive GitHub Actions run ID. | 123456789 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/operatorx/runs/123456789'Responses
OperatorXDatasetRun coverage and measurements.
Media type: application/jsonResponse shape
{
"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
{
"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.
Invalid run ID.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX run unavailable"
}Run or artifacts not found.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX run unavailable"
}Run still in progress.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX run unavailable"
}GitHub source unavailable.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "OperatorX run unavailable"
}Storage, configuration, or artifact validation failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"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
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 200 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/agentic-aggregates?ids=421,422'Responses
AgenticAggregateMapResult IDs mapped to aggregate percentiles or null metric groups.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"isl": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"osl": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"kvCacheUtil": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"prefixCacheHitRate": {
"oneOf": [
{
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"p50": {
"type": "number"
},
"p75": {
"type": "number"
},
"p90": {
"type": "number"
},
"p95": {
"type": "number"
},
"p99": {
"type": "number"
},
"n": {
"type": "integer"
}
},
"required": [
"mean",
"p50",
"p75",
"p90",
"p95",
"p99",
"n"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"isl",
"osl",
"kvCacheUtil",
"prefixCacheHitRate"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
{
"421": {
"id": 421,
"isl": {
"mean": 18320,
"p50": 16440,
"p75": 20110,
"p90": 24880,
"p95": 27940,
"p99": 31900,
"n": 512
},
"osl": null,
"kvCacheUtil": null,
"prefixCacheHitRate": null
}
}Scroll to inspect the full example.
ids is missing, malformed, or exceeds 200 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The aggregate query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/benchmark-siblingsRead sibling benchmark points
Returns the benchmark SKU and every point in the same hardware, framework, model, precision, method, benchmark type, and workflow run. Siblings may have different workloads. is_current is true only for the requested result ID; false does not mean stale, invalid, or superseded.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/benchmark-siblings?id=421'Responses
BenchmarkSiblingsSKU metadata and sibling navigation rows.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"sku": {
"type": "object",
"additionalProperties": true
},
"siblings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"sku",
"siblings"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"sku": {
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"precision": "fp8",
"spec_method": "none",
"benchmark_type": "agentic_traces",
"github_run_id": 123456789,
"date": "2026-08-08",
"dataset_slug": "cc-traces-weka"
},
"siblings": [
{
"id": 421,
"conc": 32,
"offload_mode": "off",
"decode_tp": 8,
"decode_ep": 1,
"decode_pp": null,
"decode_dcp_size": 8,
"decode_pcp_size": 1,
"decode_dp_attention": false,
"decode_num_workers": 1,
"prefill_tp": 8,
"prefill_ep": 1,
"prefill_pp": null,
"prefill_dcp_size": 8,
"prefill_pcp_size": 1,
"prefill_dp_attention": false,
"prefill_num_workers": 1,
"num_prefill_gpu": 0,
"num_decode_gpu": 8,
"disagg": false,
"is_multinode": false,
"tput_per_gpu": 128.4,
"total_requests": 320,
"is_current": true,
"has_trace": true
}
]
}Scroll to inspect the full example.
id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No benchmark result has this ID.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The sibling query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/derived-agentic-metricsRead derived agentic metrics
Returns normalized interactivity percentiles keyed by benchmark result ID. IDs are deduplicated and at most 200 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 200 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/derived-agentic-metrics?ids=421,422'Responses
DerivedAgenticMetricMapResult IDs mapped to p75 and p90 normalized interactivity.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"p75_e2e_norm_intvty": {
"type": [
"number",
"null"
]
},
"p90_e2e_norm_intvty": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"p75_e2e_norm_intvty",
"p90_e2e_norm_intvty"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
{
"421": {
"id": 421,
"p75_e2e_norm_intvty": 31.2,
"p90_e2e_norm_intvty": 24.8
}
}ids is missing, malformed, or exceeds 200 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The derived metric query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/request-timelineRead a request timeline
Returns a versioned benchmark window and per-request replay identity, source provenance, dispatch, acknowledgement, completion, token, phase, worker, and cancellation timing.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/request-timeline?id=421'Responses
RequestTimelineTimeline metadata and request records. Nanosecond event fields are offsets from startNs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"version": {
"type": "integer"
},
"startNs": {
"type": "integer"
},
"endNs": {
"type": "integer"
},
"durationS": {
"type": "number"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cid": {
"type": "string"
},
"ri": {
"type": "integer"
},
"ti": {
"type": "integer"
},
"srcTrace": {
"type": "string"
},
"srcOuter": {
"type": "integer"
},
"srcInner": {
"type": "integer"
},
"srcKind": {
"type": "string"
},
"wid": {
"type": "string"
},
"ad": {
"type": "integer"
},
"phase": {
"type": "string"
},
"credit": {
"type": "integer"
},
"start": {
"type": "integer"
},
"ack": {
"type": [
"number",
"null"
]
},
"end": {
"type": "integer"
},
"ttftMs": {
"type": [
"number",
"null"
]
},
"tpotMs": {
"type": [
"number",
"null"
]
},
"isl": {
"type": [
"number",
"null"
]
},
"osl": {
"type": [
"number",
"null"
]
},
"cancelled": {
"type": "boolean"
}
},
"required": [
"cid",
"ti",
"wid",
"ad",
"phase",
"credit",
"start",
"ack",
"end",
"ttftMs",
"tpotMs",
"isl",
"osl",
"cancelled"
],
"additionalProperties": false
}
}
},
"required": [
"version",
"startNs",
"endNs",
"durationS",
"requests"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"version": 6,
"startNs": 1000000000,
"endNs": 2400000000,
"durationS": 1.4,
"requests": [
{
"cid": "trace-018",
"ri": 0,
"ti": 0,
"wid": "7",
"ad": 0,
"phase": "profiling",
"credit": 0,
"start": 1200000,
"ack": 1800000,
"end": 420000000,
"ttftMs": 42.3,
"tpotMs": 18.1,
"isl": 18320,
"osl": 410,
"cancelled": false
}
]
}Scroll to inspect the full example.
id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No timeline exists for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The timeline query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/server-logRead a benchmark server log
Returns one stored .log/.out file for a benchmark result ID. Use file with a name from server-log-files. Add offset or limit for a bounded chunk; add download=1 to stream the complete selected file as a text attachment.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
| file | query | string | Optional | Artifact-relative filename. Omit it to read the primary/legacy file. | results/router.log |
| offset | query | integer | Optional | Zero-based character offset. Supplying offset or limit enables chunked mode. | 0 |
| limit | query | integer | Optional | Chunk size in characters, from 1 to 262144. Defaults to 65536. | 65536 |
| download | query | integer | Optional | Set to 1 to stream the complete selected file as a text attachment. Cannot be combined with offset or limit. | 1 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log?id=421&file=results%2Frouter.log&offset=0&limit=65536'Responses
ServerLog | ServerLogChunk | text/plain attachmentBenchmark result ID and server log text, plus range metadata in chunked mode.
Media type: application/jsonResponse shape
{
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"serverLog": {
"type": "string"
}
},
"required": [
"id",
"serverLog"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"fileName": {
"type": "string"
},
"serverLog": {
"type": "string"
},
"offset": {
"type": "integer"
},
"nextOffset": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"fileName",
"serverLog",
"offset",
"nextOffset"
],
"additionalProperties": false
}
]
}Scroll to inspect the full example.
Response example
{
"id": 421,
"fileName": "results/router.log",
"serverLog": "INFO router initialized\n",
"offset": 0,
"nextOffset": 24
}id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No server log exists for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The server log query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/server-log-searchSearch complete benchmark logs
Runs a literal, case-insensitive search across every stored .log/.out file for one benchmark result. The bounded response contains contextual snippets without transferring complete log files.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
| q | query | string | Required | Literal search text, from 1 to 256 characters. | router ready |
| limit | query | integer | Optional | Maximum matches to return, from 1 to 100. Defaults to 50. | 50 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log-search?id=421&q=router%20ready&limit=50'Responses
ServerLogSearchResultBounded matches with filenames, character offsets, and contextual text.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"query": {
"type": "string"
},
"matches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fileName": {
"type": "string"
},
"offset": {
"type": "integer"
},
"before": {
"type": "string"
},
"match": {
"type": "string"
},
"after": {
"type": "string"
}
},
"required": [
"fileName",
"offset",
"before",
"match",
"after"
],
"additionalProperties": false
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"id",
"query",
"matches",
"truncated"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"id": 421,
"query": "router ready",
"matches": [
{
"fileName": "results/router.log",
"offset": 128,
"before": "INFO ",
"match": "router ready",
"after": " on port 8000\n"
}
],
"truncated": false
}Scroll to inspect the full example.
The search parameters are invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Invalid query"
}The complete-log search failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/server-log-filesList stored benchmark log files
Lists every .log and .out filename retained from the matching server-log artifact. Paths are returned relative to the artifact root, with the primary file first.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/server-log-files?id=421'Responses
ServerLogFileNamesArtifact-relative .log/.out filenames.
Media type: application/jsonResponse shape
{
"type": "array",
"items": {
"type": "string"
}
}Response example
[
"results/server.log",
"results/benchmark.log",
"results/router.log"
]id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No log bundle exists for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The log filename query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/log-availabilityCheck server-log availability
Returns only benchmark result IDs that have a stored server log. IDs are deduplicated and at most 500 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 500 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/log-availability?ids=421,422'Responses
LogAvailabilityMapAvailable result IDs mapped to true. Missing keys have no server log.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "boolean"
}
}Response example
{
"421": true
}ids is missing, malformed, or exceeds 500 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Expected ids as comma-separated positive integers"
}The server-log availability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/trace-availabilityCheck trace availability
Returns only benchmark result IDs that have a stored trace. IDs are deduplicated and at most 500 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 500 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-availability?ids=421,422'Responses
TraceAvailabilityMapAvailable result IDs mapped to true. Missing keys have no trace.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "boolean"
}
}Response example
{
"421": true
}ids is missing, malformed, or exceeds 500 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The trace availability query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/trace-histogramsRead trace histograms
Returns input and output token count arrays for each benchmark result ID. IDs are deduplicated and at most 200 are accepted.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| ids | query | comma-separated integers | Required | One to 200 positive benchmark result IDs. | 421,422 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-histograms?ids=421,422'Responses
TraceHistogramMapResult IDs mapped to raw ISL and OSL samples.
Media type: application/jsonResponse shape
{
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"isl": {
"type": "array",
"items": {
"type": "number"
}
},
"osl": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"id",
"isl",
"osl"
],
"additionalProperties": false
}
}Scroll to inspect the full example.
Response example
{
"421": {
"id": 421,
"isl": [
18220,
19340,
15110
],
"osl": [
410,
380,
512
]
}
}Scroll to inspect the full example.
ids is missing, malformed, or exceeds 200 unique IDs.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "ids query param is required"
}The histogram query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}GETBeta/api/v1/trace-server-metricsRead trace server metrics
Returns point metadata and chart-ready aggregate time series for cache usage, queue depth, prefill and decode throughput, and prompt-token sources. metricSources contains source descriptors; source-specific arrays are loaded by the point-detail UI only when selected.
Parameters
| Name | Location | Type | Requirement | Description | Example |
|---|---|---|---|---|---|
| id | query | integer | Required | Positive benchmark result ID. | 421 |
Request
curl -sS 'https://inferencex.semianalysis.com/api/v1/trace-server-metrics?id=421'Responses
TraceServerMetricsPoint metadata, window bounds, and server metric series.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"additionalProperties": true
},
"startNs": {
"type": "integer"
},
"endNs": {
"type": "integer"
},
"durationS": {
"type": "number"
},
"timeslicesCount": {
"type": "integer"
},
"kvCacheUsage": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"prefixCacheHitRate": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"queueDepth": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"promptTokensBySource": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"prefillTps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"decodeTps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"prefixCacheHitsTps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"hostKvCacheUsage": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"kvCacheUsageByEngine": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"kvCachePoolTokens": {
"type": [
"number",
"null"
]
},
"metricSources": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"meta",
"startNs",
"endNs",
"durationS",
"timeslicesCount",
"kvCacheUsage",
"prefixCacheHitRate",
"queueDepth",
"promptTokensBySource",
"prefillTps",
"decodeTps",
"prefixCacheHitsTps",
"hostKvCacheUsage",
"kvCacheUsageByEngine",
"kvCachePoolTokens",
"metricSources"
],
"additionalProperties": false
}Scroll to inspect the full example.
Response example
{
"meta": {
"id": 421,
"hardware": "h200_sxm",
"framework": "vllm",
"model": "dsr1",
"conc": 32,
"date": "2026-08-08"
},
"startNs": 1000000000,
"endNs": 2400000000,
"durationS": 1.4,
"timeslicesCount": 2,
"kvCacheUsage": [
{
"t": 0,
"v": 0.44
}
],
"prefixCacheHitRate": [],
"queueDepth": [],
"promptTokensBySource": {},
"prefillTps": [],
"decodeTps": [],
"prefixCacheHitsTps": [],
"hostKvCacheUsage": [],
"kvCacheUsageByEngine": [],
"kvCachePoolTokens": 983040,
"metricSources": []
}Scroll to inspect the full example.
id is missing or invalid.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "id is required (benchmark_result_id)"
}No server metrics exist for this result.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Not found"
}The server metric query failed.
Media type: application/jsonResponse shape
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"additionalProperties": true
}Response example
{
"error": "Internal server error"
}