# info.description
OpenAI-compatible proxy API for Gonka GPU network

# components.schemas.ChatCompletionResponse.example.choices[].message.content
Packets hum in night,
Consensus finds steady light,
Systems breathe as one.

# components.schemas.ChatCompletionResponse.example.choices[].message.annotations[].url_citation.content
SearXNG is a free internet metasearch engine...

# components.schemas.ChatCompletionRequest.properties.plugins.description
Optional per-request plugin list. Reserved Gonka plugin ids are `response-healing`, `web`, `file-parser` (PDF Inputs), and `privacy-sanitization`.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.enabled.description
Set to false to disable the response-healing plugin for this request. Defaults to true.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.id.description
Enable web-search grounding for this request.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.enabled.description
Set to false to disable web search for this request when the plugin object is present.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.engine.description
OpenRouter-compatible web engine hint. In v1, omitted `engine` and explicit `engine:"exa"` are supported. Other values are rejected.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.max_results.description
Maximum number of web results for the logical request-level web-search operation. Internal child-search allocation remains server-managed.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.include_domains.description
Optional allowlist of domains applied as shared filters across the logical web-search operation.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.exclude_domains.description
Optional denylist of domains applied as shared filters across the logical web-search operation.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.search_prompt.description
Proxy-local planning and grounding hint for web search. It never enables search by itself and is not forwarded verbatim to the Go service or Exa.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].description
OpenRouter-style PDF Inputs plugin. Use `plugins:[{id:"file-parser"}]` to override gonka-proxy PDF engine selection for this request.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.id.description
Enable the PDF Inputs override for this request. PDF file inputs also work without this plugin; use it only when you need to force a specific PDF engine.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.pdf.description
Optional PDF Inputs override. `pdf-text` parses supported PDF URLs or data URLs locally and may append `message.annotations[]` in non-streaming responses. `native` forwards the original PDF file upstream unchanged. Missing `engine` means server-managed auto selection. Unsupported engines return `pdf_engine_not_supported`; explicit `native` may return `pdf_native_unavailable`.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.pdf.properties.engine.description
PDF parser engine. Use `pdf-text` for local extraction from supported `http/https` URLs or `data:application/pdf;base64,...`, or `native` to forward the original PDF file upstream unchanged.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.id.description
Enable privacy-sanitization plugin with the default server-managed privacy profile.

# components.schemas.ChatCompletionRequest.properties.plugins.items.anyOf[].properties.mode.description
Supported privacy modes: redact, tokenize, block.

# components.schemas.ChatCompletionRequest.properties.web_search_options.description
OpenRouter-compatible request-level web search options. This object never enables search. `web_search_options.search_context_size` is rejected in v1; other members are unsupported and must not change runtime behavior.

# components.schemas.ChatCompletionRequest.example.messages[].content
Write a short haiku about distributed systems.

# components.schemas.WhoamiResponse.properties.data.properties.user.properties.emailMasked.description
Masked username part of email (domain omitted)

# components.schemas.PublicPricingResponse.properties.data.properties.updatedAt.description
Timestamp of the pricing-service snapshot used to compute this pricing payload

# components.schemas.PublicPricingResponse.properties.data.properties.rate.properties.usdPerComputeUnit.description
USD price for one atomic GNK unit (one compute unit / ngonka)

# components.schemas.PublicPricingResponse.properties.data.properties.rate.properties.usdPer1MComputeUnits.description
USD price for 1,000,000 atomic GNK units (compute units)

# components.schemas.PublicPricingResponse.properties.data.properties.models.items.properties.usdPer1MTokens.properties.network.description
Network-side USD price for 1,000,000 tokens at the current atomic-unit rate

# components.schemas.PublicPricingResponse.properties.data.properties.models.items.properties.usdPer1MTokens.properties.platformFee.description
Platform fee USD amount for 1,000,000 tokens

# components.schemas.PublicPricingResponse.properties.data.properties.models.items.properties.usdPer1MTokens.properties.total.description
Primary user-facing USD price for 1,000,000 tokens

# components.schemas.PublicModelsActivityResponse.properties.data.properties.window.properties.from.description
ISO 8601 timestamp in UTC (date or date-time input normalized to date-time).

# components.schemas.PublicModelsActivityResponse.properties.data.properties.window.properties.to.description
ISO 8601 timestamp in UTC (date or date-time input normalized to date-time).

# components.schemas.DashboardModelsEnrichedModel.properties.available.description
Whether model is currently available on-chain

# components.schemas.DashboardModelsEnrichedModel.properties.participantCount.description
Number of network participants hosting this model

# components.schemas.DashboardModelsEnrichedModel.properties.hfMetadata.description
HuggingFace model metadata (null if unavailable)

# paths./api/v1/dashboard/models.get.description
Get list of available Gonka network models with HuggingFace metadata (downloads, likes, context length).

