From fedd000efcfac8fc57992e6cab8a7b309292b9db Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Thu, 30 Jul 2026 11:04:42 -0400 Subject: [PATCH] feat: add api docs --- Makefile | 6 +- docs/api.html | 665 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 670 insertions(+), 1 deletion(-) create mode 100644 docs/api.html diff --git a/Makefile b/Makefile index 040cbd6..5f24460 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: build_local docker_build_local docker_build_release_dev docker_build_release_latest build_tailwind legacy_tailwind dev dev_backend dev_frontend dev_noauth clean tests +.PHONY: build_local docker_build_local docker_build_release_dev docker_build_release_latest build_tailwind legacy_tailwind dev dev_backend dev_frontend dev_noauth clean tests docs DEV_ENV = GIN_MODE=release \ CONFIG_PATH=./data \ @@ -56,6 +56,10 @@ dev_frontend: dev_noauth: DISABLE_AUTH=true DISABLE_AUTH_USER=$(DEV_USER) $(MAKE) dev +docs: + mkdir -p docs + npx -y @redocly/cli@latest build-docs api/v1/openapi.yaml -o docs/api.html + clean: rm -rf ./build diff --git a/docs/api.html b/docs/api.html new file mode 100644 index 0000000..187beb0 --- /dev/null +++ b/docs/api.html @@ -0,0 +1,665 @@ + + + + + + AnthoLume API v1 + + + + + + + + + +

AnthoLume API v1 (1.0.0)

Download OpenAPI specification:

REST API for AnthoLume document management system

+

Documents

List documents

Authorizations:
BearerAuth
query Parameters
page
integer <int64>
Default: 1
limit
integer <int64>
Default: 9
search
string

Responses

Response samples

Content type
application/json
{
  • "documents": [
    ],
  • "total": 0,
  • "page": 0,
  • "limit": 0,
  • "next_page": 0,
  • "previous_page": 0,
  • "search": "string"
}

Upload a new document

Authorizations:
BearerAuth
Request Body schema: multipart/form-data
required
document_file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "document": {
    }
}

Get a single document

Authorizations:
BearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "document": {
    }
}

Update document editable fields

Authorizations:
BearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
title
string
author
string
description
string
isbn10
string
isbn13
string
cover_gbid
string

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "author": "string",
  • "description": "string",
  • "isbn10": "string",
  • "isbn13": "string",
  • "cover_gbid": "string"
}

Response samples

Content type
application/json
{
  • "document": {
    }
}

Get document cover image

Authorizations:
BearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Upload document cover image

Authorizations:
BearerAuth
path Parameters
id
required
string
Request Body schema: multipart/form-data
required
cover_file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "document": {
    }
}

Download document file

Authorizations:
BearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Progress

List progress records

Authorizations:
BearerAuth
query Parameters
page
integer <int64>
Default: 1
limit
integer <int64>
Default: 15
document
string

Responses

Response samples

Content type
application/json
{
  • "progress": [
    ],
  • "page": 0,
  • "limit": 0,
  • "next_page": 0,
  • "previous_page": 0,
  • "total": 0
}

Update document progress

Authorizations:
BearerAuth
Request Body schema: application/json
required
document_id
required
string
percentage
required
number <double>
progress
required
string
device_id
required
string
device_name
required
string

Responses

Request samples

Content type
application/json
{
  • "document_id": "string",
  • "percentage": 0.1,
  • "progress": "string",
  • "device_id": "string",
  • "device_name": "string"
}

Response samples

Content type
application/json
{
  • "document_id": "string",
  • "timestamp": "2019-08-24T14:15:22Z"
}

Get document progress

Authorizations:
BearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "progress": {
    }
}

Activity

Get activity data

Authorizations:
BearerAuth
query Parameters
doc_filter
boolean
Default: false
document_id
string
page
integer <int64>
Default: 1
limit
integer <int64>
Default: 25

Responses

Response samples

Content type
application/json
{
  • "activities": [
    ],
  • "page": 0,
  • "limit": 0,
  • "next_page": 0,
  • "previous_page": 0,
  • "total": 0
}

Create activity records

Authorizations:
BearerAuth
Request Body schema: application/json
required
device_id
required
string
device_name
required
string
required
Array of objects (CreateActivityItem)

Responses

Request samples

Content type
application/json
{
  • "device_id": "string",
  • "device_name": "string",
  • "activity": [
    ]
}

Response samples

Content type
application/json
{
  • "added": 0
}

Settings

Get user settings

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "timezone": "string",
  • "devices": [
    ]
}

Update user settings

Authorizations:
BearerAuth
Request Body schema: application/json
required
password
string
new_password
string
timezone
string

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "new_password": "string",
  • "timezone": "string"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "timezone": "string",
  • "devices": [
    ]
}

Auth

User login

Request Body schema: application/json
required
username
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "username": "string",
  • "is_admin": true
}

User registration

Request Body schema: application/json
required
username
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "username": "string",
  • "is_admin": true
}

User logout

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get current user info

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "username": "string",
  • "is_admin": true
}

Info

Get server information

Responses

Response samples

Content type
application/json
{
  • "version": "string",
  • "search_enabled": true,
  • "registration_enabled": true
}

Home

Get home page data

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "database_info": {
    },
  • "streaks": {
    },
  • "graph_data": {
    },
  • "user_statistics": {
    }
}

Get user streaks

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "streaks": [
    ]
}

Get daily read stats graph data

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "graph_data": [
    ]
}

Get user statistics (leaderboards)

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "wpm": {
    },
  • "duration": {
    },
  • "words": {
    }
}

Search

Search external book sources

Authorizations:
BearerAuth
query Parameters
query
required
string
source
required
string
Enum: "LibGen" "Annas Archive"

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "source": "string",
  • "query": "string"
}

Download search result

Authorizations:
BearerAuth
Request Body schema: application/x-www-form-urlencoded
required
source
required
string
title
required
string
author
required
string
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Admin

Get admin page data

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "database_info": {
    }
}

Perform admin action (backup, restore, etc.)

Authorizations:
BearerAuth
Request Body schema: multipart/form-data
required
action
required
string
Enum: "BACKUP" "RESTORE" "METADATA_MATCH" "CACHE_TABLES"
backup_types
Array of strings (BackupType)
Items Enum: "COVERS" "DOCUMENTS"
restore_file
string <binary>

Responses

Response samples

Content type
{
  • "message": "string"
}

Get all users

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Create, update, or delete user

Authorizations:
BearerAuth
Request Body schema: application/x-www-form-urlencoded
required
operation
required
string (OperationType)
Enum: "CREATE" "UPDATE" "DELETE"
user
required
string
password
string
is_admin
boolean

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Get import directory list

Authorizations:
BearerAuth
query Parameters
directory
string
select
string

Responses

Response samples

Content type
application/json
{
  • "current_path": "string",
  • "items": [
    ]
}

Perform import

Authorizations:
BearerAuth
Request Body schema: application/x-www-form-urlencoded
required
directory
required
string
type
required
string (ImportType)
Enum: "DIRECT" "COPY"

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Get import results

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Get logs with optional filter

Authorizations:
BearerAuth
query Parameters
filter
string
page
integer <int64> >= 1
limit
integer <int64> >= 1

Responses

Response samples

Content type
application/json
{
  • "logs": [
    ],
  • "filter": "string",
  • "page": 0,
  • "limit": 0,
  • "next_page": 0,
  • "previous_page": 0,
  • "total": 0
}
+ + + +