# Get assistant conversations (/api/analytics/assistant-conversations)

<!-- agent-signals: reading_time_min: 5 · est_tokens: 2532 · updated: 2026-09-23 -->
Related: [Get feedback](/api/analytics/feedback.md), [Get feedback by page](/api/analytics/feedback-by-page.md), [Get assistant conversation thread](/api/analytics/assistant-thread.md), [Get assistant caller stats](/api/analytics/assistant-caller-stats.md), [Get search queries](/api/analytics/searches.md), [Get page views](/api/analytics/views.md)

## Usage [#usage]

Use this endpoint to export AI assistant conversation history from your documentation. Each conversation includes the user query, assistant response, sources cited, resolution status, and query category.

Paginate through results using the `cursor` parameter returned in the response. Continue fetching while `hasMore` is `true`.

## Filtering [#filtering]

Filter conversations by date range using `dateFrom` and `dateTo` parameters.

## Conversation data [#conversation-data]

Each row represents one user turn in a conversation. A conversation with multiple back-and-forth messages produces multiple rows that share a `conversationId`.

Each row includes:

* **query**: The user's question.
* **response**: The assistant's answer. For clarifying-question turns, this is the follow-up question the assistant asked the user.
* **responseType**: Either `answer` or `clarifying_question`. `clarifying_question` means the assistant asked the user a follow-up question instead of answering. Defaults to `answer` when not present.
* **sources**: Pages referenced in the response, with title and URL.
* **resolutionStatus**: Whether the assistant successfully answered this turn. Either `answered` or `unanswered`. Computed per row, so a single conversation can contain both statuses. Use this field to track and analyze documentation gaps surfaced by user questions the assistant could not resolve.
* **timestamp**: When the user sent the message that started this turn. Rows in the same conversation have different timestamps.
* **queryCategory**: Classification of the query type, if available.
* **pageUrl**: Full URL of the documentation page where the conversation started, or `null` if no page path is available. Use this field to attribute conversations to a specific page.

## Rate limits [#rate-limits]

This endpoint allows 100 requests per organization per hour. All analytics endpoints share this limit.

`GET /v1/analytics/{projectId}/assistant`

Returns paginated AI assistant conversation history

Authenticate with an admin API key.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "schema": {
        "type": "string",
        "description": "Your project ID. Can be copied from the [API keys](https://app.mintlify.com/settings/organization/api-keys) page in your dashboard."
      },
      "required": true,
      "name": "projectId",
      "in": "path"
    },
    {
      "schema": {
        "type": "string",
        "description": "Date in ISO 8601 or YYYY-MM-DD format",
        "example": "2024-01-01"
      },
      "required": false,
      "name": "dateFrom",
      "in": "query"
    },
    {
      "schema": {
        "type": "string",
        "description": "Date in ISO 8601 or YYYY-MM-DD format. `dateTo` is an exclusive upper limit. Results include dates before, but not on, the specified date.",
        "example": "2024-01-01"
      },
      "required": false,
      "name": "dateTo",
      "in": "query"
    },
    {
      "schema": {
        "type": "number",
        "minimum": 1,
        "maximum": 1000,
        "default": 100,
        "description": "Max results per page"
      },
      "required": false,
      "name": "limit",
      "in": "query"
    },
    {
      "schema": {
        "type": "string",
        "format": "ulid",
        "description": "Pagination cursor (ULID format)"
      },
      "required": false,
      "name": "cursor",
      "in": "query"
    }
  ],
  "responses": {
    "200": {
      "description": "Conversation data with pagination",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "conversations": {
                "type": "array",
                "description": "List of assistant conversations.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique conversation identifier."
                    },
                    "timestamp": {
                      "type": "string",
                      "description": "Timestamp of the user message that started this turn."
                    },
                    "query": {
                      "type": "string",
                      "description": "The user's question to the assistant."
                    },
                    "response": {
                      "type": "string",
                      "description": "The assistant's response. For clarifying-question turns, this is the question the assistant asked the user."
                    },
                    "responseType": {
                      "type": "string",
                      "enum": [
                        "answer",
                        "clarifying_question"
                      ],
                      "description": "Type of response returned to the user. `answer` is a final answer. `clarifying_question` means the assistant asked the user a follow-up question instead of answering. Defaults to `answer` when not present."
                    },
                    "sources": {
                      "type": "array",
                      "description": "Documentation pages referenced in the response.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "Title of the referenced documentation page."
                          },
                          "url": {
                            "type": "string",
                            "description": "URL of the referenced documentation page."
                          }
                        },
                        "required": [
                          "title",
                          "url"
                        ]
                      }
                    },
                    "resolutionStatus": {
                      "type": "string",
                      "enum": [
                        "answered",
                        "unanswered"
                      ],
                      "description": "Whether the assistant successfully answered this turn. Computed per row: `unanswered` when the assistant marked the question as not covered by the available documentation, otherwise `answered`."
                    },
                    "queryCategory": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Auto-assigned category grouping for the conversation, if applicable."
                    },
                    "pageUrl": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Full URL of the documentation page where the conversation started. Null if no page path was captured."
                    }
                  },
                  "required": [
                    "id",
                    "timestamp",
                    "query",
                    "response",
                    "sources",
                    "resolutionStatus",
                    "queryCategory",
                    "pageUrl"
                  ]
                }
              },
              "nextCursor": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cursor to retrieve the next page of results. Null if no more results."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether additional results are available beyond this page."
              }
            },
            "required": [
              "conversations",
              "nextCursor",
              "hasMore"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Invalid query parameters",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Error message describing what went wrong."
              },
              "details": {
                "type": "array",
                "description": "Additional details about the error.",
                "items": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Description of a specific validation or processing error."
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            },
            "required": [
              "error"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Server error",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Error message describing what went wrong."
              },
              "details": {
                "type": "array",
                "description": "Additional details about the error.",
                "items": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Description of a specific validation or processing error."
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            },
            "required": [
              "error"
            ]
          }
        }
      }
    }
  }
}
```