# paths./api/v1/public/models/{modelId}/activity.get.description
Get daily activity for a model (tokens only)

# paths./api/v1/public/models/{modelId}/activity.get.parameters[].description
Window start in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/activity.get.parameters[].description
Window end in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/activity.get.parameters[].description
Model identifier. URL-encode `/` in path segment (for example `qwen%2Fqwen3-235b-a22b-instruct-2507-fp8`).

# paths./api/v1/public/models/{modelId}/performance.get.parameters[].description
Window start in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/performance.get.parameters[].description
Window end in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/performance.get.parameters[].description
Optional aggregation bucket. Supported values are `hour` and `day`.

# paths./api/v1/public/models/{modelId}/performance.get.parameters[].description
Model identifier. URL-encode `/` in path segment (for example `qwen%2Fqwen3-235b-a22b-instruct-2507-fp8`).

# paths./api/v1/public/models/{modelId}/performance/{metric}.get.description
Get model performance details for a metric

# paths./api/v1/public/models/{modelId}/performance/{metric}.get.parameters[].description
Window start in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/performance/{metric}.get.parameters[].description
Window end in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/performance/{metric}.get.parameters[].description
Optional aggregation bucket. Supported values are `hour` and `day`.

# paths./api/v1/public/models/{modelId}/performance/{metric}.get.parameters[].description
Model identifier. URL-encode `/` in path segment (for example `qwen%2Fqwen3-235b-a22b-instruct-2507-fp8`).

# paths./api/v1/public/models/{modelId}/uptime.get.description
Get model reliability metrics (uptime + finish reasons)

# paths./api/v1/public/models/{modelId}/uptime.get.parameters[].description
Window start in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/uptime.get.parameters[].description
Window end in ISO 8601 date or datetime format.

# paths./api/v1/public/models/{modelId}/uptime.get.parameters[].description
Optional aggregation bucket. Supported values are `hour` and `day`.

# paths./api/v1/public/models/{modelId}/uptime.get.parameters[].description
Model identifier. URL-encode `/` in path segment (for example `qwen%2Fqwen3-235b-a22b-instruct-2507-fp8`).

# paths./api/v1/public/pricing.get.description
Get computed per-model pricing in USD ($/1M tokens)

# paths./api/v1/whoami.get.description
Returns safe account information for the provided API key. Read-only: does not update lastUsed or enforce balance/limits.

# paths./v1/chat/completions.post.description
Create a chat completion (OpenAI-compatible). `stream=false` returns JSON, `stream=true` returns `text/event-stream` (SSE). Explicit web search is supported for authenticated requests via `plugins:[{id:"web"}]` or `model:"...:online"`. Streaming web-search requests reject `X-Idempotency-Key` with `400 invalid_request_error`; use idempotency keys only for non-streaming safe retries. In v1, omitted `plugins[].engine` and explicit `engine:"exa"` are both supported; other web engines are rejected with `400 invalid_request_error`. When both `:online` and an explicit `web` plugin are present, the explicit plugin owns search options. `include_domains` and `exclude_domains` are supported on the `web` plugin as shared domain filters. `max_results` is the logical maximum number of web results for the full request; internal child-search allocation remains server-managed. `search_prompt` is a proxy-local planning and grounding hint and is not forwarded verbatim to the Go service or Exa. `web_search_options` never enables search; `web_search_options.search_context_size` is rejected, and other members are unsupported in v1. Non-streaming web-search responses may include `message.annotations[]`; streaming web-search responses remain ordinary chat SSE chunks without custom citation events. PDF file inputs work without plugins; `file-parser` is an optional PDF Inputs override for `pdf.engine` (`native` | `pdf-text`). `pdf-text` parses supported `http/https` URLs or `data:application/pdf;base64,...` locally and may append `message.annotations[]` in non-streaming responses. `native` forwards the original PDF file upstream unchanged and may return `400 invalid_request_error` with code `pdf_native_unavailable` when native PDF processing is unavailable for the selected model. Also supports `response-healing` and `privacy-sanitization` (`mode`: `redact` | `tokenize` | `block`).

# paths./v1/chat/completions.post.parameters[].description
Optional idempotency key for safe non-streaming retries. Streaming web-search requests reject this header with 400 invalid_request_error.

# paths./v1/chat/completions.post.responses.200.description
Non-streaming JSON response (`stream=false`) or SSE stream (`text/event-stream`) when `stream=true`.

# paths./v1/chat/completions.post.responses.200.content.text/event-stream.schema.description
Server-Sent Events stream. Each `data:` frame contains a chat completion chunk JSON object; stream ends with `data: [DONE]`.

# paths./v1/models.get.description
Returns a list of available models with metadata including pricing. Requires API key authentication.