For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
    • Welcome to AIPerf Documentation
  • Getting Started
    • Profiling with AIPerf
    • Comprehensive LLM Benchmarking
    • Migrating from GenAI-Perf
    • GenAI-Perf vs AIPerf CLI Feature Comparison Matrix
  • Tutorials
      • Command Line Options
      • Environment Variables
      • Metrics Reference
      • Benchmark Datasets
      • Pre-Flight Tokenizer Auto Detection
      • Conversation Context Mode
      • List-Metric Aggregation
      • Vendor Usage Field Reference
      • JSON Export Schema
      • HTTP API Endpoints
      • YAML Config Roadmap
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoDocumentation
On this page
  • Endpoints
  • Secret redaction
  • Example
Reference

HTTP API Endpoints

||View as Markdown|
Previous

JSON Export Schema

Next

YAML Config Roadmap

When aiperf profile is launched with --api-port <PORT> (or AIPERF_API_SERVER_PORT is set), AIPerf starts an in-process FastAPI server alongside the benchmark and exposes HTTP and Prometheus endpoints for the lifetime of the run. The server is opt-in — if --api-port is not set, no listener is created.

--api-host (default 127.0.0.1) controls the bind address; pass --api-host 0.0.0.0 to expose externally (e.g. in Kubernetes).

The router classes that back these routes live under src/aiperf/api/routers/ and are loaded via the api_router plugin category in plugins.yaml.

Endpoints

MethodPathResponse shapeDescription
GET/api/configBenchmarkConfigDeclarative benchmark configuration for the current run. endpoint.api_key is excluded. Run-identity fields (benchmark_id, cli_command, etc.) live on /api/run, not here.
GET/api/runRunInfoRun-identity metadata: benchmark_id, sweep_id, trial, random_seed, run_label, variation_*, and the redacted cli_command. Same shape as the run_info block in profile_export_aiperf.json.
GET/api/metricsMetricsResponseLive metric values (JSON). Updated as the benchmark progresses.
GET/metricstext/plainPrometheus exposition format. Scrape target for Prometheus and compatible collectors.
GET/api/progressProgressResponsePer-phase credit/request progress.
GET/api/workersWorkersResponsePer-worker stats (request counts, errors, lifecycle state).
GET/api/resultsBenchmarkResultsResponseFinal benchmark results once profiling has completed.
GET/api/results/listResultsListResponseList of result artifact files under the artifact directory.
GET/api/results/files/{filename}file streamDownload an individual artifact file by relative path.
GET/healthztext/plain (ok / unhealthy)Kubernetes liveness probe. 503 when the service is in FAILED state.
GET/readyztext/plain (ok / not ready)Kubernetes readiness probe. 200 only when the service is RUNNING.
GET/docs, /redoc, /openapi.json(FastAPI defaults)Auto-generated OpenAPI documentation.

Secret redaction

cli_command is captured from sys.argv at BenchmarkRun construction and redacted by build_cli_command() before it is stored — so the string returned from /api/run and written to profile_export_aiperf.json is the same redacted form. --api-key-shaped flags, credential-bearing --header values (e.g. Authorization: Bearer …), and userinfo embedded in URL-typed flags (--url, -u, --otel-url, --mlflow-tracking-uri) are all scrubbed to <redacted>.

/api/config independently excludes endpoint.api_key from its response.

Example

$aiperf profile --model my-model --url http://localhost:8000 \
> --api-key sk-secret-12345 --api-port 9097 --request-count 1000 &
$
$# Inspect the redacted launch command
$curl -s http://127.0.0.1:9097/api/run | jq .cli_command
$# "aiperf profile --model 'my-model' --url 'http://localhost:8000' \
># --api-key '<redacted>' --api-port 9097 --request-count 1000"
$
$# Liveness probe
$curl -s http://127.0.0.1:9097/healthz
$# ok