---
title: "Raw logits from a single prefill-only forward pass"
method: POST
path: "/v1/logits"
---

# Raw logits from a single prefill-only forward pass

`POST /v1/logits`

Runs one non-autoregressive forward pass over pre-tokenized input and
returns the raw LM-head logits. This is NOT the OpenAI generative
logprobs semantics — no sampling or decode loop runs. Intended for
on-target accuracy metrics (perplexity, MMLU, MMMU). Input is
pre-tokenized (`input_ids`); the server does not tokenize text here.

## Request body

- ForwardLogitsRequest
  - `model` string, required
  - `input_ids` integer[], required — Pre-tokenized token ids; the caller owns any special tokens.
  - `last_only` boolean — false (default): every position. true: last token's row only.
  - `top_n` integer — Keep only the top-N logits per row (default 20). 0 returns the full vocabulary per row.
  - `nctx` integer
  - `ngl` integer
  - `compute` string

## Response `200`

Successful response

- ForwardLogitsResponse
  - `model` string
  - `n_rows` integer
  - `vocab_size` integer
  - `top_n` integer — Effective top-N used (0 means full vocabulary per row).
  - `rows` object[] — One entry per emitted position.
    - `token_ids` integer[] — Token id per logit; omitted when top_n is 0 (column index is the token id).
    - `logits` number[] — top_n > 0 — top logits sorted descending; top_n == 0 — full vocab in token-id order.

---

[API](https://skmtc.dev/qualcomm/apis/geniex-server.md) · [All operations](https://skmtc.dev/qualcomm/apis/geniex-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qualcomm/geniex-server/revisions/47b5a34b747b/schema)
