analytics
Client for the Analytics endpoints.
Classes
AnalyticsClient
AnalyticsClient(client: OWUIClientBase)
Bases: ResourceBase
Client for the Analytics endpoints.
All endpoints require admin privileges. Analytics provides read-only dashboards for message counts, token usage, user activity, and model performance.
- Code Reference client Classes OpenWebUI Attributes analytics
Source code in src/owui_client/client_base.py
Functions
get_model_analytics
get_model_analytics(
start_date: Optional[int] = None,
end_date: Optional[int] = None,
group_id: Optional[str] = None,
) -> ModelAnalyticsResponse
Get message counts per model, sorted by count descending.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start_date
|
Optional[int]
|
Start timestamp (epoch seconds) to filter messages. |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds) to filter messages. |
None
|
group_id
|
Optional[str]
|
Filter to users in this group. |
None
|
Returns:
| Type | Description |
|---|---|
ModelAnalyticsResponse
|
|
Source code in src/owui_client/routers/analytics.py
get_user_analytics
get_user_analytics(
start_date: Optional[int] = None,
end_date: Optional[int] = None,
group_id: Optional[str] = None,
limit: int = 50,
) -> UserAnalyticsResponse
Get message counts and token usage per user, sorted by count descending.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start_date
|
Optional[int]
|
Start timestamp (epoch seconds) to filter messages. |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds) to filter messages. |
None
|
group_id
|
Optional[str]
|
Filter to users in this group. |
None
|
limit
|
int
|
Maximum number of users to return. Defaults to 50. |
50
|
Returns:
| Type | Description |
|---|---|
UserAnalyticsResponse
|
|
Source code in src/owui_client/routers/analytics.py
get_messages
get_messages(
model_id: Optional[str] = None,
user_id: Optional[str] = None,
chat_id: Optional[str] = None,
start_date: Optional[int] = None,
end_date: Optional[int] = None,
skip: int = 0,
limit: int = 50,
) -> Any
Query chat messages with filters.
Only one filter (chat_id, model_id, or user_id) should be provided. If chat_id is given, start_date/end_date/skip/limit are ignored. If none are provided, returns an empty list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_id
|
Optional[str]
|
Filter messages by model ID. |
None
|
user_id
|
Optional[str]
|
Filter messages by user ID. |
None
|
chat_id
|
Optional[str]
|
Filter messages by chat ID (takes priority). |
None
|
start_date
|
Optional[int]
|
Start timestamp (epoch seconds). |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds). |
None
|
skip
|
int
|
Number of results to skip. Defaults to 0. |
0
|
limit
|
int
|
Maximum results to return (max 100). Defaults to 50. |
50
|
Returns:
| Type | Description |
|---|---|
Any
|
List of chat message objects (raw dicts). Each message has fields |
Any
|
like id, chat_id, user_id, role, content, model_id, created_at, etc. |
Source code in src/owui_client/routers/analytics.py
get_summary
get_summary(
start_date: Optional[int] = None,
end_date: Optional[int] = None,
group_id: Optional[str] = None,
) -> SummaryResponse
Get dashboard summary statistics.
Returns total counts of messages, chats, models, and users for the given time range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start_date
|
Optional[int]
|
Start timestamp (epoch seconds) to filter. |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds) to filter. |
None
|
group_id
|
Optional[str]
|
Filter to users in this group. |
None
|
Returns:
| Type | Description |
|---|---|
SummaryResponse
|
|
Source code in src/owui_client/routers/analytics.py
get_daily_stats
get_daily_stats(
start_date: Optional[int] = None,
end_date: Optional[int] = None,
group_id: Optional[str] = None,
granularity: str = "daily",
) -> DailyStatsResponse
Get message counts grouped by model for time-series charts.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start_date
|
Optional[int]
|
Start timestamp (epoch seconds). |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds). |
None
|
group_id
|
Optional[str]
|
Filter to users in this group. |
None
|
granularity
|
str
|
Either 'daily' or 'hourly'. Defaults to 'daily'. |
'daily'
|
Returns:
| Type | Description |
|---|---|
DailyStatsResponse
|
|
Source code in src/owui_client/routers/analytics.py
get_token_usage
get_token_usage(
start_date: Optional[int] = None,
end_date: Optional[int] = None,
group_id: Optional[str] = None,
) -> TokenUsageResponse
Get token usage aggregated by model, sorted by total tokens descending.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start_date
|
Optional[int]
|
Start timestamp (epoch seconds). |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds). |
None
|
group_id
|
Optional[str]
|
Filter to users in this group. |
None
|
Returns:
| Type | Description |
|---|---|
TokenUsageResponse
|
|
Source code in src/owui_client/routers/analytics.py
get_model_chats
get_model_chats(
model_id: str,
start_date: Optional[int] = None,
end_date: Optional[int] = None,
skip: int = 0,
limit: int = 50,
) -> ModelChatsResponse
Get chats that used a specific model, with preview info.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_id
|
str
|
The model identifier (may contain slashes, e.g. 'openai/gpt-4o'). |
required |
start_date
|
Optional[int]
|
Start timestamp (epoch seconds). |
None
|
end_date
|
Optional[int]
|
End timestamp (epoch seconds). |
None
|
skip
|
int
|
Number of results to skip. Defaults to 0. |
0
|
limit
|
int
|
Maximum results to return (max 100). Defaults to 50. |
50
|
Returns:
| Type | Description |
|---|---|
ModelChatsResponse
|
|
Source code in src/owui_client/routers/analytics.py
get_model_overview
get_model_overview(
model_id: str, days: int = 30
) -> ModelOverviewResponse
Get model overview with feedback history and top chat tags.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_id
|
str
|
The model identifier (may contain slashes, e.g. 'openai/gpt-4o'). |
required |
days
|
int
|
Number of days of feedback history. Use 0 for all time. Defaults to 30. |
30
|
Returns:
| Type | Description |
|---|---|
ModelOverviewResponse
|
|