Title: %D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA %D0%B7%D0%B0 API %E2%80%94 LLM EU Canonical: https://llmeu.com/bg/docs/api/ Markdown mirror: https://llmeu.com/bg/docs/api.md Machine-readable: https://llmeu.com/llms.txt (index) - https://llmeu.com/llms-full.txt (full catalogue) - https://llmeu.com/llms-catalogue.json %D0%9F%D1%8A%D1%80%D0%B2%D0%B8 %D1%81%D1%82%D1%8A%D0%BF%D0%BA%D0%B8 - [%D0%91%D1%8A%D1%80%D0%B7 %D1%81%D1%82%D0%B0%D1%80%D1%82](/bg/docs/quickstart/) - [%D0%9A%D0%BE%D0%BD%D0%B7%D0%BE%D0%BB%D0%B0](/bg/docs/console/) - [%D0%9C%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F](/bg/docs/migration/) - [%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA %D0%B7%D0%B0 API](/bg/docs/api/) %D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA - [%D0%A3%D0%B4%D0%BE%D1%81%D1%82%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B2%D0%B0%D0%BD%D0%B5](/bg/docs/authentication/) - [%D0%9A%D1%80%D0%B0%D0%B9%D0%BD%D0%B8 %D1%82%D0%BE%D1%87%D0%BA%D0%B8](/bg/docs/endpoints/) - [%D0%93%D1%80%D0%B5%D1%88%D0%BA%D0%B8](/bg/docs/errors/) - [%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F %D0%BD%D0%B0 %D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%82%D0%B0](/bg/docs/rate-limits/) - [%D0%9F%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE %D0%BF%D1%80%D0%B5%D0%B4%D0%B0%D0%B2%D0%B0%D0%BD%D0%B5](/bg/docs/streaming/) - [%D0%9F%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B8](/bg/docs/policies/) - [%D0%9C%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%B0%D0%BD%D0%B5 %D0%B8 %D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0](/bg/docs/routing/) - [%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 %D0%BD%D0%B0 %D0%B4%D0%B0%D0%BD%D0%BD%D0%B8%D1%82%D0%B5 %D0%B8 %D1%80%D0%B5%D0%B3%D0%B8%D0%BE%D0%BD%D0%B8](/bg/docs/residency/) - [%D0%94%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%81%D1%82%D0%B2%D0%B0 %D0%B8 %D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0](/bg/docs/evidence/) - [%D0%A1%D1%8A%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D0%BE%D1%81%D1%82 %D1%81 OpenAI](/bg/docs/openai-compat/) %D0%95%D0%BA%D1%81%D0%BF%D0%BB%D0%BE%D0%B0%D1%82%D0%B0%D1%86%D0%B8%D1%8F - [%D0%A1%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D1%82%D0%B5%D0%BB%D0%BD%D0%BE %D1%85%D0%BE%D1%81%D1%82%D0%B2%D0%B0%D0%BD%D0%B5](/bg/docs/self-hosting/) # %D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA %D0%B7%D0%B0 API One base URL, one bearer token, two surfaces. ## Chat completions Standard fields are accepted: `model`, `messages`, `temperature`, `top_p`, `max_tokens`, `stream`, `stop`, `presence_penalty`, `frequency_penalty`, `user`, `tools`, `tool_choice`, `response_format`, `seed`. ## LLM EU extensions A namespaced `llmeu` object in the request body. Official SDKs ignore unknown fields, so adding it never breaks a client. ``` "llmeu": { "residency": "eu-hosted" | "eu-owned" | "de" | "any", "task": "general" | "coding" | "reasoning" | "translation" | "vision" | "cheap" | "legal-draft" | "rag", "retention": "zero", "data_class": "public" | "internal" | "confidential" | "restricted", "policy_id": "uuid", "max_usd_per_1m": 0.5, "allow_partners": false } ``` Only zero retention is implemented. Policies can store 24h, 7d or 30d choices; this does not enable storage. A request exceeding the policy first returns 403 retention_exceeds_policy; an allowed effective retention other than zero returns 501 retention_not_implemented. ## Response Standard OpenAI shape, plus: ``` { "choices": [...], "usage": {...}, "llmeu": { "trace_id": "%E2%80%A6", "model_used": "%E2%80%A6", "model_version": "%E2%80%A6", "provider": "%E2%80%A6", "endpoint_id": "%E2%80%A6", "inference_region": "de-fra", "sovereignty_class": "eu_owned_eu_operated", "route_reason": "auto routing for task \"coding\" + residency eu-hosted + %E2%80%A6", "policy_id": "%E2%80%A6", "retention": "zero", "cost_estimate_usd": 0.000123 } } ``` ## %D0%93%D1%80%D0%B5%D1%88%D0%BA%D0%B8 The complete code table, with the status, the type and what to do about each one, is at[%D0%93%D1%80%D0%B5%D1%88%D0%BA%D0%B8](/bg/docs/errors/) %E2%80%94 rendered from the same source the API uses. ## %D0%9A%D1%80%D0%B0%D0%B9%D0%BD%D0%B8 %D1%82%D0%BE%D1%87%D0%BA%D0%B8 Every mounted route, with the credential it needs, is at [%D0%9A%D1%80%D0%B0%D0%B9%D0%BD%D0%B8 %D1%82%D0%BE%D1%87%D0%BA%D0%B8](/bg/docs/endpoints/). ``` GET https://api.llmeu.com/platform/v1/me GET https://api.llmeu.com/platform/v1/api-keys POST https://api.llmeu.com/platform/v1/api-keys DELETE https://api.llmeu.com/platform/v1/api-keys/{id} GET https://api.llmeu.com/platform/v1/traces?limit=50 GET https://api.llmeu.com/platform/v1/traces/{id} GET https://api.llmeu.com/platform/v1/usage?days=30 GET https://api.llmeu.com/platform/v1/policies POST https://api.llmeu.com/platform/v1/policies PUT https://api.llmeu.com/platform/v1/policies/{id} ```