Assistant

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

Ask the documentation assistant (public, no session)

POST
/public/docs-assistant/ask

docs-site assistant. Answers a question ONLY from the public documentation: the question is matched against the docs full-text index (Postgres, per-language stemming; the English corpus is searched when the asked language has no match) and, when sections pass the relevance threshold, the LLM (Bulutistan LLMaaS) writes a short answer from those sections alone with [n] markers. citations are the cited sections' SITE-RELATIVE docs URLs (/docs/..., /tr/docs/...#anchor) -- always taken from the index, never from model output. mode: none = nothing relevant in the docs (found: false; the model is NOT called); retrieval = relevant sections, no generated text (no LLM configured, the daily token budget is spent, or the model failed) -- the citations with snippets are the answer; generated = model answer (found: false when the model said the context does not answer it or cited nothing). Auth: PUBLIC -- no session; the edge does not introspect and drops the Cookie and Authorization headers. CORS: only the configured docs-site origins (PUBLICCLOUD_ASSISTANT_DOCS_ORIGINS), POST + Content-Type, no credentials. Validation: question 3..500 characters, lang one of en/tr/de/az -> 422. Abuse/cost: per client IP rate limit (429 + Retry-After); a global daily LLM token budget degrades to retrieval. The question text is not stored or logged. Feature flag: 404 while the assistant service is disabled (PUBLICCLOUD_ASSISTANT_ENABLED) or the edge has no EDGE_ASSISTANT_URL. Async & state: Synchronous; changes nothing (only the global token counter). Errors: 404; 422; 429; 500; 503 details.reason=DOCS_INDEX_EMPTY before a corpus is loaded. Idempotency/Concurrency: Safe to retry; no idempotency key.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Request Body

application/json
  1. body

-- a question to the documentation assistant.

question*string

The question, in any of the docs languages. Not stored or logged.

Length3 <= length <= 500
lang?DocsAssistantLang

Language of the docs page the question is asked from (default en); searched first and answered in.

Default"en"
Value in"en""tr""de""az"

Response Body

The answer (or "not found") with its citations.

application/json
  1. response
found*boolean

False when the documentation does not answer the question.

mode*DocsAssistantMode

none = nothing relevant in the docs (model not called); retrieval = relevant sections only, no generated text; generated = model answer from the sections.

Value in"none""retrieval""generated"
answer*|

Plain-text answer with [n] markers (no links or HTML); null unless mode=generated and found.

citations*array<>
curl -X POST "https://example.com/public/docs-assistant/ask" \  -H "Content-Type: application/json" \  -d '{    "question": "string"  }'
{  "found": true,  "mode": "none",  "answer": "string",  "citations": [    {      "n": 1,      "title": "string",      "heading": "string",      "url": "string",      "snippet": "string"    }  ]}