Analytics API
Base URL: https://YOUR-SERVER/api. Send your API key in x-api-key where authentication is required. A key also needs the listed permission; your account's access rules still apply.
API guide · All endpoints · OpenAPI JSON
GET /analytics— Retrieve library analyticsGET /analytics/scopes— List analytics scopes
Retrieve library analytics
GET /api/analytics
Counts, sizes, dated history and processing outcomes for one selection and date range. Series that are not recorded for the selection are omitted or null, never filled in; estimated processing cost is an estimate, not a charge.
Authentication: API key. Permission: all.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
range | query | No | |
scope | query | No | `all` (the whole server, administrators only), `account:<id>` or `library:<id>` |
Parameter types, defaults and constraints
Field definitions: AnalyticsRange
[
{
"name": "range",
"required": false,
"in": "query",
"schema": {
"default": "year",
"$ref": "#/components/schemas/AnalyticsRange"
}
},
{
"name": "scope",
"required": false,
"in": "query",
"description": "`all` (the whole server, administrators only), `account:<id>` or `library:<id>`",
"schema": {
"default": "all",
"type": "string"
}
}
]Responses
Field definitions: AnalyticsReportResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnalyticsReportResponseDto"
}
}
},
"description": ""
}
}List analytics scopes
GET /api/analytics/scopes
The selections the signed-in account may read analytics for: the whole server for administrators, then accounts and external libraries.
Authentication: API key. Permission: all.
Responses
Field definitions: AnalyticsScopesResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnalyticsScopesResponseDto"
}
}
},
"description": ""
}
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.