Analytics
4/v1/analyticsGet analytics by scopeParameters
| Name | Type | Description | Required |
|---|---|---|---|
| from | string | Querystring parameter. | No |
| to | string | Querystring parameter. | No |
| granularity | string | Querystring parameter. | No |
Request Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
from | string | Any | No |
to | string | Any | No |
granularity | enum | totalmonth | No |
curl -X GET "https://api.cirrusreader.com/v1/analytics" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Response Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
item | object | Any | Yes |
context | object | Any | Yes |
Response 200
Analytics were returned successfully.
{
"item": {
"period": {
"from": "string",
"to": "string"
},
"totals": {
"publicationsRead": 1,
"totalViews": 1,
"activeReaders": 1
},
"monthly": [
{
"publicationsRead": 1,
"totalViews": 1,
"activeReaders": 1,
"month": "string"
}
]
},
"context": {
"path": "string",
"method": "string",
"requestId": "string",
"authentication": {
"requestId": "string",
"authType": "apiKey",
"sub": "string",
"email": "string",
"groups": "string",
"keyId": "string",
"organisationId": "string",
"errorCode": "string",
"error": "string",
"user": {
"id": "string",
"sub": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"role": "Admin",
"status": "Active",
"onboarded": true,
"userImage": "string",
"billing": {
"planId": "starter",
"status": "incomplete",
"billingAccessStatus": "enabled",
"billingGracePeriodEndIso": "2026-04-29T10:00:00.000Z",
"billingInterval": "month",
"trialEndIso": "2026-04-29T10:00:00.000Z",
"currentPeriodEndIso": "2026-04-29T10:00:00.000Z",
"cancelAtPeriodEnd": true,
"publicationLimit": 1,
"monthlyBandwidthLimitBytes": "string",
"bandwidthPeriodStartIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodEndIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodUsedBytes": "string",
"bandwidthPeriodCalculatedThroughIso": "2026-04-29T10:00:00.000Z",
"bandwidthAccessStatus": "enabled"
}
},
"scopeId": "string"
}
}
}Error Responses
Response 400
The request body or parameters failed validation.
{
"error": "QL_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
},
"details": [
{
"message": "string"
}
]
}Response 401
The request is missing valid authentication credentials.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 403
The authenticated user is not allowed to access this resource.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 404
The requested API key could not be found.
{
"error": "EMPTY_RESPONSE",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 405
The request method is not supported.
{
"error": "UNSUPPORTED_METHOD",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 500
The request body or parameters failed validation.
{
"error": "DB_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}/v1/analytics/publications/popularGet popular publication analytics.curl -X GET "https://api.cirrusreader.com/v1/analytics/publications/popular" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Response Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
items | object[] | Any | Yes |
context | object | Any | Yes |
Response 200
Popular publication analytics were returned successfully.
{
"items": [
{
"publicationId": "string",
"title": "string",
"views": 1
}
],
"context": {
"path": "string",
"method": "string",
"requestId": "string",
"authentication": {
"requestId": "string",
"authType": "apiKey",
"sub": "string",
"email": "string",
"groups": "string",
"keyId": "string",
"organisationId": "string",
"errorCode": "string",
"error": "string",
"user": {
"id": "string",
"sub": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"role": "Admin",
"status": "Active",
"onboarded": true,
"userImage": "string",
"billing": {
"planId": "starter",
"status": "incomplete",
"billingAccessStatus": "enabled",
"billingGracePeriodEndIso": "2026-04-29T10:00:00.000Z",
"billingInterval": "month",
"trialEndIso": "2026-04-29T10:00:00.000Z",
"currentPeriodEndIso": "2026-04-29T10:00:00.000Z",
"cancelAtPeriodEnd": true,
"publicationLimit": 1,
"monthlyBandwidthLimitBytes": "string",
"bandwidthPeriodStartIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodEndIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodUsedBytes": "string",
"bandwidthPeriodCalculatedThroughIso": "2026-04-29T10:00:00.000Z",
"bandwidthAccessStatus": "enabled"
}
},
"scopeId": "string"
}
}
}Error Responses
Response 400
The request body or parameters failed validation.
{
"error": "QL_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
},
"details": [
{
"message": "string"
}
]
}Response 401
The request is missing valid authentication credentials.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 403
The authenticated user is not allowed to access this resource.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 404
The requested API key could not be found.
{
"error": "EMPTY_RESPONSE",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 405
The request method is not supported.
{
"error": "UNSUPPORTED_METHOD",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 500
The request body or parameters failed validation.
{
"error": "DB_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}/v1/analytics/publications/{id}Get analytics for a publication within the authenticated scope.Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| id | string | Path parameter. | Yes |
| from | string | Querystring parameter. | No |
| to | string | Querystring parameter. | No |
| granularity | string | Querystring parameter. | No |
Request Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
from | string | Any | No |
to | string | Any | No |
granularity | enum | totalmonth | No |
curl -X GET "https://api.cirrusreader.com/v1/analytics/publications/ID" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Response Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
item | object | Any | Yes |
context | object | Any | Yes |
Response 200
Publication analytics were returned successfully.
{
"item": {
"publicationId": "string",
"period": {
"from": "string",
"to": "string"
},
"totals": {
"totalReads": 1,
"averageReadTimeMs": 1,
"averageCompletion": 1,
"completionRate": 1
},
"monthly": [
{
"totalReads": 1,
"averageReadTimeMs": 1,
"averageCompletion": 1,
"completionRate": 1,
"month": "string"
}
]
},
"context": {
"path": "string",
"method": "string",
"requestId": "string",
"authentication": {
"requestId": "string",
"authType": "apiKey",
"sub": "string",
"email": "string",
"groups": "string",
"keyId": "string",
"organisationId": "string",
"errorCode": "string",
"error": "string",
"user": {
"id": "string",
"sub": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"role": "Admin",
"status": "Active",
"onboarded": true,
"userImage": "string",
"billing": {
"planId": "starter",
"status": "incomplete",
"billingAccessStatus": "enabled",
"billingGracePeriodEndIso": "2026-04-29T10:00:00.000Z",
"billingInterval": "month",
"trialEndIso": "2026-04-29T10:00:00.000Z",
"currentPeriodEndIso": "2026-04-29T10:00:00.000Z",
"cancelAtPeriodEnd": true,
"publicationLimit": 1,
"monthlyBandwidthLimitBytes": "string",
"bandwidthPeriodStartIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodEndIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodUsedBytes": "string",
"bandwidthPeriodCalculatedThroughIso": "2026-04-29T10:00:00.000Z",
"bandwidthAccessStatus": "enabled"
}
},
"scopeId": "string"
}
}
}Error Responses
Response 400
The request body or parameters failed validation.
{
"error": "QL_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
},
"details": [
{
"message": "string"
}
]
}Response 401
The request is missing valid authentication credentials.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 403
The authenticated user is not allowed to access this resource.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 404
The requested API key could not be found.
{
"error": "EMPTY_RESPONSE",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 405
The request method is not supported.
{
"error": "UNSUPPORTED_METHOD",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 500
The request body or parameters failed validation.
{
"error": "DB_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}/v1/analytics/publications/{id}/activityGet daily analytics for a publication within the authenticated scope.Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| id | string | Path parameter. | Yes |
| from | string | Querystring parameter. | Yes |
| to | string | Querystring parameter. | Yes |
Request Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
from | string | Any | Yes |
to | string | Any | Yes |
curl -X GET "https://api.cirrusreader.com/v1/analytics/publications/ID/activity?from=FROM&to=TO" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Response Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
item | object | Any | Yes |
context | object | Any | Yes |
Response 200
Publication analytics were returned successfully.
{
"item": {
"publicationId": "string",
"period": {
"from": "string",
"to": "string"
},
"daily": [
{
"day": "string",
"views": 1
}
]
},
"context": {
"path": "string",
"method": "string",
"requestId": "string",
"authentication": {
"requestId": "string",
"authType": "apiKey",
"sub": "string",
"email": "string",
"groups": "string",
"keyId": "string",
"organisationId": "string",
"errorCode": "string",
"error": "string",
"user": {
"id": "string",
"sub": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"role": "Admin",
"status": "Active",
"onboarded": true,
"userImage": "string",
"billing": {
"planId": "starter",
"status": "incomplete",
"billingAccessStatus": "enabled",
"billingGracePeriodEndIso": "2026-04-29T10:00:00.000Z",
"billingInterval": "month",
"trialEndIso": "2026-04-29T10:00:00.000Z",
"currentPeriodEndIso": "2026-04-29T10:00:00.000Z",
"cancelAtPeriodEnd": true,
"publicationLimit": 1,
"monthlyBandwidthLimitBytes": "string",
"bandwidthPeriodStartIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodEndIso": "2026-04-29T10:00:00.000Z",
"bandwidthPeriodUsedBytes": "string",
"bandwidthPeriodCalculatedThroughIso": "2026-04-29T10:00:00.000Z",
"bandwidthAccessStatus": "enabled"
}
},
"scopeId": "string"
}
}
}Error Responses
Response 400
The request body or parameters failed validation.
{
"error": "QL_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
},
"details": [
{
"message": "string"
}
]
}Response 401
The request is missing valid authentication credentials.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 403
The authenticated user is not allowed to access this resource.
{
"error": "AUTHENTICATION_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 404
The requested API key could not be found.
{
"error": "EMPTY_RESPONSE",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 405
The request method is not supported.
{
"error": "UNSUPPORTED_METHOD",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}Response 500
The request body or parameters failed validation.
{
"error": "DB_ERROR",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}