## 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 call from a partner's backend, and the answer rendered in their own product with the citations as footnotes.

## Response fields

`result`·`string`

The outcome: `ok`, `no_context`, or `llm_unavailable`.

`answer`·`string`

The grounded answer, `null` on `no_context` and on `llm_unavailable`.

`citations`·`array`

The sources the model actually cited, empty unless `result` is `ok`.

`citations[].n`·`integer`

The marker number used for that source in the answer text.

`citations[].title`·`string`

The source document's title, or `Untitled` when it has none.

`citations[].url`·`string`

The source document's URL, `null` for content with no address such as pushed or memory posts.

`format`·`string`

Always `markdown`.

## Reading `result`

| 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`. |

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`](/content/docs/white-label/query-customer/index.html) accept the token in either `Authorization: Bearer <token>` or the bare `Authorization: <token>` form. Everything else in this guide requires the `Bearer` prefix.
