---
title: "List registered kernel manifests (PTX omitted)"
method: GET
path: "/kernels"
tags: ["kernels"]
---

# List registered kernel manifests (PTX omitted)

`GET /kernels`

FEATURE-GATED: only mounted under `--features
kernel-registry-api`. Returns `503
kernel_registry_not_configured` when the feature is on but
`TENSOR_WASM_API_KERNEL_HMAC_KEY` is unset.

Lists manifests in unspecified order; PTX text is omitted (use
`GET /kernels/{name}/{version}` to fetch source). Any
authenticated tenant may list. `limit` is clamped to 1000
server-side; the response echoes the effective `offset` /
`limit`.

## Query parameters

- `offset` integer
- `limit` integer

## Headers

- `X-TensorWasm-Tenant` integer

## Response `200`

Page of manifests with the effective pagination echoed.

- ListKernelsResponse — Body of `GET /kernels`. Mirrors `tensor_wasm_api::kernels::ListKernelsResponse`. PTX text is omitted from listed manifests.
  - `manifests` KernelManifest[], required
    - `name` string, required — Stable kernel name (e.g. `matmul.f32`).
    - `version` string, required — SemVer-style version (e.g. `1.0.0`).
    - `sm_version` integer, required — CUDA compute capability the PTX targets (e.g. 80 for sm_80).
    - `digest` integer[], required — BLAKE3 hash of the PTX text (32 bytes).
    - `signature` integer[], required — HMAC-SHA256 tag over the canonical signed bytes (32 bytes).
    - `published_unix_ms` integer, required — Wall-clock publish timestamp (Unix millis).
    - `publisher` string, required — Publisher identifier (typically a tenant id or signing-key id).
  - `offset` integer, required — Effective offset the handler used (echoes the query param).
  - `limit` integer, required — Effective limit the handler used after server-side clamping (max 1000).

## Other responses

- `401` — Missing or unrecognised bearer token
- `429` — Per-token QPS + burst exceeded. The `Retry-After` header carries the wait in integer seconds (RFC 9110 §10.2.3).
- `503` — Kernel registry routes are mounted but the backing registry is not configured: `TENSOR_WASM_API_KERNEL_HMAC_KEY` is unset, so the handler returns `503 kernel_registry_not_configured`. (The publish path can also surface `kernel_registry_storage_error` here on a backend I/O failure.)

---

[API](https://skmtc.dev/craton-co/apis/tensorwasm-http-api.md) · [All operations](https://skmtc.dev/craton-co/apis/tensorwasm-http-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/craton-co/tensorwasm-http-api/revisions/d363e13d8640/schema)
