Skip to content
KernelIndex
Search⌘K

API reference

30 routes · v1 · problem+json errors

Read API over the catalog. No key needed; a ki_ key from /account raises the quota. Contract: /api/v1/openapi.json; the SDK, ki CLI, and MCP server are generated from it. Agents has the one-paste setup.

get/me

The presented API key's identity, scopes, and quota

curl -H "Authorization: Bearer $KI_API_KEY" \
  "https://kernelindex.com/api/v1/me"
post/resolve/kernel

Resolver decision for a structured request

curl -X POST "https://kernelindex.com/api/v1/resolve/kernel" \
  -H "Content-Type: application/json" \
  -d '{"operation": {"name": "rmsnorm"}, "environment": {"hardwareProduct": "B200", "dtype": "bf16"}}'
post/resolve/kernel/batch

One resolver decision per request, in request order

curl -X POST "https://kernelindex.com/api/v1/resolve/kernel/batch" \
  -H "Content-Type: application/json" \
  -d '{"requests": [
    {"operation": {"name": "rmsnorm", "axes": {"tokens": 2048}},
     "environment": {"hardwareProduct": "B200", "dtype": "bf16"}},
    {"operation": {"name": "gemm"}, "environment": {"hardwareProduct": "B200"}}
  ]}'
post/precedents

Implementations most likely to contain transferable optimization ideas for the requested kernel problem, ranked by transferability (same computation, same or adjacent hardware, adjacent shape, proven standing, shared techniques), each with its reasons. Not a compatibility answer: the problem need not be indexed.

curl -X POST "https://kernelindex.com/api/v1/precedents" \
  -H "Content-Type: application/json" \
  -d '{}'
get/operations/{idOrSlug}

Operation dossier (the web page's model)

idOrSlug (path, required) · workload (query) · cohort (query)

curl "https://kernelindex.com/api/v1/operations/<idOrSlug>"
get/implementations/{idOrSlug}

Implementation dossier

idOrSlug (path, required) · include (query)

curl "https://kernelindex.com/api/v1/implementations/<idOrSlug>"
get/projects/{slug}

Project dossier: standing, measured implementations, claim state

slug (path, required)

curl "https://kernelindex.com/api/v1/projects/<slug>"
get/runs/{idOrDigest}

Immutable run evidence dossier

idOrDigest (path, required)

curl "https://kernelindex.com/api/v1/runs/<idOrDigest>"
post/runs/{idOrDigest}/attestations

idOrDigest (path, required)

curl -X POST "https://kernelindex.com/api/v1/runs/<idOrDigest>/attestations" \
  -H "Content-Type: application/json" \
  -d '{}'
get/records

Records ledger page (cursor-paginated)

cursor (query) · limit (query)

curl "https://kernelindex.com/api/v1/records"
post/compare

Aligned comparison of 2–8 runs

curl -X POST "https://kernelindex.com/api/v1/compare" \
  -H "Content-Type: application/json" \
  -d '{"runs": ["<run-id>", "<run-id>"]}'
get/exports/catalog.jsonl.zst

Redirect to the latest immutable catalog export

curl "https://kernelindex.com/api/v1/exports/catalog.jsonl.zst"
post/submissions/preview

Validation report plus, per run, the cohort it would join and the rank it would take under ranking-v1. Never a promise; review decides comparability

curl -X POST "https://kernelindex.com/api/v1/submissions/preview" \
  -H "Content-Type: application/json" \
  -d '{}'
post/submissions
curl -X POST "https://kernelindex.com/api/v1/submissions" \
  -H "Content-Type: application/json" \
  -d '{}'
post/corrections

Retract a run or mark it superseded (site_admin session required).

curl -X POST "https://kernelindex.com/api/v1/corrections" \
  -H "Content-Type: application/json" \
  -d '{"action": "retract", "runId": "<run-id>", "reason": "…"}'
post/revalidate

Drop catalog caches (importer bearer token required).

curl -X POST "https://kernelindex.com/api/v1/revalidate" \
  -H "Content-Type: application/json" \
  -d '{}'
post/resolve/serving

Feasible serving configurations grouped by cohort, ranked only under an explicit objective; the Pareto frontier otherwise

curl -X POST "https://kernelindex.com/api/v1/resolve/serving" \
  -H "Content-Type: application/json" \
  -d '{"model": "llama2-70b-99", "objective": {"direction": "maximize", "metric": "output_token_throughput_tps"}}'
get/serving-runs

Serving runs, cursor-paginated

cursor (query) · limit (query)

curl "https://kernelindex.com/api/v1/serving-runs"
get/serving-configurations

Serving configurations with eligible run counts

curl "https://kernelindex.com/api/v1/serving-configurations"
get/serving-runs/{id}

Serving run evidence dossier

id (path, required)

curl "https://kernelindex.com/api/v1/serving-runs/<id>"
get/runs

Published runs, newest observation first, keyset-paginated

operation (query) · hardware (query) · source (query) · status (query) · since (query) · cursor (query) · limit (query)

curl "https://kernelindex.com/api/v1/runs"
get/challenges

Requested workloads, priority and model gaps, unbeaten baselines, unchallenged and stale records; every row points at the cohort or search where the answer would go

curl "https://kernelindex.com/api/v1/challenges"
get/feed

Record breaks, publication batches, corrections, and accepted claims over the trailing 30 days, newest first, grouped by UTC day

since (query)

curl "https://kernelindex.com/api/v1/feed"
get/operations

Every operation with taxonomy tags, workload count, and eligible run count

family (query) · tag (query)

curl "https://kernelindex.com/api/v1/operations"
get/hardware

Per-GPU coverage: kernel and serving run counts and operation-family breadth (counts, never a shared ranking)

curl "https://kernelindex.com/api/v1/hardware"
get/models

Model coverage: serving model revisions and kernel-side model: tags, as separate arrays

curl "https://kernelindex.com/api/v1/models"
get/models/{slug}

Model dossier: best known per operation on one GPU, gaps, evidence, source links (the web page's model)

slug (path, required) · gpu (query)

curl "https://kernelindex.com/api/v1/models/<slug>"
get/coverage

Live per-source corpus counts and the hero family/GPU coverage grid

curl "https://kernelindex.com/api/v1/coverage"
get/sources

Source provenance: slug, kind, run counts, and last snapshot fetch time

curl "https://kernelindex.com/api/v1/sources"

Errors are problem+json with a stable code. Responses carry stable IDs, digests, and the ranking policy version: the same answers the web pages show.