Download OpenAPI specification:
A e-book catalog server compatible with OPDS 1.2, written in Python with a straightforward management REST API for CRUD operations.
Retrieve a paginated list of API keys in the system. Returns API key metadata including creation date, user association, and key status. Supports filtering and pagination. Superusers can view all keys, while regular users see only their own keys.
user_id | string <uuid> Filter by user_id (exact) |
name | string Filter by name (unaccent, icontains) |
last_seen_at__gte | string <date-time> Filter by last_seen_at__gte (gte) |
last_seen_at__lte | string <date-time> Filter by last_seen_at__lte (lte) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "name": "string",
- "is_active": true,
- "last_seen_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Generate a new API key for the authenticated user. Creates a unique API key that can be used for programmatic access to the API. Superusers can create keys for other users by specifying a user_id. Returns the generated key details including the key value for initial setup.
user_id | string <uuid> (user_id) |
name | string (name) <= 100 characters |
is_active | boolean (is_active) |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "name": "string",
- "is_active": true
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "name": "string",
- "is_active": true,
- "last_seen_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Permanently delete an API key, immediately revoking its access to the API. Only the key owner or superusers can delete keys. Once deleted, the key cannot be recovered and any applications using it will lose access. Returns 404 if key doesn't exist or user lacks permission.
api_key_id required | string <uuid> |
{ }
Retrieve a paginated list of users in the system. Supports filtering by username, name, surname, active status, and last login date. Requires appropriate permissions to access user information.
id | string <uuid> Filter by id (exact) |
username | string Filter by username (icontains) |
name | string Filter by name (unaccent, icontains) |
surname | string Filter by surname (unaccent, icontains) |
is_active | boolean Filter by is_active (exact) |
last_login_gte | string <date-time> Filter by last_login_gte (gte) |
last_login_lte | string <date-time> Filter by last_login_lte (lte) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string",
- "is_superuser": true,
- "is_active": true,
- "last_login": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new user account with authentication credentials and profile information. The user will be able to authenticate and access catalogs based on assigned permissions.
name required | string (name) <= 30 characters |
surname required | string (surname) <= 150 characters |
password required | string (password) |
is_active | boolean (is_active) |
username required | string (username) <= 200 characters |
{- "name": "string",
- "surname": "string",
- "password": "string",
- "is_active": true,
- "username": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string",
- "is_superuser": true,
- "is_active": true,
- "last_login": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Get detailed information about the currently authenticated user including profile data, permissions, and accessible catalogs. This endpoint allows users to view their own account information.
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string",
- "is_superuser": true,
- "is_active": true,
- "last_login": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "permissions": [
- "string"
], - "catalog_permissions": {
- "property1": "read",
- "property2": "read"
}
}
}
Retrieve detailed information about a specific user, including their profile information, permissions, and catalog access. Requires appropriate permissions to view user details.
user_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string",
- "is_superuser": true,
- "is_active": true,
- "last_login": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "permissions": [
- "string"
], - "catalog_permissions": {
- "property1": "read",
- "property2": "read"
}
}
}
Update user profile information including name, surname, email, and active status. Requires appropriate permissions to modify user accounts.
user_id required | string <uuid> |
name required | string (name) <= 30 characters |
surname required | string (surname) <= 150 characters |
password | string (password) |
is_active | boolean (is_active) |
{- "name": "string",
- "surname": "string",
- "password": "string",
- "is_active": true
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string",
- "is_superuser": true,
- "is_active": true,
- "last_login": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Permanently delete a user account and all associated data including annotations, shelf records, and access permissions. This action is irreversible and requires appropriate permissions.
user_id required | string <uuid> |
{ }
Retrieve a paginated list of catalogs accessible to the authenticated user. Supports filtering by title and URL name. Returns both public catalogs and private catalogs the user has access to.
title | string Filter by title (unaccent, icontains) |
url_name | string Filter by url_name (unaccent, icontains) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "url_name": "string",
- "title": "string",
- "is_public": true,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new catalog to organize and manage publications. A catalog is a container for entries (books, articles, etc.) and can be configured with access permissions, visibility settings, and custom metadata.
url_name required | string (url_name) |
title required | string (title) <= 100 characters |
is_public | boolean (is_public) |
Array of objects (users) |
{- "url_name": "string",
- "title": "string",
- "is_public": true,
- "users": [
- {
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "mode": "read"
}
]
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "url_name": "string",
- "title": "string",
- "is_public": true,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "user_catalogs": [ ]
}
}
Retrieve detailed information about a specific catalog, including its metadata, statistics, and access permissions. This endpoint provides comprehensive information about the catalog's configuration and contents.
catalog_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "url_name": "string",
- "title": "string",
- "is_public": true,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "user_catalogs": [ ]
}
}
Update the metadata and configuration of an existing catalog. This includes title, description, visibility settings, and access permissions. Only users with manage permissions can update a catalog.
catalog_id required | string <uuid> |
url_name required | string (url_name) |
title required | string (title) <= 100 characters |
is_public | boolean (is_public) |
Array of objects (users) |
{- "url_name": "string",
- "title": "string",
- "is_public": true,
- "users": [
- {
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "mode": "read"
}
]
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "url_name": "string",
- "title": "string",
- "is_public": true,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "user_catalogs": [ ]
}
}
Permanently delete a catalog and all its associated entries, acquisition files, and user data. This action is irreversible and requires appropriate permissions. All content within the catalog will be lost.
catalog_id required | string <uuid> |
{ }
Retrieve a paginated list of feeds with filtering options. Supports filtering by creator, catalog, title, kind (navigation/acquisition), and parent feed relationships.
creator_id | string <uuid> Filter by creator_id (exact) |
catalog_id | string <uuid> Filter by catalog_id (exact) |
title | string Filter by title (unaccent, icontains) |
kind | string Enum: "navigation" "acquisition" Filter by kind (exact) |
parent_id | string Filter by parent_id (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new feed to organize and categorize entries within a catalog. Feeds can be used to group related publications, create reading lists, or organize content by topic, genre, or any custom criteria.
catalog_id required | string <uuid> (catalog_id) |
title required | string (title) <= 100 characters |
url_name required | string (url_name) <= 50 characters |
kind required | string (kind) Enum: "navigation" "acquisition" |
content required | string (content) |
per_page | integer (per_page) >= 1 |
entries | string <uuid> (entries) |
parents | string <uuid> (parents) |
{- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "title": "string",
- "url_name": "string",
- "kind": "navigation",
- "content": "string",
- "per_page": 1,
- "entries": "c5e7e228-423f-4bf8-9a7f-3d8bcde9b8d4",
- "parents": "4a2a1780-dcad-496e-bb7c-2bbf3a673e26"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Retrieve detailed information about a specific feed including its metadata, content, associated entries, and hierarchical relationships with parent and child feeds.
feed_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update feed metadata including title, content, associated entries, and feed relationships. Allows modification of feed organization and content curation.
feed_id required | string <uuid> |
catalog_id required | string <uuid> (catalog_id) |
title required | string (title) <= 100 characters |
url_name required | string (url_name) <= 50 characters |
kind required | string (kind) Enum: "navigation" "acquisition" |
content required | string (content) |
per_page | integer (per_page) >= 1 |
entries | string <uuid> (entries) |
parents | string <uuid> (parents) |
{- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "title": "string",
- "url_name": "string",
- "kind": "navigation",
- "content": "string",
- "per_page": 1,
- "entries": "c5e7e228-423f-4bf8-9a7f-3d8bcde9b8d4",
- "parents": "4a2a1780-dcad-496e-bb7c-2bbf3a673e26"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Permanently delete a feed and remove its organizational structure. This does not delete the entries within the feed, only the feed container itself. This action is irreversible.
feed_id required | string <uuid> |
{ }
Retrieve a paginated list of authors across all catalogs. Returns detailed author information including name, surname, and catalog associations. Supports filtering by various author attributes and provides comprehensive author metadata for content management.
catalog_id | string <uuid> Filter by catalog_id (exact) |
name | string Filter by name (unaccent, icontains) |
surname | string Filter by surname (unaccent, icontains) |
query | string Filter by query (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new author record in a specific catalog. Requires catalog write permissions and validates that the author name/surname combination is unique within the target catalog. Returns the created author with detailed information including catalog association.
name required | string (name) <= 255 characters |
surname required | string (surname) <= 255 characters |
catalog_id required | string <uuid> (catalog_id) |
{- "name": "string",
- "surname": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Retrieve detailed information about a specific author. Returns comprehensive author data including name, surname, catalog information, and associated metadata. Requires catalog read permissions for the author's catalog.
author_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update an existing author's information. Allows modification of author name, surname, and catalog association. Validates uniqueness constraints and requires catalog manage permissions. Returns the updated author with all current information.
author_id required | string <uuid> |
name required | string (name) <= 255 characters |
surname required | string (surname) <= 255 characters |
catalog_id required | string <uuid> (catalog_id) |
{- "name": "string",
- "surname": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Permanently delete an author from the catalog. Requires catalog manage permissions and will remove all associations with entries. This action cannot be undone and may affect content that references this author.
author_id required | string <uuid> |
{ }
Retrieve a paginated list of categories across all catalogs. Returns detailed category information including terms, descriptions, and catalog associations. Supports filtering by various category attributes to help manage content organization.
catalog_id | string <uuid> Filter by catalog_id (exact) |
term | string Filter by term (unaccent, iexact) |
label | string Filter by label (unaccent, icontains) |
scheme | string Filter by scheme (unaccent, icontains) |
query | string Filter by query (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "label": "string",
- "scheme": "string"
}
]
}
Create a new category within a specific catalog. Requires catalog manage permissions and validates that the category term is unique within the system. Categories help organize and classify catalog entries for better content discovery and management.
catalog_id | string <uuid> (catalog_id) |
term required | string (term) <= 255 characters |
label | string (label) <= 255 characters |
scheme | string (scheme) <= 255 characters |
{- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "term": "string",
- "label": "string",
- "scheme": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "label": "string",
- "scheme": "string"
}
}
Retrieve detailed information about a specific category. Returns comprehensive category data including term, description, catalog association, and metadata. Requires catalog read permissions for the category's catalog.
category_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "label": "string",
- "scheme": "string"
}
}
Update an existing category's information. Allows modification of category term, description, and catalog association. Validates uniqueness constraints and requires catalog manage permissions. Returns the updated category with all current information.
category_id required | string <uuid> |
catalog_id | string <uuid> (catalog_id) |
term required | string (term) <= 255 characters |
label | string (label) <= 255 characters |
scheme | string (scheme) <= 255 characters |
{- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "term": "string",
- "label": "string",
- "scheme": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "label": "string",
- "scheme": "string"
}
}
Permanently delete a category from the catalog. Requires catalog manage permissions and will remove all associations with entries. This action cannot be undone and may affect content organization that references this category.
category_id required | string <uuid> |
{ }
Retrieve a paginated list of entries from the catalog. Supports advanced filtering by catalog, author, category, language, publication date, and full-text search across titles, summaries, and content.
creator_id | string <uuid> Filter by creator_id (exact) |
catalog_id | string <uuid> Filter by catalog_id (exact) |
catalog_title | string Filter by catalog_title (unaccent, icontains) |
author_id | string <uuid> Filter by author_id (exact) |
author | string Filter by author (exact) |
category_id | string <uuid> Filter by category_id (exact) |
category_term | string Filter by category_term (exact) |
language_id | string <uuid> Filter by language_id (exact) |
language_code | string Filter by language_code (exact) |
title | string Filter by title (unaccent, icontains) |
summary | string Filter by summary (unaccent, icontains) |
query | string Filter by query (exact) |
feed_id | string <uuid> Filter by feed_id (exact) |
published_at__gte | string Filter by published_at__gte (exact) |
published_at__lte | string Filter by published_at__lte (exact) |
config__readium_enabled | boolean Filter by config__readium_enabled (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Fetch metadata for a publication from external sources using various identifiers (ISBN, DOI, etc.). This endpoint allows you to retrieve detailed information about a book or publication before creating an entry in the catalog.
{ }
Create a new entry in the specified catalog. An entry represents a publication (book, article, etc.) with metadata like title, authors, publication date, and associated acquisition files.
catalog_id required | string <uuid> |
id | string (id) |
language_code required | string (language_code) <= 3 characters |
category_ids | string <uuid> (category_ids) |
Array of objects (authors) | |
author_ids | string <uuid> (author_ids) |
feeds | string <uuid> (feeds) |
Array of objects (categories) | |
title required | string (title) <= 255 characters |
publisher | string (publisher) <= 255 characters |
published_at | string (published_at) |
summary | string (summary) |
content | string (content) |
Array of objects (acquisitions) | |
identifiers | string (identifiers) |
image | string <uri> (image) |
object (EntryConfigForm) | |
citation | string (citation) |
{- "id": "string",
- "language_code": "str",
- "category_ids": "1f6df996-f8f0-4483-ba5d-fd35f7dee4e8",
- "authors": [
- {
- "name": "string",
- "surname": "string"
}
], - "author_ids": "7150eaec-4824-44f2-8271-22403cce7e08",
- "feeds": "fa541e7b-3e51-43a5-beea-0fd4442a973a",
- "categories": [
- {
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "term": "string",
- "label": "string",
- "scheme": "string"
}
], - "title": "string",
- "publisher": "string",
- "published_at": "string",
- "summary": "string",
- "content": "string",
- "acquisitions": [
- {
- "relation": "acquisition",
- "prices": [
- {
- "currency_code": "string",
- "value": 0
}
],
}
], - "identifiers": "string",
- "config": {
- "evilflowers_ocr_enabled": true,
- "evilflowers_ocr_rewrite": true,
- "evilflowers_annotations_create": true,
- "evilflowers_viewer_print": true,
- "evilflowers_share_enabled": true,
- "evilflowers_metadata_fetch": true,
- "readium_enabled": true,
- "evilflowers_render_type": "document"
}, - "citation": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "published_at": "string",
- "publisher": "string",
- "content": "string",
- "identifiers": { }
}
}
Retrieve detailed information about a specific entry including its metadata, authors, categories, acquisition files, and user-specific information like shelf status.
catalog_id required | string <uuid> |
entry_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "published_at": "string",
- "publisher": "string",
- "content": "string",
- "identifiers": { }
}
}
Create a new acquisition file for the specified entry. Acquisitions represent downloadable content (PDF, EPUB, etc.) associated with an entry, including file metadata and optional pricing information.
catalog_id required | string <uuid> |
entry_id required | string <uuid> |
relation | string (relation) Enum: "acquisition" "open-access" "borrow" |
Array of objects (prices) |
{- "relation": "acquisition",
- "prices": [
- {
- "currency_code": "string",
- "value": 0
}
]
}
{- "response": {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "base64": "string",
- "checksum": "string"
}
}
Update the metadata of an existing entry. This includes title, summary, authors, categories, publication information, and configuration settings for features like OCR and annotations.
catalog_id required | string <uuid> |
entry_id required | string <uuid> |
id | string (id) |
language_code required | string (language_code) <= 3 characters |
category_ids | string <uuid> (category_ids) |
Array of objects (authors) | |
author_ids | string <uuid> (author_ids) |
feeds | string <uuid> (feeds) |
Array of objects (categories) | |
title required | string (title) <= 255 characters |
publisher | string (publisher) <= 255 characters |
published_at | string (published_at) |
summary | string (summary) |
content | string (content) |
Array of objects (acquisitions) | |
identifiers | string (identifiers) |
image | string <uri> (image) |
object (EntryConfigForm) | |
citation | string (citation) |
{- "id": "string",
- "language_code": "str",
- "category_ids": "1f6df996-f8f0-4483-ba5d-fd35f7dee4e8",
- "authors": [
- {
- "name": "string",
- "surname": "string"
}
], - "author_ids": "7150eaec-4824-44f2-8271-22403cce7e08",
- "feeds": "fa541e7b-3e51-43a5-beea-0fd4442a973a",
- "categories": [
- {
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "term": "string",
- "label": "string",
- "scheme": "string"
}
], - "title": "string",
- "publisher": "string",
- "published_at": "string",
- "summary": "string",
- "content": "string",
- "acquisitions": [
- {
- "relation": "acquisition",
- "prices": [
- {
- "currency_code": "string",
- "value": 0
}
],
}
], - "identifiers": "string",
- "config": {
- "evilflowers_ocr_enabled": true,
- "evilflowers_ocr_rewrite": true,
- "evilflowers_annotations_create": true,
- "evilflowers_viewer_print": true,
- "evilflowers_share_enabled": true,
- "evilflowers_metadata_fetch": true,
- "readium_enabled": true,
- "evilflowers_render_type": "document"
}, - "citation": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "published_at": "string",
- "publisher": "string",
- "content": "string",
- "identifiers": { }
}
}
Remove an entry from the catalog. This will also delete all associated acquisition files and user data (annotations, shelf records). This action is irreversible.
catalog_id required | string <uuid> |
entry_id required | string <uuid> |
{ }
Retrieve a paginated list of acquisition files with filtering options. Supports filtering by entry, file type, media type, and availability status. Acquisitions represent downloadable content associated with catalog entries.
entry_id | string <uuid> Filter by entry_id (exact) |
relation | string Enum: "acquisition" "open-access" "borrow" Filter by relation (exact) |
mime | string Filter by mime (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
Create a new acquisition file for an entry. Acquisitions represent downloadable content (PDF, EPUB, etc.) with associated metadata, pricing information, and access controls. Note: This endpoint is currently not implemented.
{- "title": "string",
- "type": null,
- "detail": null,
- "trace": null,
- "additional_data": null
}
Retrieve detailed information about a specific acquisition file including its metadata, file properties, pricing information, and download availability.
acquisition_id required | string <uuid> |
{- "response": {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "base64": "string",
- "checksum": "string"
}
}
Update acquisition metadata including type, relation, pricing information, and availability settings. The actual file content is immutable - only metadata can be modified through the API. This allows for price updates, availability changes, and metadata corrections.
acquisition_id required | string <uuid> |
relation | string (relation) Enum: "acquisition" "open-access" "borrow" |
Array of objects (prices) |
{- "relation": "acquisition",
- "prices": [
- {
- "currency_code": "string",
- "value": 0
}
]
}
{- "response": {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "base64": "string",
- "checksum": "string"
}
}
Remove an acquisition file from the catalog. This deletes the database record immediately, while the actual file removal occurs later during the orphaned files cleanup process. This action is irreversible.
acquisition_id required | string <uuid> |
{ }
Retrieve a paginated list of shelf records for the authenticated user. Returns all books, entries, and catalog items that the user has added to their personal shelf. Requires authentication and filters results to only show the current user's shelf items.
catalog_id | string <uuid> Filter by catalog_id (exact) |
catalog_title | string Filter by catalog_title (unaccent, icontains) |
entry_id | string <uuid> Filter by entry_id (exact) |
user_id | string <uuid> Filter by user_id (exact) |
author_id | string <uuid> Filter by author_id (exact) |
author | string Filter by author (exact) |
category_id | string <uuid> Filter by category_id (exact) |
category_term | string Filter by category_term (exact) |
language_id | string <uuid> Filter by language_id (exact) |
language_code | string Filter by language_code (exact) |
title | string Filter by title (unaccent, icontains) |
summary | string Filter by summary (unaccent, icontains) |
query | string Filter by query (exact) |
feed_id | string <uuid> Filter by feed_id (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "entry": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Add a new entry to the user's shelf. Creates a shelf record linking the authenticated user to a specific catalog entry. If the entry is already on the user's shelf, returns the existing record with HTTP 200 status. Requires authentication and valid entry ID.
entry_id required | string <uuid> (entry_id) |
{- "entry_id": "31513983-613b-4481-b270-ae929f358bae"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "entry": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Remove a specific entry from the user's shelf. Permanently deletes the shelf record identified by the provided UUID. Only the shelf record owner can delete their own records. Returns 404 if the record doesn't exist or the user lacks permission.
shelf_record_id required | string <uuid> |
{ }
Retrieve a paginated list of user acquisitions across the system. Returns acquisition records that represent user access to specific catalog entries. Supports filtering and pagination to manage large result sets. Includes acquisition details, user information, and associated entry metadata.
user_id | string <uuid> Filter by user_id (exact) |
acquisition_id | string <uuid> Filter by acquisition_id (exact) |
type | string Filter by type (iexact) |
title | string Filter by title (unaccent, icontains) |
expire_at__gte | string <date-time> Filter by expire_at__gte (gte) |
expire_at__lte | string <date-time> Filter by expire_at__lte (lte) |
created_at__gte | string <date-time> Filter by created_at__gte (gte) |
created_at__lte | string <date-time> Filter by created_at__lte (lte) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "shared",
- "range": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string"
}, - "acquisition": {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null
}, - "url": null,
- "entry": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "expire_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new user acquisition record, granting a user access to a specific catalog entry. Supports both personal and shared acquisition types. Validates user permissions for the target entry and handles single acquisition mode restrictions. Returns existing acquisition with redirect if already exists in single mode.
acquisition_id required | string <uuid> (acquisition_id) |
type required | string (type) Enum: "shared" "personal" |
range | string (range) |
expire_at | string <date-time> (expire_at) |
{- "acquisition_id": "5ab5272f-98fe-4d27-aa74-e5caaf7da967",
- "type": "shared",
- "range": "string",
- "expire_at": "2019-08-24T14:15:22Z"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "shared",
- "range": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string"
}, - "acquisition": {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null
}, - "url": null,
- "entry": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "expire_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Retrieve detailed information about a specific user acquisition record. Returns acquisition metadata, associated entry details, user information, and access permissions. Validates that the requesting user has permission to view the acquisition record.
user_acquisition_id required | string <uuid> UserAcquisition UUID |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "shared",
- "range": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string"
}, - "acquisition": {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null
}, - "url": null,
- "entry": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "shelf_record_id": null,
- "entry_authors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "surname": "string"
}
], - "categories": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "term": "string"
}
], - "language": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}, - "feeds": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "catalog_id": "de71ec92-2e85-49a4-a1c0-bcbd8d385f9e",
- "parents": [ ],
- "children": [ ],
- "creator_id": "9cceffdd-8381-4074-8256-eafae24ebee6",
- "title": "string",
- "kind": "navigation",
- "url_name": "string",
- "url": null,
- "content": "string",
- "per_page": null,
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "acquisitions": [
- {
- "relation": "acquisition",
- "mime": "application/pdf",
- "url": null,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "popularity": 0,
- "title": "string",
- "summary": "string",
- "image_url": null,
- "image_mime": "string",
- "thumbnail_url": null,
- "config": { },
- "citation": "string",
- "touched_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "expire_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Retrieve a paginated list of annotations created by users. Annotations include highlights, notes, bookmarks, and other user-generated content associated with entries. Supports filtering by user, entry, and annotation type.
user_acquisition_id | string <uuid> Filter by user_acquisition_id (exact) |
title | string Filter by title (icontains) |
user_id | string <uuid> Filter by user_id (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_acquisition_id": "5839a804-7206-46c5-8771-3311902b8d95",
- "title": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new annotation for an entry. Annotations can be highlights, notes, bookmarks, or other user-generated content that enhances the reading experience. Each annotation is associated with a specific location within the entry.
user_acquisition_id required | string <uuid> (user_acquisition_id) |
title required | string (title) |
{- "user_acquisition_id": "5839a804-7206-46c5-8771-3311902b8d95",
- "title": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_acquisition_id": "5839a804-7206-46c5-8771-3311902b8d95",
- "title": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Retrieve detailed information about a specific annotation including its content, position, type, and associated entry information.
annotation_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_acquisition_id": "5839a804-7206-46c5-8771-3311902b8d95",
- "title": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update an existing annotation's content, position, or type. Only the annotation creator can modify their annotations. This allows users to edit their notes, adjust highlights, or change annotation properties.
annotation_id required | string <uuid> |
title required | string (title) |
{- "title": "string"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_acquisition_id": "5839a804-7206-46c5-8771-3311902b8d95",
- "title": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Permanently delete an annotation. Only the annotation creator can delete their annotations. This action is irreversible and will remove all associated data.
annotation_id required | string <uuid> |
{ }
List AnnotationItems
annotation_id | string <uuid> Filter by annotation_id (exact) |
page_number | integer <int32> Filter by page_number (exact) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "annotation_id": "4ed848c0-ec87-421a-9ec8-c4a4b0948c2a",
- "page": 0,
- "content": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create AnnotationItem
annotation_id required | string <uuid> (annotation_id) |
content required | string (content) |
page required | integer (page) |
{- "annotation_id": "4ed848c0-ec87-421a-9ec8-c4a4b0948c2a",
- "content": "string",
- "page": 0
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "annotation_id": "4ed848c0-ec87-421a-9ec8-c4a4b0948c2a",
- "page": 0,
- "content": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Get AnnotationItem detail
annotation_item_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "annotation_id": "4ed848c0-ec87-421a-9ec8-c4a4b0948c2a",
- "page": 0,
- "content": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update AnnotationItem detail
annotation_item_id required | string <uuid> |
annotation_id required | string <uuid> (annotation_id) |
content required | string (content) |
page required | integer (page) |
{- "annotation_id": "4ed848c0-ec87-421a-9ec8-c4a4b0948c2a",
- "content": "string",
- "page": 0
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "annotation_id": "4ed848c0-ec87-421a-9ec8-c4a4b0948c2a",
- "page": 0,
- "content": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
System status and health check endpoint that provides real-time information about the application's operational status. Returns system statistics, process states, and version information. Includes supervisord process monitoring and fails with 503 if critical processes are not running properly.
{ }
Generate a new access token using a valid refresh token. Validates the refresh token against the cache and returns a new access token for continued API access. The refresh token must be previously issued and not expired.
refresh required | string (refresh) |
{- "refresh": "string"
}
{- "response": {
- "access_token": "string"
}
}
Generate a new access token and refresh token pair using username and password authentication. Returns both an access token for immediate API access and a refresh token for obtaining new access tokens. Requires valid user credentials and creates a cached refresh token session.
username required | string (username) <= 200 characters |
password required | string (password) |
{- "username": "string",
- "password": "string"
}
{- "response": {
- "access_token": "string",
- "refresh_token": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "name": "string",
- "surname": "string",
- "is_superuser": true,
- "is_active": true,
- "last_login": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "permissions": [
- "string"
], - "catalog_permissions": {
- "property1": "read",
- "property2": "read"
}
}
}
}
Retrieve a paginated list of available languages that can be assigned to entries. This includes ISO language codes, native names, and English translations for internationalization support.
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "alpha2": "string",
- "alpha3": "string"
}
]
}
Retrieve a paginated list of licenses in the system. Returns license information including duration, start/end dates, user associations, and status. Supports filtering by various license attributes to help manage user access and permissions.
user_id | string <uuid> Filter by user_id (exact) |
entry_id | string <uuid> Filter by entry_id (exact) |
state | string Enum: "ready" "active" "returned" "expired" "revoked" "cancelled" Filter by state (exact) |
starts_at__gte | string <date-time> Filter by starts_at__gte (gte) |
starts_at__lte | string <date-time> Filter by starts_at__lte (lte) |
expires_at__gte | string <date-time> Filter by expires_at__gte (gte) |
expires_at__lte | string <date-time> Filter by expires_at__lte (lte) |
{- "metadata": {
- "page": 0,
- "limit": 0,
- "pages": 0,
- "total": 0
}, - "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entry_id": "31513983-613b-4481-b270-ae929f358bae",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "state": "ready",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a new license for the authenticated user. Generates a license with specified duration, automatically setting start and expiration dates. If no start date is provided, defaults to current timestamp. Returns the created license with all metadata.
entry_id required | string <uuid> (entry_id) |
state required | string (state) Enum: "ready" "active" "returned" "expired" "revoked" "cancelled" |
duration required | string (duration) ^P(?!P)(?:(\d+Y)?(\d+M)?(\d+D)?(T(?:(\d+H)?(\... Duration in ISO 8601 format. Example: "PT1H30M" for 1 hour and 30 minutes. The format is defined as follows:
|
starts_at | string <date-time> (starts_at) |
{- "entry_id": "31513983-613b-4481-b270-ae929f358bae",
- "state": "ready",
- "duration": "P14D",
- "starts_at": "2019-08-24T14:15:22Z"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entry_id": "31513983-613b-4481-b270-ae929f358bae",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "state": "ready",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Retrieve detailed information about a specific license. Returns comprehensive license data including duration, start/end dates, user information, and current status. Requires license manage permissions for the license owner.
license_id required | string <uuid> |
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entry_id": "31513983-613b-4481-b270-ae929f358bae",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "state": "ready",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update license state and properties. Supports state transitions like 'active', 'returned', 'renewed' etc. LCP operations are handled automatically based on state changes.
license_id required | string <uuid> |
state required | string (state) Enum: "ready" "active" "returned" "expired" "revoked" "cancelled" |
duration required | string (duration) ^P(?!P)(?:(\d+Y)?(\d+M)?(\d+D)?(T(?:(\d+H)?(\... Duration in ISO 8601 format. Example: "PT1H30M" for 1 hour and 30 minutes. The format is defined as follows:
|
{- "state": "ready",
- "duration": "P14D"
}
{- "response": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entry_id": "31513983-613b-4481-b270-ae929f358bae",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "state": "ready",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Download the LCP license file for a specific license. Returns the actual LCP license JSON that can be imported into reading applications.
license_id required | string <uuid> |
{- "title": "string",
- "type": null,
- "detail": null,
- "trace": null,
- "additional_data": null
}
Get availability calendar for a readium-enabled entry. Returns information about available borrowing slots over a specified date range, suitable for displaying a calendar interface.
entry_id required | string <uuid> |
{ }
Download UserAcquisition content
user_acquisition_id required | string <uuid> |
{- "title": "string",
- "type": null,
- "detail": null,
- "trace": null,
- "additional_data": null
}