Appearance
Statistics API (REST)
The Statistics API exposes tenant usage, query, ingestion, collection, and virtualization summaries for dashboards and operational reporting.
All endpoints require an API key with Statistic or Admin rights and api-version: 1.0.
Endpoint Overview
| Method | Path | Description |
|---|---|---|
GET | /statistic/query/most-popular/{startAt}/{endAt}/{limit} | Most popular search queries in a date range. |
GET | /statistic/query/most-popular-period/{startAt}/{endAt} | Query counts grouped by period. |
GET | /statistic/query/channel-split/{startAt}/{endAt} | Query usage split by channel. |
GET | /statistic/collection/usage-period/{startAt}/{endAt} | Collection usage over a date range. |
GET | /statistic/collection/count-document/per-collection | Document counts for selected collections. |
GET | /statistic/collection/count-document | Document counts for all collections. |
GET | /statistic/subscription/usage | Current subscription usage summary. |
GET | /statistic/subscription/usage/{startAt}/{endAt} | Subscription usage over a date range. |
GET | /statistic/ingestion/summary/{startAt}/{endAt} | Ingestion summary over a date range. |
GET | /statistic/ingestion/source-breakdown/{startAt}/{endAt} | Ingestion breakdown by source. |
GET | /statistic/virtualization/summary/{startAt}/{endAt} | Plugin virtualization summary over a date range. |
Dates use YYYY-MM-DD. limit must be between 10 and 1,000. The collection usage-period route accepts an optional collectionId query parameter. The per-collection document-count route accepts repeated collectionIds query parameters, one ULID per value.
Query Examples
http
GET /statistic/query/most-popular/2026-06-01/2026-06-24/25
x-api-key: YOUR_API_KEY
api-version: 1.0http
GET /statistic/collection/count-document/per-collection?collectionIds=01J00000000000000000000000&collectionIds=01J00000000000000000000001
x-api-key: YOUR_API_KEY
api-version: 1.0Response bodies
Successful requests return HTTP 200 with JSON. Arrays can be empty when no data matches the requested scope or period.
Route suffix under /statistic | Body |
|---|---|
query/most-popular/{startAt}/{endAt}/{limit} | Array of { query, frequency } |
query/most-popular-period/{startAt}/{endAt} | Array of { weekStart, week, month, numberOfQueries } |
query/channel-split/{startAt}/{endAt} | { apiQueries, adminPanelQueries, unknownQueries } |
collection/usage-period/{startAt}/{endAt} | Array of { weekStart, week, month, collectionId, usage, rank } |
collection/count-document/per-collection | Array of { sum, collectionId } |
collection/count-document | Array of { sum, collectionId } |
subscription/usage | { count } |
subscription/usage/{startAt}/{endAt} | { count } |
ingestion/summary/{startAt}/{endAt} | { successfulIngestions, failedIngestions, updatedDocuments, removedDocuments, averageTimeToSearchSeconds } |
ingestion/source-breakdown/{startAt}/{endAt} | Array of { source, count, percent } |
virtualization/summary/{startAt}/{endAt} | { started, destroyed, terminated, recentEvents } |
weekStart is an ISO date. averageTimeToSearchSeconds can be null when no duration is available. Each recentEvents entry contains timestamp, virtualMachineId, event, workload, and nullable reason.
For example, a most-popular-query response is:
json
[
{ "query": "annual report", "frequency": 42 },
{ "query": "revenue", "frequency": 18 }
]Caching
Statistics responses are cached briefly for dashboard workloads. Treat these endpoints as reporting APIs, not as strongly consistent write-after-read checks for just-submitted ingestion work.
Common Errors
| Status | Meaning |
|---|---|
400 | Invalid date, limit, or missing collection id query value. |
401 / 403 | Missing credentials or insufficient API key rights. |
500 | The statistic query could not be completed. Retry later. |
Next: Monitoring & Tasks API