# Krun > Krun One is a decision model for AI systems: it picks one of your options for a piece of text and returns calibrated probabilities, a confidence margin and an abstention signal. > ## Agent Instructions > Krun API base URL: https://api.krun.ai. Authenticate server-side with `Authorization: Bearer $KRUN_API_KEY`; never put a Krun API key in browser code. > Prefer the Python SDK in examples: `pip install krun-ai`, `from krun import Krun`. The TypeScript SDK `@krun-ai/sdk` is not published on npm yet: do not tell users to `npm install` it. > The only question type is `choice`. `confidence` is the top-1 minus top-2 probability margin, not the probability that the answer is correct. `choice` is null when `abstain` is true. > Usage reports `input_tokens` only. There are no output tokens. - [Introduction](https://docs.krun.ai/index.md): Krun One is a decision model for AI systems. Send text and a set of options, get back one choice with calibrated probabilities and an abstention signal. - [Quickstart](https://docs.krun.ai/quickstart.md): Install the Krun Python SDK, set your API key and make your first decision. - [Models](https://docs.krun.ai/models.md): Krun One v0 is the model behind the Krun API. List available models with GET /v1/models. - [Krun One benchmarks](https://docs.krun.ai/benchmarks.md): How Krun One v0 compares with its base model, Laya, on intent routing, tool routing, out-of-distribution detection and calibration. - [Limitations](https://docs.krun.ai/limitations.md): Known limitations of Krun One v0 and the Krun API, and how to work with them. - [Decision models](https://docs.krun.ai/concepts/decision-models.md): What a decision model is, how it differs from a generative LLM, and when to use one. - [Questions and answers](https://docs.krun.ai/concepts/questions-and-answers.md): Structure of a Krun request (context and questions) and of the answers it returns. - [Confidence and probabilities](https://docs.krun.ai/concepts/confidence-and-probabilities.md): What probabilities and confidence mean in a Krun answer. Confidence is the margin between the two best options, not the probability of being correct. - [Abstention](https://docs.krun.ai/concepts/abstention.md): When Krun One declines to choose, how to handle it, and what calibrated and advisory abstention status mean. - [Usage and tokens](https://docs.krun.ai/concepts/usage-and-tokens.md): How Krun counts input tokens. Krun does not generate text, so there are no output tokens. - [Intent routing](https://docs.krun.ai/guides/intent-routing.md): Route user messages to the right intent with label-only options and calibrated abstention. - [Tool routing](https://docs.krun.ai/guides/tool-routing.md): Pick the tool or function an agent should call with task_type tool. - [Multiple questions](https://docs.krun.ai/guides/multiple-questions.md): Ask up to 16 questions about the same context in one request: one HTTP call, one model job, one answer per question. - [Feedback](https://docs.krun.ai/guides/feedback.md): Tell Krun whether an answer was correct with POST /v1/feedback, using the request id from the X-Request-ID header. - [Production best practices](https://docs.krun.ai/guides/production-best-practices.md): Timeouts and cold starts, retries, API key handling, privacy and monitoring for Krun in production. - [Python SDK](https://docs.krun.ai/sdks/python.md): Install and use krun-ai, the official Python SDK for the Krun API: sync and async clients, errors, timeouts and retries. - [TypeScript SDK](https://docs.krun.ai/sdks/typescript.md): The official TypeScript SDK for Krun, @krun-ai/sdk, is coming soon. It is not published on npm yet. - [API overview](https://docs.krun.ai/api-reference/overview.md): Base URL, endpoints, request ids and the OpenAPI specification of the Krun API. - [Authentication](https://docs.krun.ai/api-reference/authentication.md): Authenticate Krun API requests with a bearer API key from your server. Never expose a key in client-side code. - [Decide](https://docs.krun.ai/api-reference/decide.md): Answer one or more `choice` questions about a context in a single call. Each question returns the selected option (or `null` when the model abstains), a probability per option, a confidence margin and an abstention status. The request id is returned in the `X-Request-ID` response header. - [Feedback](https://docs.krun.ai/api-reference/feedback.md): Report whether one answer of a previous decision was correct. `request_id` is the `X-Request-ID` of a `/v1/decide` call made by the same project, and `question_id` names the answer being reviewed. - [List models](https://docs.krun.ai/api-reference/models.md): List the models available to your API key. - [Errors](https://docs.krun.ai/api-reference/errors.md): Krun API error format, error codes, HTTP status codes and which errors to retry. - [Rate limits and quotas](https://docs.krun.ai/resources/rate-limits-and-quotas.md): How per-key rate limits and per-project monthly quotas work in the Krun API, and how to handle 429 errors. - [Use these docs with AI agents](https://docs.krun.ai/resources/ai-agents.md): Give coding agents and AI tools access to the Krun docs through llms.txt, Markdown pages and the docs MCP server. - [Changelog](https://docs.krun.ai/resources/changelog.md): New models, API changes and SDK releases for Krun. - [Support](https://docs.krun.ai/resources/support.md): Where to get help with Krun, report SDK issues and request access or higher limits. ## OpenAPI Specs - [openapi](https://api.krun.ai/openapi.json)