RAG White-Label

Ask a question for one customer

One REST request with the customer's token returns a concise grounded answer plus citations, drawn only from that customer's index.

Raw markdown guide for AI
Guide contents

/question hands you one concise grounded answer with citations, drawn from that customer's own index plus anything you indexed organisation-wide for all customers (see Shared content across all customers).

Reach for it when the result goes straight into your UI, or when you are feeding an agent and would rather spend a few hundred tokens than the user's full context. When you want the raw passages for your own model instead, use GET /context.

Concise grounded answer

One short paragraph plus citations, cheap enough to render directly and small enough to keep an agent's context window intact:

The default response stays exactly as shown above. To receive the answer in the same structured shape as GET /context, add response_format=structured:

The structured response has zero or one result and never has a top-level result. When present, its content is the answer, position is null, rank is 1, score is null, and content_sha is the answer's SHA-256 digest. sources contains the cited documents and their citation numbers and connection metadata. No context and a 503 model failure both return markdown: null and empty results in this format; the HTTP status distinguishes the model failure. If response_format is absent or has any value other than structured, /question returns the existing result, answer, citations, and format payload unchanged.

The call from a partner's backend, and the answer rendered in their own product with the citations as footnotes.

Response fields

resultstring
The outcome: ok, no_context, or llm_unavailable.
answerstring
The grounded answer, null on no_context and on llm_unavailable.
citationsarray
The sources the model actually cited, empty unless result is ok.
citations[].ninteger
The marker number used for that source in the answer text.
citations[].titlestring
The source document's title, or Untitled when it has none.
citations[].urlstring
The source document's URL, null for content with no address such as pushed or memory posts.
formatstring
Always markdown.

The fields above describe the default response.

Structured response:

Field Type Description
format string Always structured.
query string The question used to generate the answer.
markdown string or null The answer as markdown, or null when no answer was generated.
results array Zero or one answer result.
results[].content string The grounded answer.
results[].position null Always null.
results[].rank integer Always 1.
results[].score null Always null.
results[].content_sha string SHA-256 digest of the answer.
results[].sources array The sources cited by the answer.
results[].sources[].citation integer The marker number used for that source in the answer.
results[].sources[].uid string The source document's public identifier.
results[].sources[].title string The source document's title.
results[].sources[].url string The source document's URL, or null when it has none.
results[].sources[].source_updated_at string When the source document was last updated, in ISO 8601 format.
results[].sources[].connection object The source connection's uid, type, name, and absolute logo_url.

Reading result in the default response

Value Meaning
ok An answer was grounded in that customer's content.
no_context Nothing in that customer's index was relevant. answer is null.
llm_unavailable The model call failed. Served with a 503.

Asking one customer's token about another customer's content returns no_context in the default response, or markdown: null and empty results in the structured response; that is the isolation boundary doing its job.

Rate limit: 2 requests per 10 seconds, per token. Each request costs an LLM call of its own, which is why it is tighter than /context.

Health check for a stored token: GET /api/v1/ping with the same header.

/question and /context accept the token in either Authorization: Bearer <token> or the bare Authorization: <token> form. Everything else in this guide requires the Bearer prefix.