Reader Users
2GET
/v1/reader-usersList reader usersRequest Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
limit | number | Any | No |
nextToken | string | Any | No |
curl -X GET "https://api.cirrusreader.com/v1/reader-users" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Response Body Fields
| Name | Type | Options | Required |
|---|---|---|---|
items | object[] | Any | Yes |
nextToken | string | Any | No |
context | object | Any | Yes |
Response 200
application/json
{
"items": [
{
"id": "string",
"deviceId": "string",
"userId": "string",
"lastOrigin": "string",
"lastSessionStartedAt": "2026-04-29T10:00:00.000Z",
"numberOfBooksRead": 1,
"currentPublicationId": "string"
}
],
"nextToken": "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 405
The request method is not supported.
{
"error": "UNSUPPORTED_METHOD",
"message": "string",
"context": {
"path": "string",
"method": "string",
"requestId": "string"
}
}GET
/v1/reader-users/{id}Get reader user by idParameters
| Name | Type | Description | Required |
|---|---|---|---|
| id | string | Path parameter. | Yes |
curl -X GET "https://api.cirrusreader.com/v1/reader-users/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
application/json
{
"item": {
"id": "string",
"deviceId": "string",
"userId": "string",
"lastOrigin": "string",
"lastSessionStartedAt": "2026-04-29T10:00:00.000Z",
"numberOfBooksRead": 1,
"currentPublicationId": "string",
"origins": [
"string"
],
"currentPublication": {
"title": "string",
"author": [
"string"
],
"type": "EPUB",
"isReflowable": true,
"status": "draft",
"uploadStatus": "upload_pending",
"currentEditionId": "string",
"publicationId": "string",
"cover": "string"
},
"readingHistory": [
{
"title": "string",
"author": [
"string"
],
"type": "EPUB",
"isReflowable": true,
"status": "draft",
"uploadStatus": "upload_pending",
"currentEditionId": "string",
"publicationId": "string",
"cover": "string",
"firstReadAtIso": "2026-04-29T10:00:00.000Z",
"lastReadAtIso": "2026-04-29T10:00:00.000Z",
"sessionCount": 1,
"bookmarkCount": 1,
"highlightCount": 1,
"progression": 1,
"chapterTitle": "string",
"pageLabel": "string",
"pageIndex": 1,
"progressUpdatedAtIso": "2026-04-29T10:00:00.000Z"
}
],
"currentReadingState": {
"sessionId": "string",
"bookmarkCount": 1,
"highlightCount": 1,
"progression": 1,
"chapterTitle": "string",
"pageLabel": "string",
"pageIndex": 1,
"updatedAtIso": "2026-04-29T10:00:00.000Z"
}
},
"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"
}
}