> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mithunai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List the questions nobody could answer

> The questions your assistants declined, newest first, so you can see which gaps your content should close. Question text only: never the answer or who asked.

Each row is a question that was followed by an abstained answer: the assistant said it could not answer from its sources rather than guess. See [How answers work](/concepts/how-answers-work).

Rows carry the question text but never the answer, the citations, or who asked. Identical questions are not grouped. `total` counts every abstained answer in the window, even when `limit` returns fewer rows.

Because this returns other people's questions, it requires the owner or admin role. Editors, members and dataset operators receive `403`, even though editors can read [usage counts](/administration/analytics).

<ParamField query="window" type="string" default="30d">
  Trailing window ending now: `7d`, `30d` or `90d`. Any other value returns `400`.
</ParamField>

<ParamField query="assistant_id" type="string">
  Limit the results to one assistant (UUID). A malformed ID returns `400`; an ID from another
  organization matches nothing.
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Maximum rows to return, from 1 to 200. ASCII digits only.
</ParamField>

## Response

<ResponseField name="window" type="object" required>
  The window searched.

  <Expandable title="properties">
    <ResponseField name="start" type="string" required>
      Inclusive start, ISO 8601 in UTC.
    </ResponseField>

    <ResponseField name="end" type="string" required>
      Exclusive end, ISO 8601 in UTC.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="total" type="integer" required>
  How many abstained answers match, regardless of `limit`. A row whose question is no longer stored
  is counted here but not listed.
</ResponseField>

<ResponseField name="questions" type="object[]" required>
  Unanswered questions, newest first.

  <Expandable title="properties">
    <ResponseField name="question" type="string" required>
      The question text, cut to at most 500 characters.
    </ResponseField>

    <ResponseField name="truncated" type="boolean" required>
      `true` when `question` was cut.
    </ResponseField>

    <ResponseField name="asked_at" type="string" required>
      When the question was asked, ISO 8601 in UTC.
    </ResponseField>

    <ResponseField name="assistant_id" type="string" required>
      The assistant that was asked.
    </ResponseField>

    <ResponseField name="conversation_id" type="string" required>
      The conversation the question belongs to.
    </ResponseField>

    <ResponseField name="channel" type="string | null" required>
      The kind of caller that asked: `user`, `service` or `widget`. `null` when not recorded.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl --request GET "$MITHUNAI_URL/arukz/api/v1/analytics/unanswered?window=7d&limit=20" \
    --header "Authorization: Bearer $MITHUNAI_API_KEY"
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import os, requests

  response = requests.get(
      f"{os.environ['MITHUNAI_URL']}/arukz/api/v1/analytics/unanswered",
      headers={"Authorization": f"Bearer {os.environ['MITHUNAI_API_KEY']}"},
      params={"window": "7d", "limit": 20},
      timeout=60,
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const params = new URLSearchParams({ window: '7d', limit: '20' })
  const response = await fetch(
    `${process.env.MITHUNAI_URL}/arukz/api/v1/analytics/unanswered?${params}`,
    {
      headers: { Authorization: `Bearer ${process.env.MITHUNAI_API_KEY}` },
    },
  )
  console.log(await response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "window": {
      "start": "2026-09-17T10:00:03.214557+00:00",
      "end": "2026-09-24T10:00:03.214557+00:00"
    },
    "total": 104,
    "questions": [
      {
        "question": "Does the SDK support retries with exponential backoff?",
        "truncated": false,
        "asked_at": "2026-09-24T09:12:48.331907+00:00",
        "assistant_id": "5b1e9c2a-7d4f-4e3b-9a61-0c8f2d7e4a13",
        "conversation_id": "e2f94b17-6c0d-4a8e-b3f5-91d7c2a60e48",
        "channel": "widget"
      },
      {
        "question": "How do I rotate the signing key for webhooks?",
        "truncated": false,
        "asked_at": "2026-09-23T16:40:05.018224+00:00",
        "assistant_id": "5b1e9c2a-7d4f-4e3b-9a61-0c8f2d7e4a13",
        "conversation_id": "7a0c3e58-d19b-4f62-8e47-b5c1f9a2d306",
        "channel": "user"
      }
    ]
  }
  ```

  ```json 400 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "validation_error", "message": "'window' must be one of 7d, 30d, 90d." }
  ```

  ```json 403 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "authorization_error", "message": "You do not have permission to perform this action." }
  ```
</ResponseExample>
