pbxg33k/kavita-client

Maintainers

Package info

github.com/PBXg33k/kavita-client

Homepage

pkg:composer/pbxg33k/kavita-client

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.2 2026-05-08 11:22 UTC

This package is auto-updated.

Last update: 2026-05-08 11:22:37 UTC


README

Kavita provides a set of APIs authenticated via an Auth Key passed in the x-api-key header. Generate an Auth Key under User Settings → Manage Auth Keys, paste it into the Authorize panel, and all Try It requests will include it. Assume all fields of a payload are required unless marked optional. Built against v0.9.0.0

This PHP package is automatically generated by the Swagger Codegen project:

  • API version: 0.9.0.0
  • Build package: io.swagger.codegen.v3.generators.php.PhpClientCodegen

Requirements

PHP 5.5 and later

Installation & Usage

Composer

To install the bindings via Composer, add the following to composer.json:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/pbxg33k/kavita-client.git"
    }
  ],
  "require": {
    "pbxg33k/kavita-client": "*@dev"
  }
}

Then run composer install

Manual Installation

Download the files and include autoload.php:

    require_once('/path/to/kavita-client/vendor/autoload.php');

Tests

To run the unit tests:

composer install
./vendor/bin/phpunit

Getting Started

Please follow the installation procedure and then run the following:

<?php
require_once(__DIR__ . '/vendor/autoload.php');

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$auth_key_id = 56; // int | 

try {
    $apiInstance->apiAccountAuthKeyDelete($auth_key_id);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountAuthKeyDelete: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->apiAccountAuthKeysGet();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountAuthKeysGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $apiInstance->apiAccountClearOidcLinkPost();
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountClearOidcLinkPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\ConfirmEmailDto(); // \Pbxg33k\KavitaClient\Model\ConfirmEmailDto | 

try {
    $result = $apiInstance->apiAccountConfirmEmailPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountConfirmEmailPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\ConfirmEmailUpdateDto(); // \Pbxg33k\KavitaClient\Model\ConfirmEmailUpdateDto | 

try {
    $apiInstance->apiAccountConfirmEmailUpdatePost($body);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountConfirmEmailUpdatePost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\ConfirmMigrationEmailDto(); // \Pbxg33k\KavitaClient\Model\ConfirmMigrationEmailDto | 

try {
    $result = $apiInstance->apiAccountConfirmMigrationEmailPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountConfirmMigrationEmailPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\ConfirmPasswordResetDto(); // \Pbxg33k\KavitaClient\Model\ConfirmPasswordResetDto | 

try {
    $result = $apiInstance->apiAccountConfirmPasswordResetPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountConfirmPasswordResetPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\RotateAuthKeyRequestDto(); // \Pbxg33k\KavitaClient\Model\RotateAuthKeyRequestDto | 

try {
    $result = $apiInstance->apiAccountCreateAuthKeyPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountCreateAuthKeyPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->apiAccountEmailConfirmedGet();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountEmailConfirmedGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$email = "email_example"; // string | 

try {
    $result = $apiInstance->apiAccountForgotPasswordPost($email);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountForgotPasswordPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->apiAccountGet();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\InviteUserDto(); // \Pbxg33k\KavitaClient\Model\InviteUserDto | 

try {
    $result = $apiInstance->apiAccountInvitePost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountInvitePost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$user_id = 56; // int | 
$with_base_url = true; // bool | Include the \"https://ip:port/\" in the generated link

try {
    $result = $apiInstance->apiAccountInviteUrlGet($user_id, $with_base_url);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountInviteUrlGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->apiAccountIsEmailValidGet();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountIsEmailValidGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\LoginDto(); // \Pbxg33k\KavitaClient\Model\LoginDto | 

try {
    $result = $apiInstance->apiAccountLoginPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountLoginPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->apiAccountOidcAuthenticatedGet();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountOidcAuthenticatedGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$auth_key_name = "auth_key_name_example"; // string | 

try {
    $result = $apiInstance->apiAccountOpdsUrlGet($auth_key_name);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountOpdsUrlGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);

try {
    $result = $apiInstance->apiAccountRefreshAccountGet();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountRefreshAccountGet: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\TokenRequestDto(); // \Pbxg33k\KavitaClient\Model\TokenRequestDto | 

try {
    $result = $apiInstance->apiAccountRefreshTokenPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountRefreshTokenPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\RegisterDto(); // \Pbxg33k\KavitaClient\Model\RegisterDto | 

try {
    $result = $apiInstance->apiAccountRegisterPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountRegisterPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$user_id = 56; // int | 

try {
    $result = $apiInstance->apiAccountResendConfirmationEmailPost($user_id);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountResendConfirmationEmailPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\ResetPasswordDto(); // \Pbxg33k\KavitaClient\Model\ResetPasswordDto | 

try {
    $apiInstance->apiAccountResetPasswordPost($body);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountResetPasswordPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\RotateAuthKeyRequestDto(); // \Pbxg33k\KavitaClient\Model\RotateAuthKeyRequestDto | 
$auth_key_id = 56; // int | 

try {
    $result = $apiInstance->apiAccountRotateAuthKeyPost($body, $auth_key_id);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountRotateAuthKeyPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\UpdateAgeRestrictionDto(); // \Pbxg33k\KavitaClient\Model\UpdateAgeRestrictionDto | 

try {
    $apiInstance->apiAccountUpdateAgeRestrictionPost($body);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountUpdateAgeRestrictionPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\UpdateEmailDto(); // \Pbxg33k\KavitaClient\Model\UpdateEmailDto | 

try {
    $result = $apiInstance->apiAccountUpdateEmailPost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountUpdateEmailPost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\UpdateUserDto(); // \Pbxg33k\KavitaClient\Model\UpdateUserDto | 

try {
    $apiInstance->apiAccountUpdatePost($body);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountUpdatePost: ', $e->getMessage(), PHP_EOL;
}

// Configure API key authorization: AuthKey
$config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKey('x-api-key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Pbxg33k\KavitaClient\Configuration::getDefaultConfiguration()->setApiKeyPrefix('x-api-key', 'Bearer');

$apiInstance = new Pbxg33k\KavitaClient\Api\AccountApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$body = new \Pbxg33k\KavitaClient\Model\UpdateUsernameRequestDto(); // \Pbxg33k\KavitaClient\Model\UpdateUsernameRequestDto | 

try {
    $result = $apiInstance->apiAccountUpdateUsernamePost($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->apiAccountUpdateUsernamePost: ', $e->getMessage(), PHP_EOL;
}
?>

Documentation for API Endpoints

All URIs are relative to {protocol}://{hostpath}

Class Method HTTP request Description
AccountApi apiAccountAuthKeyDelete DELETE /api/Account/auth-key Delete the Auth Key
AccountApi apiAccountAuthKeysGet GET /api/Account/auth-keys Returns all Auth Keys with the account
AccountApi apiAccountClearOidcLinkPost POST /api/Account/clear-oidc-link Remove the OIDC link for the authenticated user. This action will also remove the authentication cookie. The caller should take note and redirect to login if no other authentication is currently present (I.e. JWT)
AccountApi apiAccountConfirmEmailPost POST /api/Account/confirm-email Last step in authentication flow, confirms the email token for email
AccountApi apiAccountConfirmEmailUpdatePost POST /api/Account/confirm-email-update Final step in email update change. Given a confirmation token and the email, this will finish the email change.
AccountApi apiAccountConfirmMigrationEmailPost POST /api/Account/confirm-migration-email
AccountApi apiAccountConfirmPasswordResetPost POST /api/Account/confirm-password-reset
AccountApi apiAccountCreateAuthKeyPost POST /api/Account/create-auth-key Creates a new Auth Key for a user.
AccountApi apiAccountEmailConfirmedGet GET /api/Account/email-confirmed
AccountApi apiAccountForgotPasswordPost POST /api/Account/forgot-password Will send user a link to update their password to their email or prompt them if not accessible
AccountApi apiAccountGet GET /api/Account Returns the current user, as it would from login
AccountApi apiAccountInvitePost POST /api/Account/invite Invites a user to the server. Will generate a setup link for continuing setup. If email is not setup, a link will be presented to user to continue setup.
AccountApi apiAccountInviteUrlGet GET /api/Account/invite-url Requests the Invite Url for the AppUserId. Will return error if user is already validated.
AccountApi apiAccountIsEmailValidGet GET /api/Account/is-email-valid Is the user's current email valid or not
AccountApi apiAccountLoginPost POST /api/Account/login Perform a login. Will send JWT Token of the logged in user back.
AccountApi apiAccountOidcAuthenticatedGet GET /api/Account/oidc-authenticated Returns true if OIDC authentication cookies are present and the Kavita.Server.Extensions.IdentityServiceExtensions.OpenIdConnect scheme has been registered
AccountApi apiAccountOpdsUrlGet GET /api/Account/opds-url Returns the OPDS url for this user
AccountApi apiAccountRefreshAccountGet GET /api/Account/refresh-account Returns an up-to-date user account
AccountApi apiAccountRefreshTokenPost POST /api/Account/refresh-token Refreshes the user's JWT token
AccountApi apiAccountRegisterPost POST /api/Account/register Register the first user (admin) on the server. Will not do anything if an admin is already confirmed
AccountApi apiAccountResendConfirmationEmailPost POST /api/Account/resend-confirmation-email Resend an invite to a user already invited
AccountApi apiAccountResetPasswordPost POST /api/Account/reset-password Update a user's password
AccountApi apiAccountRotateAuthKeyPost POST /api/Account/rotate-auth-key Rotate the Auth Key
AccountApi apiAccountUpdateAgeRestrictionPost POST /api/Account/update/age-restriction Change the Age Rating restriction for the user
AccountApi apiAccountUpdateEmailPost POST /api/Account/update/email Initiates the flow to update a user's email address. If email is not setup, then the email address is not changed in this API. A confirmation link is sent/dumped which will validate the email. It must be confirmed for the email to update.
AccountApi apiAccountUpdatePost POST /api/Account/update Update the user account. This can only affect Username, Email (will require confirming), Roles, and Library access.
AccountApi apiAccountUpdateUsernamePost POST /api/Account/update/username Initiates the flow to update a user's username.
ActivityApi apiActivityCurrentGet GET /api/Activity/current Returns active reading sessions on the Server
AdminApi apiAdminExistsGet GET /api/Admin/exists Checks if an admin exists on the system. This is essentially a check to validate if the system has been set up.
AnnotationApi apiAnnotationAllFilteredPost POST /api/Annotation/all-filtered Returns a list of annotations for browsing
AnnotationApi apiAnnotationAllForSeriesGet GET /api/Annotation/all-for-series Returns all annotations by Series
AnnotationApi apiAnnotationAllGet GET /api/Annotation/all Returns the annotations for the given chapter
AnnotationApi apiAnnotationAnnotationIdGet GET /api/Annotation/{annotationId} Returns the Annotation by Id. User must have access to annotation.
AnnotationApi apiAnnotationBulkDeletePost POST /api/Annotation/bulk-delete Removes annotations in bulk. Requires every annotation to be owned by the authenticated user
AnnotationApi apiAnnotationCreatePost POST /api/Annotation/create Create a new Annotation for the user against a Chapter
AnnotationApi apiAnnotationDelete DELETE /api/Annotation Delete the annotation for the user
AnnotationApi apiAnnotationExportFilterPost POST /api/Annotation/export-filter Exports annotations for the given users
AnnotationApi apiAnnotationExportPost POST /api/Annotation/export Exports Annotations for the User
AnnotationApi apiAnnotationLikePost POST /api/Annotation/like Adds a like for the currently authenticated user if not already from the annotations with given ids
AnnotationApi apiAnnotationUnlikePost POST /api/Annotation/unlike Removes likes for the currently authenticated user if present from the annotations with given ids
AnnotationApi apiAnnotationUpdatePost POST /api/Annotation/update Update the modifiable fields (Spoiler, highlight slot, and comment) for an annotation
BookApi apiBookChapterIdBookInfoGet GET /api/Book/{chapterId}/book-info Retrieves information for the PDF and Epub reader. This will cache the file.
BookApi apiBookChapterIdBookPageGet GET /api/Book/{chapterId}/book-page This returns a single page within the epub book. All html will be rewritten to be scoped within our reader, all css is scoped, etc.
BookApi apiBookChapterIdBookResourcesGet GET /api/Book/{chapterId}/book-resources This is an entry point to fetch resources from within an epub chapter/book.
BookApi apiBookChapterIdChaptersGet GET /api/Book/{chapterId}/chapters This will return a list of mappings from ID -> page num. ID will be the xhtml key and page num will be the reading order this is used to rewrite anchors in the book text so that we always load properly in our reader.
CblApi apiCblBrowseGet GET /api/Cbl/browse Provides the browse CBL Repo interface. Requires Download role.
CblApi apiCblFileImportPost POST /api/Cbl/file-import Saves an uploaded CBL file to disk without importing. Returns the saved file info.
CblApi apiCblFinalizeImportPost POST /api/Cbl/finalize-import Finalizes the import of a saved CBL file with user decisions
CblApi apiCblReValidatePost POST /api/Cbl/re-validate Validates an already-saved CBL file on disk. Called by the import modal after remap rule changes.
CblApi apiCblRemapRulesAllGet GET /api/Cbl/remap-rules/all Returns all rules across all users
CblApi apiCblRemapRulesGet GET /api/Cbl/remap-rules Returns all remap rules accessible to the current user (own rules + global/admin rules).
CblApi apiCblRemapRulesIdDelete DELETE /api/Cbl/remap-rules/{id} Deletes a remap rule. Users can only delete their own rules.
CblApi apiCblRemapRulesIdDemotePost POST /api/Cbl/remap-rules/{id}/demote Demotes a global remap rule back to user-scoped. Admin-only.
CblApi apiCblRemapRulesIdPost POST /api/Cbl/remap-rules/{id} Updates a remap rule with issue-level detail (volume/chapter).
CblApi apiCblRemapRulesIdPromotePost POST /api/Cbl/remap-rules/{id}/promote Promotes a remap rule to global scope. Admin-only.
CblApi apiCblRemapRulesPost POST /api/Cbl/remap-rules Creates a new remap rule, or updates an existing one if a rule with the same CBL matching key (normalized name + volume + number) already exists for this user. When no explicit VolumeId is provided, attempts to auto-resolve a matching volume on the target series from the CBL volume string.
CblApi apiCblRepoImportPost POST /api/Cbl/repo-import Downloads selected CBL files from the GitHub repo and saves them to disk without importing.
CblApi apiCblSyncPost POST /api/Cbl/sync Enqueues the Reading List to be synced on a background thread. UI will be informed from Kavita.Models.DTOs.SignalR.MessageFactory.ReadingListUpdated event
CblApi apiCblUploadCblFilePost POST /api/Cbl/upload-cbl-file Downloads a CBL file from a URL and saves it to disk without importing.
ChapterApi apiChapterChapterDetailPlusGet GET /api/Chapter/chapter-detail-plus Returns Ratings and Reviews for an individual Chapter
ChapterApi apiChapterDelete DELETE /api/Chapter Removes a Chapter
ChapterApi apiChapterDeleteMultiplePost POST /api/Chapter/delete-multiple Deletes multiple chapters and any volumes with no leftover chapters
ChapterApi apiChapterGet GET /api/Chapter Gets a single chapter
ChapterApi apiChapterUpdatePost POST /api/Chapter/update Update chapter metadata
CollectionApi apiCollectionAllSeriesGet GET /api/Collection/all-series Returns all collections that contain the Series for the user with the option to allow for promoted collections (non-user owned)
CollectionApi apiCollectionDelete DELETE /api/Collection Removes the collection tag from the user
CollectionApi apiCollectionDeleteMultiplePost POST /api/Collection/delete-multiple Delete multiple collections in one go
CollectionApi apiCollectionGet GET /api/Collection Returns all Collection tags for a given User
CollectionApi apiCollectionImportStackPost POST /api/Collection/import-stack Imports a MAL Stack into Kavita
CollectionApi apiCollectionMalStacksGet GET /api/Collection/mal-stacks For the authenticated user, if they have an active Kavita+ subscription and a MAL username on record, fetch their Mal interest stacks (including restacks)
CollectionApi apiCollectionNameExistsGet GET /api/Collection/name-exists Checks if a collection exists with the name
CollectionApi apiCollectionPromoteMultiplePost POST /api/Collection/promote-multiple Promote/UnPromote multiple collections in one go. Will only update the authenticated user's collections and will only work if the user has promotion role
CollectionApi apiCollectionSingleGet GET /api/Collection/single Returns a single Collection tag by Id for a given user
CollectionApi apiCollectionUpdateForSeriesPost POST /api/Collection/update-for-series Adds multiple series to a collection. If tag id is 0, this will create a new tag.
CollectionApi apiCollectionUpdatePost POST /api/Collection/update Updates an existing tag with a new title, promotion status, and summary. <remarks>UI does not contain controls to update title</remarks>
CollectionApi apiCollectionUpdateSeriesPost POST /api/Collection/update-series For a given tag, update the summary if summary has changed and remove a set of series from the tag.
ColorScapeApi apiColorScapeChapterGet GET /api/ColorScape/chapter Returns the color scape for a chapter
ColorScapeApi apiColorScapeSeriesGet GET /api/ColorScape/series Returns the color scape for a series
ColorScapeApi apiColorScapeVolumeGet GET /api/ColorScape/volume Returns the color scape for a volume
DeviceApi apiDeviceClientAllDevicesGet GET /api/Device/client/all-devices Get All user client devices
DeviceApi apiDeviceClientDeviceDelete DELETE /api/Device/client/device Removes the client device from DB
DeviceApi apiDeviceClientDevicesGet GET /api/Device/client/devices Get my client devices
DeviceApi apiDeviceClientUpdateNamePost POST /api/Device/client/update-name Update the friendly name of the Device
DeviceApi apiDeviceCreatePost POST /api/Device/create Creates a new Device
DeviceApi apiDeviceDelete DELETE /api/Device Deletes the device from the user
DeviceApi apiDeviceGet GET /api/Device
DeviceApi apiDeviceSendSeriesToPost POST /api/Device/send-series-to Attempts to send a whole series to a device.
DeviceApi apiDeviceSendToPost POST /api/Device/send-to Sends a collection of chapters to the user's device
DeviceApi apiDeviceUpdatePost POST /api/Device/update Updates an existing Device
DownloadApi apiDownloadBookmarksPost POST /api/Download/bookmarks Downloads all bookmarks in a zip for
DownloadApi apiDownloadBulkChapterSizePost POST /api/Download/bulk-chapter-size For a set of chapters, return the size in bytes
DownloadApi apiDownloadBulkReadinglistSizePost POST /api/Download/bulk-readinglist-size Returns the mapping of readinglist -> size
DownloadApi apiDownloadBulkSeriesSizePost POST /api/Download/bulk-series-size For a set of series, return the size in bytes
DownloadApi apiDownloadBulkVolumeSizePost POST /api/Download/bulk-volume-size For a set of volumes, return the size in bytes
DownloadApi apiDownloadChapterGet GET /api/Download/chapter Returns the zip for a single chapter. If the chapter contains multiple files, they will be zipped.
DownloadApi apiDownloadChapterSizeGet GET /api/Download/chapter-size For a given chapter, return the size in bytes
DownloadApi apiDownloadReadinglistSizeGet GET /api/Download/readinglist-size Returns the filesize for all items of a reading list that the requesting user has access to
DownloadApi apiDownloadSeriesGet GET /api/Download/series
DownloadApi apiDownloadSeriesSizeGet GET /api/Download/series-size For a series, return the size in bytes
DownloadApi apiDownloadVolumeGet GET /api/Download/volume Downloads all chapters within a volume. If the chapters are multiple zips, they will all be zipped up.
DownloadApi apiDownloadVolumeSizeGet GET /api/Download/volume-size For a given volume, return the size in bytes
EmailApi apiEmailAllGet GET /api/Email/all
FilterApi apiFilterDecodePost POST /api/Filter/decode Decodes the Filter
FilterApi apiFilterDelete DELETE /api/Filter Delete the smart filter for the authenticated user
FilterApi apiFilterEncodeAnnotationPost POST /api/Filter/encode/annotation Encode an Annotation Filter
FilterApi apiFilterEncodePersonPost POST /api/Filter/encode/person Encode a Person Filter
FilterApi apiFilterEncodeReadingListPost POST /api/Filter/encode/reading-list Encode a Reading List filter
FilterApi apiFilterEncodeSeriesPost POST /api/Filter/encode/series Encode a Series filter
FilterApi apiFilterGet GET /api/Filter All Smart Filters for the authenticated user
FilterApi apiFilterRenamePost POST /api/Filter/rename Rename a Smart Filter given the filterId and new name
FilterApi apiFilterUpdateAnnotationPost POST /api/Filter/update/annotation Creates or Updates the Reading List filter
FilterApi apiFilterUpdatePersonPost POST /api/Filter/update/person Creates or Updates the Person filter
FilterApi apiFilterUpdateReadingListPost POST /api/Filter/update/reading-list Creates or Updates the Reading List filter
FilterApi apiFilterUpdateSeriesPost POST /api/Filter/update/series Creates or Updates the Series filter
FontApi apiFontAllGet GET /api/Font/all List out the fonts
FontApi apiFontDelete DELETE /api/Font Removes a font from the system
FontApi apiFontGet GET /api/Font Returns a font file
FontApi apiFontInUseGet GET /api/Font/in-use Returns if the given font is in use by any other user. System provided fonts will always return true.
FontApi apiFontUploadByUrlPost POST /api/Font/upload-by-url
FontApi apiFontUploadPost POST /api/Font/upload Manual upload
HealthApi apiHealthGet GET /api/Health No-op method that just returns Ok. Used for health checks in Docker containers.
ImageApi apiImageBookmarkGet GET /api/Image/bookmark Returns image for a given bookmark page
ImageApi apiImageChapterCoverGet GET /api/Image/chapter-cover Returns cover image for Chapter
ImageApi apiImageCollectionCoverGet GET /api/Image/collection-cover Returns cover image for Collection
ImageApi apiImageCoverUploadGet GET /api/Image/cover-upload Returns a temp coverupload image
ImageApi apiImageLibraryCoverGet GET /api/Image/library-cover Returns cover image for Library
ImageApi apiImagePersonCoverGet GET /api/Image/person-cover Returns cover image for Person
ImageApi apiImagePublisherGet GET /api/Image/publisher Returns the image associated with a publisher
ImageApi apiImageReadinglistCoverGet GET /api/Image/readinglist-cover Returns cover image for a Reading List
ImageApi apiImageSeriesCoverGet GET /api/Image/series-cover Returns cover image for Series
ImageApi apiImageUserCoverGet GET /api/Image/user-cover Returns cover image for User
ImageApi apiImageVolumeCoverGet GET /api/Image/volume-cover Returns cover image for Volume
ImageApi apiImageWebLinkGet GET /api/Image/web-link Returns the image associated with a web-link
KoreaderApi apiKoreaderApiKeySyncsProgressEbookHashGet GET /api/Koreader/{apiKey}/syncs/progress/{ebookHash} Gets book progress from Kavita, if not found will return a 400
KoreaderApi apiKoreaderApiKeySyncsProgressPut PUT /api/Koreader/{apiKey}/syncs/progress Syncs book progress with Kavita. Will attempt to save the underlying reader position if possible.
KoreaderApi apiKoreaderApiKeyUsersAuthGet GET /api/Koreader/{apiKey}/users/auth
LibraryApi apiLibraryCopySettingsFromPost POST /api/Library/copy-settings-from Copy the library settings (adv tab + optional type) to a set of other libraries.
LibraryApi apiLibraryCreatePost POST /api/Library/create Creates a new Library. Upon library creation, adds new library to all Admin accounts.
LibraryApi apiLibraryDeleteDelete DELETE /api/Library/delete Deletes the library and all series within it.
LibraryApi apiLibraryDeleteMultipleDelete DELETE /api/Library/delete-multiple Deletes multiple libraries and all series within it.
LibraryApi apiLibraryGet GET /api/Library Return a specific library
LibraryApi apiLibraryGrantAccessPost POST /api/Library/grant-access Grants a user account access to a Library
LibraryApi apiLibraryHasFilesAtRootPost POST /api/Library/has-files-at-root For each root, checks if there are any supported files at root to warn the user during library creation about an invalid setup
LibraryApi apiLibraryJumpBarGet GET /api/Library/jump-bar For a given library, generate the jump bar information
LibraryApi apiLibraryLibrariesGet GET /api/Library/libraries Return all libraries in the Server
LibraryApi apiLibraryListGet GET /api/Library/list Returns a list of directories for a given path. If path is empty, returns root drives.
LibraryApi apiLibraryNameExistsGet GET /api/Library/name-exists Checks if the library name exists or not
LibraryApi apiLibraryRefreshMetadataMultiplePost POST /api/Library/refresh-metadata-multiple
LibraryApi apiLibraryRefreshMetadataPost POST /api/Library/refresh-metadata
LibraryApi apiLibraryScanAllPost POST /api/Library/scan-all Scans a given library for file changes. If another scan task is in progress, will reschedule the invocation for 3 hours in future.
LibraryApi apiLibraryScanFolderPost POST /api/Library/scan-folder Given a valid path, will invoke either a Scan Series or Scan Library. If the folder does not exist within Kavita, the request will be ignored
LibraryApi apiLibraryScanMultiplePost POST /api/Library/scan-multiple Enqueues a bunch of library scans
LibraryApi apiLibraryScanPost POST /api/Library/scan Scans a given library for file changes.
LibraryApi apiLibraryTypeGet GET /api/Library/type Returns the type of the underlying library
LibraryApi apiLibraryUpdatePost POST /api/Library/update Updates an existing Library with new name, folders, and/or type.
LibraryApi apiLibraryUserLibrariesGet GET /api/Library/user-libraries Gets libraries for the given user that you also have access to
LicenseApi apiLicenseDelete DELETE /api/License Remove the Kavita+ License on the Server
LicenseApi apiLicenseHasLicenseGet GET /api/License/has-license Has any license registered with the instance. Does not validate against Kavita+ API
LicenseApi apiLicenseInfoGet GET /api/License/info Asks Kavita+ for the latest license info
LicenseApi apiLicensePost POST /api/License Updates server license
LicenseApi apiLicenseResendLicensePost POST /api/License/resend-license Resend the welcome email to the user
LicenseApi apiLicenseResetPost POST /api/License/reset Break the registration between Kavita+ and this instance
LicenseApi apiLicenseValidLicenseGet GET /api/License/valid-license Checks if the user's license is valid or not
LocaleApi apiLocaleGet GET /api/Locale Returns all applicable locales on the server
ManageApi apiManageSeriesMetadataPost POST /api/Manage/series-metadata Returns a list of all Series that is Kavita+ applicable to metadata match and the status of it
MetadataApi apiMetadataAgeRatingsGet GET /api/Metadata/age-ratings Fetches all age ratings from the instance
MetadataApi apiMetadataAllLanguagesGet GET /api/Metadata/all-languages Returns all languages Kavita can accept
MetadataApi apiMetadataGenresGet GET /api/Metadata/genres Fetches genres from the instance
MetadataApi apiMetadataGenresWithCountsPost POST /api/Metadata/genres-with-counts Returns a list of Genres with counts for counts when Genre is on Series/Chapter
MetadataApi apiMetadataLanguageTitleGet GET /api/Metadata/language-title Given a language code returns the display name
MetadataApi apiMetadataLanguagesGet GET /api/Metadata/languages Fetches all age languages from the libraries passed (or if none passed, all in the server)
MetadataApi apiMetadataPeopleByRoleGet GET /api/Metadata/people-by-role Fetches people from the instance by role
MetadataApi apiMetadataPeopleGet GET /api/Metadata/people Fetches people from the instance
MetadataApi apiMetadataPublicationStatusGet GET /api/Metadata/publication-status Fetches all publication status' from the instance
MetadataApi apiMetadataReadinglistTagsGet GET /api/Metadata/readinglist-tags Fetches Reading List Tags from the instance
MetadataApi apiMetadataSeriesDetailPlusGet GET /api/Metadata/series-detail-plus Fetches the details needed from Kavita+ for Series Detail page
MetadataApi apiMetadataTagsGet GET /api/Metadata/tags Fetches all tags from the instance
MetadataApi apiMetadataTagsWithCountsPost POST /api/Metadata/tags-with-counts Returns a list of Tags with counts for counts when Tag is on Series/Chapter
OidcApi oidcLoginGet GET /Oidc/login
OidcApi oidcLogoutGet GET /Oidc/logout
OpdsApi apiOpdsApiKeyCollectionsCollectionIdGet GET /api/Opds/{apiKey}/collections/{collectionId} Get Series for a given Collection - Supports Pagination
OpdsApi apiOpdsApiKeyCollectionsGet GET /api/Opds/{apiKey}/collections Get all Collections - Supports Pagination
OpdsApi apiOpdsApiKeyFaviconGet GET /api/Opds/{apiKey}/favicon
OpdsApi apiOpdsApiKeyGet GET /api/Opds/{apiKey} Returns the Catalogue for Kavita's OPDS Service
OpdsApi apiOpdsApiKeyImageGet GET /api/Opds/{apiKey}/image This returns a streamed image following OPDS-PS v1.2
OpdsApi apiOpdsApiKeyLibrariesGet GET /api/Opds/{apiKey}/libraries Get the User's Libraries - No Pagination Support
OpdsApi apiOpdsApiKeyLibrariesLibraryIdGet GET /api/Opds/{apiKey}/libraries/{libraryId} Returns Series from the Library - Supports Pagination
OpdsApi apiOpdsApiKeyOnDeckGet GET /api/Opds/{apiKey}/on-deck Get the On Deck (Dashboard) - Supports Pagination
OpdsApi apiOpdsApiKeyPost POST /api/Opds/{apiKey} Returns the Catalogue for Kavita's OPDS Service
OpdsApi apiOpdsApiKeyReadingListGet GET /api/Opds/{apiKey}/reading-list Get a User's Reading Lists - Supports Pagination
OpdsApi apiOpdsApiKeyReadingListReadingListIdGet GET /api/Opds/{apiKey}/reading-list/{readingListId} Returns individual items (chapters) from Reading List by ID - Supports Pagination
OpdsApi apiOpdsApiKeyRecentlyAddedGet GET /api/Opds/{apiKey}/recently-added Returns Recently Added (Dashboard Feed) - Supports Pagination
OpdsApi apiOpdsApiKeyRecentlyUpdatedGet GET /api/Opds/{apiKey}/recently-updated Get the Recently Updated Series (Dashboard) - Pagination available, total pages will not be filled due to underlying implementation
OpdsApi apiOpdsApiKeySearchGet GET /api/Opds/{apiKey}/search
OpdsApi apiOpdsApiKeySeriesGet GET /api/Opds/{apiKey}/series OPDS Search endpoint
OpdsApi apiOpdsApiKeySeriesSeriesIdGet GET /api/Opds/{apiKey}/series/{seriesId} Returns the items within a Series (Series Detail)
OpdsApi apiOpdsApiKeySeriesSeriesIdVolumeVolumeIdChapterChapterIdDownloadFilenameGet GET /api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}/download/{filename} Downloads a file (user must have download permission)
OpdsApi apiOpdsApiKeySeriesSeriesIdVolumeVolumeIdChapterChapterIdGet GET /api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId} Gets items for a given Chapter
OpdsApi apiOpdsApiKeySeriesSeriesIdVolumeVolumeIdGet GET /api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId} Returns items for a given Volume
OpdsApi apiOpdsApiKeySmartFiltersFilterIdGet GET /api/Opds/{apiKey}/smart-filters/{filterId} Get the User's Smart Filter - Supports Pagination
OpdsApi apiOpdsApiKeySmartFiltersGet GET /api/Opds/{apiKey}/smart-filters Get the User's Smart Filters (Dashboard Context) - Supports Pagination
OpdsApi apiOpdsApiKeyWantToReadGet GET /api/Opds/{apiKey}/want-to-read Get the User's Want to Read list - Supports Pagination
PanelsApi apiPanelsGetProgressGet GET /api/Panels/get-progress Gets the Progress of a given chapter
PanelsApi apiPanelsSaveProgressPost POST /api/Panels/save-progress Saves the progress of a given chapter. This will generate a reading session with the estimated time from the last progress till the current
PersonApi apiPersonAllPost POST /api/Person/all Returns a list of authors and artists for browsing
PersonApi apiPersonChaptersByRoleGet GET /api/Person/chapters-by-role Returns all individual chapters by role. Limited to 20 results.
PersonApi apiPersonFetchCoverPost POST /api/Person/fetch-cover Attempts to download the cover from CoversDB (Note: Not yet release in Kavita)
PersonApi apiPersonGet GET /api/Person
PersonApi apiPersonMergePost POST /api/Person/merge Merges Persons into one, this action is irreversible
PersonApi apiPersonRolesGet GET /api/Person/roles Returns all roles for a Person
PersonApi apiPersonSearchGet GET /api/Person/search Find a person by name or alias against a query string
PersonApi apiPersonSeriesKnownForGet GET /api/Person/series-known-for Returns the top 20 series that the &quot;person&quot; is known for. This will use Average Rating when applicable (Kavita+ field), else it's a random sort
PersonApi apiPersonUpdatePost POST /api/Person/update Updates the Person
PersonApi apiPersonValidAliasPost POST /api/Person/valid-alias Ensure the alias is valid to be added. For example, the alias cannot be on another person or be the same as the current person name/alias.
PluginApi apiPluginAuthenticatePost POST /api/Plugin/authenticate Authenticate with the Server given an auth key. This will log you in by returning the user object and the JWT token.
PluginApi apiPluginAuthkeyExpiresGet GET /api/Plugin/authkey-expires Returns the expiration (UTC) of the authenticated Auth key (or null if none set)
PluginApi apiPluginParseBulkPost POST /api/Plugin/parse-bulk
PluginApi apiPluginParseGet GET /api/Plugin/parse Parse a string and return Parsed information from it. Does not support any directory fallback parsing
PluginApi apiPluginVersionGet GET /api/Plugin/version Returns the version of the Kavita install
RatingApi apiRatingChapterPost POST /api/Rating/chapter Update the users' rating of the given chapter
RatingApi apiRatingOverallChapterGet GET /api/Rating/overall-chapter Overall rating from all Kavita users for a given Chapter
RatingApi apiRatingOverallSeriesGet GET /api/Rating/overall-series Overall rating from all Kavita users for a given Series
RatingApi apiRatingSeriesPost POST /api/Rating/series Update the users' rating of the given series
ReaderApi apiReaderAllBookmarksPost POST /api/Reader/all-bookmarks Returns a list of all bookmarked pages for a User
ReaderApi apiReaderBookmarkImageGet GET /api/Reader/bookmark-image Returns an image for a given bookmark series. Side effect: This will cache the bookmark images for reading.
ReaderApi apiReaderBookmarkInfoGet GET /api/Reader/bookmark-info Returns various information about all bookmark files for a Series. Side effect: This will cache the bookmark images for reading.
ReaderApi apiReaderBookmarkPost POST /api/Reader/bookmark Bookmarks a page against a Chapter
ReaderApi apiReaderBulkRemoveBookmarksPost POST /api/Reader/bulk-remove-bookmarks Removes all bookmarks for all chapters linked to a Series
ReaderApi apiReaderChapterBookmarksGet GET /api/Reader/chapter-bookmarks Returns a list of bookmarked pages for a given Chapter
ReaderApi apiReaderChapterInfoGet GET /api/Reader/chapter-info Returns various information about a Chapter. Side effect: This will cache the chapter images for reading.
ReaderApi apiReaderContinuePointGet GET /api/Reader/continue-point Continue point is the chapter which you should start reading again from. If there is no progress on a series, then the first chapter will be returned (non-special unless only specials). Otherwise, loop through the chapters and volumes in order to find the next chapter which has progress.
ReaderApi apiReaderCreatePtocPost POST /api/Reader/create-ptoc Create a new personal table of content entry for a given chapter
ReaderApi apiReaderFileDimensionsGet GET /api/Reader/file-dimensions Returns the file dimensions for all pages in a chapter. If the underlying chapter is PDF, use extractPDF to unpack as images.
ReaderApi apiReaderFirstProgressDateGet GET /api/Reader/first-progress-date
ReaderApi apiReaderGetProgressGet GET /api/Reader/get-progress Returns Progress (page number) for a chapter for the logged in user
ReaderApi apiReaderHasProgressGet GET /api/Reader/has-progress Returns if the user has reading progress on the Series
ReaderApi apiReaderImageGet GET /api/Reader/image Returns an image for a given chapter. Will perform bounding checks
ReaderApi apiReaderMarkChapterReadPost POST /api/Reader/mark-chapter-read Mark a single chapter as read
ReaderApi apiReaderMarkMultipleReadPost POST /api/Reader/mark-multiple-read Marks all chapters within a list of volumes as Read. All volumes must belong to the same Series.
ReaderApi apiReaderMarkMultipleSeriesReadPost POST /api/Reader/mark-multiple-series-read Marks all chapters within a list of series as Read.
ReaderApi apiReaderMarkMultipleSeriesUnreadPost POST /api/Reader/mark-multiple-series-unread Marks all chapters within a list of series as Unread.
ReaderApi apiReaderMarkMultipleUnreadPost POST /api/Reader/mark-multiple-unread Marks all chapters within a list of volumes as Unread. All volumes must belong to the same Series.
ReaderApi apiReaderMarkReadPost POST /api/Reader/mark-read Marks a Series as read. All volumes and chapters will be marked as read during this process.
ReaderApi apiReaderMarkUnreadPost POST /api/Reader/mark-unread Marks a Series as Unread. All volumes and chapters will be marked as unread during this process.
ReaderApi apiReaderMarkVolumeReadPost POST /api/Reader/mark-volume-read Marks all chapters within a volume as Read
ReaderApi apiReaderMarkVolumeUnreadPost POST /api/Reader/mark-volume-unread Marks all chapters within a volume as unread
ReaderApi apiReaderNextChapterGet GET /api/Reader/next-chapter Returns the next logical chapter from the series.
ReaderApi apiReaderPdfGet GET /api/Reader/pdf Returns the PDF for the chapterId.
ReaderApi apiReaderPrevChapterGet GET /api/Reader/prev-chapter Returns the previous logical chapter from the series.
ReaderApi apiReaderProgressPost POST /api/Reader/progress Save page against Chapter for authenticated user
ReaderApi apiReaderPromptRereadChapterGet GET /api/Reader/prompt-reread/chapter Check if we should prompt the user for rereads for the given chapter
ReaderApi apiReaderPromptRereadSeriesGet GET /api/Reader/prompt-reread/series Check if we should prompt the user for rereads for the given series
ReaderApi apiReaderPromptRereadVolumeGet GET /api/Reader/prompt-reread/volume Check if we should prompt the user for rereads for the given volume
ReaderApi apiReaderPtocDelete DELETE /api/Reader/ptoc Deletes the user's personal table of content for the given chapter
ReaderApi apiReaderPtocGet GET /api/Reader/ptoc Returns the user's personal table of contents for the given chapter
ReaderApi apiReaderRemoveBookmarksPost POST /api/Reader/remove-bookmarks Removes all bookmarks for all chapters linked to a Series
ReaderApi apiReaderSeriesBookmarksGet GET /api/Reader/series-bookmarks Returns all bookmarked pages for a given series
ReaderApi apiReaderThumbnailGet GET /api/Reader/thumbnail Returns a thumbnail for the given page number
ReaderApi apiReaderTimeLeftForChapterGet GET /api/Reader/time-left-for-chapter For the current user, returns an estimate on how long it would take to finish reading the chapter.
ReaderApi apiReaderTimeLeftGet GET /api/Reader/time-left For the current user, returns an estimate on how long it would take to finish reading the series.
ReaderApi apiReaderUnbookmarkPost POST /api/Reader/unbookmark Removes a bookmarked page for a Chapter
ReaderApi apiReaderVolumeBookmarksGet GET /api/Reader/volume-bookmarks Returns all bookmarked pages for a given volume
ReadingListApi apiReadingListAllPeopleGet GET /api/ReadingList/all-people Returns all people in given roles for a reading list
ReadingListApi apiReadingListAllPost POST /api/ReadingList/all Returns reading lists (paginated) for a given user.
ReadingListApi apiReadingListCreatePost POST /api/ReadingList/create Creates a new List with a unique title. Returns the new ReadingList back
ReadingListApi apiReadingListDelete DELETE /api/ReadingList Deletes a reading list
ReadingListApi apiReadingListDeleteItemPost POST /api/ReadingList/delete-item Deletes a list item from the list. Item orders will update as a result.
ReadingListApi apiReadingListDeleteMultiplePost POST /api/ReadingList/delete-multiple Delete multiple reading lists in one go
ReadingListApi apiReadingListExportAsCblPost POST /api/ReadingList/export-as-cbl Export a Reading List to CBL format
ReadingListApi apiReadingListGet GET /api/ReadingList Fetches a single Reading List
ReadingListApi apiReadingListInfoGet GET /api/ReadingList/info Returns random information about a Reading List
ReadingListApi apiReadingListItemsGet GET /api/ReadingList/items Fetches all reading list items for a given list including rich metadata around series, volume, chapters, and progress
ReadingListApi apiReadingListListsForChapterGet GET /api/ReadingList/lists-for-chapter Returns all Reading Lists the user has access to that has the given chapter within it.
ReadingListApi apiReadingListListsForSeriesGet GET /api/ReadingList/lists-for-series Returns all Reading Lists the user has access to that the given series within it.
ReadingListApi apiReadingListListsPost POST /api/ReadingList/lists Returns reading lists (paginated) for a given user.
ReadingListApi apiReadingListNameExistsGet GET /api/ReadingList/name-exists Checks if a reading list exists with the name
ReadingListApi apiReadingListNextChapterGet GET /api/ReadingList/next-chapter Returns the next chapter within the reading list
ReadingListApi apiReadingListPeopleGet GET /api/ReadingList/people Returns a list of a given role associated with the reading list
ReadingListApi apiReadingListPrevChapterGet GET /api/ReadingList/prev-chapter Returns the prev chapter within the reading list
ReadingListApi apiReadingListPromoteMultiplePost POST /api/ReadingList/promote-multiple Promote/UnPromote multiple reading lists in one go. Will only update the authenticated user's reading lists and will only work if the user has promotion role
ReadingListApi apiReadingListRegenerateCoverPost POST /api/ReadingList/regenerate-cover Regenerates the cover image for a reading list, you must own the given reading list to do this
ReadingListApi apiReadingListRemoveReadPost POST /api/ReadingList/remove-read Removes all entries that are fully read from the reading list
ReadingListApi apiReadingListUpdateByChapterPost POST /api/ReadingList/update-by-chapter
ReadingListApi apiReadingListUpdateByMultiplePost POST /api/ReadingList/update-by-multiple Adds all chapters from a list of volumes and chapters to a reading list
ReadingListApi apiReadingListUpdateByMultipleSeriesPost POST /api/ReadingList/update-by-multiple-series Adds all chapters from a list of series to a reading list
ReadingListApi apiReadingListUpdateBySeriesPost POST /api/ReadingList/update-by-series Adds all chapters from a Series to a reading list
ReadingListApi apiReadingListUpdateByVolumePost POST /api/ReadingList/update-by-volume
ReadingListApi apiReadingListUpdatePositionPost POST /api/ReadingList/update-position Updates an items position
ReadingListApi apiReadingListUpdatePost POST /api/ReadingList/update Update the properties (title, summary) of a reading list
ReadingProfileApi apiReadingProfileAllGet GET /api/reading-profile/all Gets all non-implicit reading profiles for a user
ReadingProfileApi apiReadingProfileBulkPost POST /api/reading-profile/bulk Assigns the reading profile to all passes series, and deletes their implicit profiles
ReadingProfileApi apiReadingProfileCreatePost POST /api/reading-profile/create Creates a new reading profile for the current user
ReadingProfileApi apiReadingProfileDelete DELETE /api/reading-profile Deletes the given profile, requires the profile to belong to the logged-in user
ReadingProfileApi apiReadingProfileLibraryGet GET /api/reading-profile/library Returns all the Reading rofiles bound to the library
ReadingProfileApi apiReadingProfileLibraryIdSeriesIdGet GET /api/reading-profile/{libraryId}/{seriesId} Returns the ReadingProfile that should be applied to the given series, walks up the tree. Series -> Library -> Default
ReadingProfileApi apiReadingProfileLibraryLibraryIdDelete DELETE /api/reading-profile/library/{libraryId} Clears the reading profile for the given library for the currently logged-in user
ReadingProfileApi apiReadingProfileLibraryLibraryIdPost POST /api/reading-profile/library/{libraryId} Sets the reading profile for a given library, removes the old one
ReadingProfileApi apiReadingProfilePost POST /api/reading-profile Updates the given reading profile, must belong to the current user
ReadingProfileApi apiReadingProfilePromotePost POST /api/reading-profile/promote Promotes the implicit profile to a user profile. Removes the series from other profiles
ReadingProfileApi apiReadingProfileSeriesGet GET /api/reading-profile/series Returns all Reading Profiles bound to a series
ReadingProfileApi apiReadingProfileSeriesPost POST /api/reading-profile/series Update the implicit reading profile for a series, creates one if none exists
ReadingProfileApi apiReadingProfileSeriesSeriesIdDelete DELETE /api/reading-profile/series/{seriesId} Clears the reading profile for the given series for the currently logged-in user
ReadingProfileApi apiReadingProfileSeriesSeriesIdPost POST /api/reading-profile/series/{seriesId} Sets the reading profile for a given series, removes the old one
ReadingProfileApi apiReadingProfileSetDevicesPost POST /api/reading-profile/set-devices Set the assigned devices for a reading profile
ReadingProfileApi apiReadingProfileUpdateParentPost POST /api/reading-profile/update-parent Updates the non-implicit reading profile for the given series, and removes implicit profiles
ReviewApi apiReviewAllGet GET /api/Review/all Returns all reviews for the user. If you are authenticated as the user, will always return data, regardless of ShareReviews setting
ReviewApi apiReviewChapterDelete DELETE /api/Review/chapter Deletes the user's review for the given chapter
ReviewApi apiReviewChapterPost POST /api/Review/chapter Update the user's review for a given chapter
ReviewApi apiReviewSeriesDelete DELETE /api/Review/series Deletes the user's review for the given series
ReviewApi apiReviewSeriesPost POST /api/Review/series Updates the user's review for a given series
ScrobblingApi apiScrobblingAddHoldPost POST /api/Scrobbling/add-hold Adds a hold against the Series for user's scrobbling
ScrobblingApi apiScrobblingAnilistTokenGet GET /api/Scrobbling/anilist-token Get the current user's AniList token
ScrobblingApi apiScrobblingBulkRemoveEventsPost POST /api/Scrobbling/bulk-remove-events Delete the given scrobble events if they belong to that user
ScrobblingApi apiScrobblingClearErrorsPost POST /api/Scrobbling/clear-errors Clears the scrobbling errors table
ScrobblingApi apiScrobblingGenerateScrobbleEventsPost POST /api/Scrobbling/generate-scrobble-events When a user request to generate scrobble events from history. Should only be ran once per user.
ScrobblingApi apiScrobblingHasHoldGet GET /api/Scrobbling/has-hold If there is an active hold on the series
ScrobblingApi apiScrobblingHasRanScrobbleGenGet GET /api/Scrobbling/has-ran-scrobble-gen Has the logged in user ran scrobble generation
ScrobblingApi apiScrobblingHoldsGet GET /api/Scrobbling/holds Returns all scrobble holds for the current user
ScrobblingApi apiScrobblingLibraryAllowsScrobblingGet GET /api/Scrobbling/library-allows-scrobbling Does the library the series is in allow scrobbling?
ScrobblingApi apiScrobblingMalTokenGet GET /api/Scrobbling/mal-token Get the current user's MAL token and username
ScrobblingApi apiScrobblingRemoveHoldDelete DELETE /api/Scrobbling/remove-hold Remove a hold against the Series for user's scrobbling
ScrobblingApi apiScrobblingScrobbleErrorsGet GET /api/Scrobbling/scrobble-errors Returns all scrobbling errors for the instance
ScrobblingApi apiScrobblingScrobbleEventsPost POST /api/Scrobbling/scrobble-events Returns the scrobbling history for the user
ScrobblingApi apiScrobblingTokenExpiredGet GET /api/Scrobbling/token-expired Checks if the current Scrobbling token for the given Provider has expired for the current user
ScrobblingApi apiScrobblingUpdateAnilistTokenPost POST /api/Scrobbling/update-anilist-token Update the current user's AniList token
ScrobblingApi apiScrobblingUpdateMalTokenPost POST /api/Scrobbling/update-mal-token Update the current user's MAL token (Client ID) and Username
SearchApi apiSearchChaptersBySeriesGet GET /api/Search/chapters-by-series Returns all chapters for a given series with localized titles. Used for CBL chapter-level matching.
SearchApi apiSearchSearchGet GET /api/Search/search Searches against different entities in the system against a query string
SearchApi apiSearchSeriesForChapterGet GET /api/Search/series-for-chapter Returns the series for the Chapter id. If the user does not have access (shouldn't happen by the UI), then null is returned
SearchApi apiSearchSeriesForMangafileGet GET /api/Search/series-for-mangafile Returns the series for the MangaFile id. If the user does not have access (shouldn't happen by the UI), then null is returned
SeriesApi apiSeriesAgeRatingGet GET /api/Series/age-rating Get the age rating for the Kavita.Models.Entities.Enums.AgeRating enum value
SeriesApi apiSeriesAllRelatedGet GET /api/Series/all-related Returns all related series against the passed series Id
SeriesApi apiSeriesAllV2Post POST /api/Series/all-v2 Returns all series for the library
SeriesApi apiSeriesAnalyzePost POST /api/Series/analyze Run a file analysis on the series.
SeriesApi apiSeriesChapterGet GET /api/Series/chapter Returns a single Chapter with progress information
SeriesApi apiSeriesCurrentlyReadingGet GET /api/Series/currently-reading Get series a user is currently reading, requires the user to share their profile
SeriesApi apiSeriesDeleteMultiplePost POST /api/Series/delete-multiple Deletes multiple series from Kavita at once
SeriesApi apiSeriesDontMatchPost POST /api/Series/dont-match When true, will not perform a match and will prevent Kavita from attempting to match/scrobble against this series
SeriesApi apiSeriesExternalSeriesDetailGet GET /api/Series/external-series-detail
SeriesApi apiSeriesMatchPost POST /api/Series/match Sends a request to Kavita+ API for all potential matches, sorted by relevance
SeriesApi apiSeriesMetadataGet GET /api/Series/metadata Returns metadata for a given series
SeriesApi apiSeriesMetadataPost POST /api/Series/metadata Update series metadata
SeriesApi apiSeriesNextExpectedGet GET /api/Series/next-expected Based on the delta times between when chapters are added, for series that are not Completed/Cancelled/Hiatus, forecast the next date when it will be available.
SeriesApi apiSeriesOnDeckPost POST /api/Series/on-deck Fetches series that are on deck aka have progress on them.
SeriesApi apiSeriesRecentlyAddedV2Post POST /api/Series/recently-added-v2 Gets all recently added series
SeriesApi apiSeriesRecentlyUpdatedSeriesPost POST /api/Series/recently-updated-series Returns series that were recently updated, like adding or removing a chapter
SeriesApi apiSeriesRefreshMetadataPost POST /api/Series/refresh-metadata Runs a Cover Image Generation task
SeriesApi apiSeriesRelatedGet GET /api/Series/related Fetches the related series for a given series
SeriesApi apiSeriesRemoveFromOnDeckPost POST /api/Series/remove-from-on-deck Removes a series from displaying on deck until the next read event on that series
SeriesApi apiSeriesScanPost POST /api/Series/scan Scan a series and force each file to be updated. This should be invoked via the User, hence why we force.
SeriesApi apiSeriesSeriesByCollectionGet GET /api/Series/series-by-collection Returns all Series grouped by the passed Collection Id with Pagination.
SeriesApi apiSeriesSeriesByIdsPost POST /api/Series/series-by-ids Fetches Series for a set of Ids. This will check User for permission access and filter out any Ids that don't exist or the user does not have access to.
SeriesApi apiSeriesSeriesDetailGet GET /api/Series/series-detail Get a special DTO for Series Detail page.
SeriesApi apiSeriesSeriesIdDelete DELETE /api/Series/{seriesId} Deletes a series from Kavita
SeriesApi apiSeriesSeriesIdGet GET /api/Series/{seriesId} Fetches a Series for a given Id
SeriesApi apiSeriesSeriesWithAnnotationsGet GET /api/Series/series-with-annotations Returns all Series that a user has access to
SeriesApi apiSeriesUpdateMatchPost POST /api/Series/update-match This will perform the fix match
SeriesApi apiSeriesUpdatePost POST /api/Series/update Updates the Series
SeriesApi apiSeriesUpdateRelatedPost POST /api/Series/update-related Update the relations attached to the Series. Does not generate associated Sequel/Prequel pairs on target series.
SeriesApi apiSeriesV2Post POST /api/Series/v2 Gets series with the applied Filter
SeriesApi apiSeriesVolumeGet GET /api/Series/volume Returns a single Volume with progress information and Chapters
SeriesApi apiSeriesVolumesGet GET /api/Series/volumes Returns All volumes for a series with progress information and Chapters
ServerApi apiServerAnalyzeFilesPost POST /api/Server/analyze-files This is a one time task that needs to be ran for v0.7 statistics to work
ServerApi apiServerBackupDbPost POST /api/Server/backup-db Performs an ad-hoc backup of the Database
ServerApi apiServerBustKavitaplusCachePost POST /api/Server/bust-kavitaplus-cache Bust Kavita+ Cache
ServerApi apiServerChangelogGet GET /api/Server/changelog Pull the Changelog for Kavita from Github and display
ServerApi apiServerCheckForUpdatesGet GET /api/Server/check-for-updates Checks for updates and pushes an event to the UI
ServerApi apiServerCheckOutOfDateGet GET /api/Server/check-out-of-date Returns how many versions out of date this install is
ServerApi apiServerCheckUpdateGet GET /api/Server/check-update Checks for updates, if no updates that are > current version installed, returns null
ServerApi apiServerCleanupPost POST /api/Server/cleanup Performs the nightly maintenance work on the Server. Can be heavy.
ServerApi apiServerCleanupWantToReadPost POST /api/Server/cleanup-want-to-read Performs an ad-hoc cleanup of Want To Read, by removing want to read series for users, where the series are fully read and in Completed publication status.
ServerApi apiServerClearCachePost POST /api/Server/clear-cache Performs an ad-hoc cleanup of Cache
ServerApi apiServerClearMediaAlertsPost POST /api/Server/clear-media-alerts Deletes all media errors
ServerApi apiServerConvertMediaPost POST /api/Server/convert-media Triggers the scheduling of the convert media job. This will convert all media to the target encoding (except for PNG). Only one job will run at a time.
ServerApi apiServerJobsGet GET /api/Server/jobs Returns a list of reoccurring jobs. Scheduled ad-hoc jobs will not be returned.
ServerApi apiServerLogsGet GET /api/Server/logs Downloads all the log files via a zip
ServerApi apiServerMediaErrorsGet GET /api/Server/media-errors Returns a list of issues found during scanning or reading in which files may have corruption or bad metadata (structural metadata)
ServerApi apiServerServerInfoSlimGet GET /api/Server/server-info-slim Returns non-sensitive information about the current system
ServerApi apiServerSyncThemesPost POST /api/Server/sync-themes Runs the Sync Themes task
SettingsApi apiSettingsBaseUrlGet GET /api/Settings/base-url Returns the base url for this instance (if set)
SettingsApi apiSettingsGet GET /api/Settings Returns the server settings
SettingsApi apiSettingsImportFieldMappingsPost POST /api/Settings/import-field-mappings Import field mappings
SettingsApi apiSettingsIsEmailSetupGet GET /api/Settings/is-email-setup Is the minimum information setup for Email to work
SettingsApi apiSettingsIsValidAuthorityPost POST /api/Settings/is-valid-authority Validate if the given authority is reachable from the server
SettingsApi apiSettingsIsValidCronGet GET /api/Settings/is-valid-cron Is the cron expression valid for Kavita's scheduler
SettingsApi apiSettingsLibraryTypesGet GET /api/Settings/library-types
SettingsApi apiSettingsLogLevelsGet GET /api/Settings/log-levels
SettingsApi apiSettingsMetadataSettingsGet GET /api/Settings/metadata-settings Get the metadata settings for Kavita+ users.
SettingsApi apiSettingsMetadataSettingsPost POST /api/Settings/metadata-settings Update the metadata settings for Kavita+ Metadata feature
SettingsApi apiSettingsOidcGet GET /api/Settings/oidc Retrieve publicly required configuration regarding Oidc
SettingsApi apiSettingsOpdsEnabledGet GET /api/Settings/opds-enabled
SettingsApi apiSettingsPost POST /api/Settings Update Server settings
SettingsApi apiSettingsResetBaseUrlPost POST /api/Settings/reset-base-url Resets the Base url
SettingsApi apiSettingsResetExternalIdsPost POST /api/Settings/reset-external-ids
SettingsApi apiSettingsResetIpAddressesPost POST /api/Settings/reset-ip-addresses Resets the IP Addresses
SettingsApi apiSettingsResetPost POST /api/Settings/reset
SettingsApi apiSettingsTaskFrequenciesGet GET /api/Settings/task-frequencies All values allowed for Task Scheduling APIs. A custom cron job is not included. Disabled is not applicable for Cleanup.
SettingsApi apiSettingsTestEmailUrlPost POST /api/Settings/test-email-url Sends a test email to see if email settings are hooked up correctly
StatsApi apiStatsAvgTimeByHourGet GET /api/Stats/avg-time-by-hour Returns the avg time read by hour in the given filter
StatsApi apiStatsDayBreakdownGet GET /api/Stats/day-breakdown
StatsApi apiStatsDeviceClientTypeGet GET /api/Stats/device/client-type Returns client type breakdown for the current month
StatsApi apiStatsDeviceDeviceTypeGet GET /api/Stats/device/device-type Desktop vs Mobile spread over this month
StatsApi apiStatsFavoriteAuthorsGet GET /api/Stats/favorite-authors
StatsApi apiStatsFilesAddedOverTimeGet GET /api/Stats/files-added-over-time
StatsApi apiStatsGenreBreakdownGet GET /api/Stats/genre-breakdown Returns the top 10 genres that the user likes reading
StatsApi apiStatsMostActiveUsersGet GET /api/Stats/most-active-users Top 5 most active readers for the given timeframe
StatsApi apiStatsPageSpreadGet GET /api/Stats/page-spread
StatsApi apiStatsPagesPerYearGet GET /api/Stats/pages-per-year Returns a count of pages read per year for a given userId.
StatsApi apiStatsPopularDecadesGet GET /api/Stats/popular-decades
StatsApi apiStatsPopularGenresGet GET /api/Stats/popular-genres
StatsApi apiStatsPopularLibrariesGet GET /api/Stats/popular-libraries
StatsApi apiStatsPopularPeopleGet GET /api/Stats/popular-people
StatsApi apiStatsPopularReadingListGet GET /api/Stats/popular-reading-list Gets the top 5 most popular reading lists. Counts a reading list as active if a user has read at least some
StatsApi apiStatsPopularSeriesGet GET /api/Stats/popular-series
StatsApi apiStatsPopularTagsGet GET /api/Stats/popular-tags
StatsApi apiStatsReadingActivityGet GET /api/Stats/reading-activity
StatsApi apiStatsReadingCountsGet GET /api/Stats/reading-counts Returns reading history events for a give or all users, broken up by day, and format
StatsApi apiStatsReadingHistoryGet GET /api/Stats/reading-history Return a user's reading session history
StatsApi apiStatsReadingHistorySeriesSeriesIdGet GET /api/Stats/reading-history/series/{seriesId} Return the authenticated users reading session history for a given series
StatsApi apiStatsReadingPaceGet GET /api/Stats/reading-pace
StatsApi apiStatsReadsByMonthGet GET /api/Stats/reads-by-month
StatsApi apiStatsServerCountMangaFormatGet GET /api/Stats/server/count/manga-format
StatsApi apiStatsServerCountPublicationStatusGet GET /api/Stats/server/count/publication-status
StatsApi apiStatsServerFileBreakdownGet GET /api/Stats/server/file-breakdown A breakdown of different files, their size, and format
StatsApi apiStatsServerFileExtensionGet GET /api/Stats/server/file-extension Generates a csv of all file paths for a given extension
StatsApi apiStatsServerStatsGet GET /api/Stats/server/stats
StatsApi apiStatsTagBreakdownGet GET /api/Stats/tag-breakdown Returns top 10 tags that user likes reading
StatsApi apiStatsTotalReadsGet GET /api/Stats/total-reads Returns the total amount reads in the given filter
StatsApi apiStatsUserReadGet GET /api/Stats/user-read
StatsApi apiStatsUserStatsGet GET /api/Stats/user-stats
StatsApi apiStatsWordSpreadGet GET /api/Stats/word-spread
StatsApi apiStatsWordsPerYearGet GET /api/Stats/words-per-year Returns a count of words read per year for a given userId.
StreamApi apiStreamAddDashboardStreamPost POST /api/Stream/add-dashboard-stream Creates a Dashboard Stream from a SmartFilter and adds it to the user's dashboard as visible
StreamApi apiStreamAddSidenavStreamFromExternalSourcePost POST /api/Stream/add-sidenav-stream-from-external-source Creates a SideNav Stream from a SmartFilter and adds it to the user's sidenav as visible
StreamApi apiStreamAddSidenavStreamPost POST /api/Stream/add-sidenav-stream Creates a SideNav Stream from a SmartFilter and adds it to the user's sidenav as visible
StreamApi apiStreamBulkSidenavStreamVisibilityPost POST /api/Stream/bulk-sidenav-stream-visibility
StreamApi apiStreamCreateExternalSourcePost POST /api/Stream/create-external-source Create an external Source
StreamApi apiStreamDashboardGet GET /api/Stream/dashboard Returns the layout of the user's dashboard
StreamApi apiStreamDeleteExternalSourceDelete DELETE /api/Stream/delete-external-source Delete's the external source
StreamApi apiStreamExternalSourceExistsPost POST /api/Stream/external-source-exists Validates the external source by host is unique (for this user)
StreamApi apiStreamExternalSourcesGet GET /api/Stream/external-sources Return's the user's external sources
StreamApi apiStreamSidenavGet GET /api/Stream/sidenav Return's the user's side nav
StreamApi apiStreamSmartFilterDashboardStreamDelete DELETE /api/Stream/smart-filter-dashboard-stream Removes a Smart Filter from a user's Dashboard Streams
StreamApi apiStreamSmartFilterSideNavStreamDelete DELETE /api/Stream/smart-filter-side-nav-stream Removes a Smart Filter from a user's SideNav Streams
StreamApi apiStreamUpdateDashboardPositionPost POST /api/Stream/update-dashboard-position Updates the position of a dashboard stream
StreamApi apiStreamUpdateDashboardStreamPost POST /api/Stream/update-dashboard-stream Updates the visibility of a dashboard stream
StreamApi apiStreamUpdateExternalSourcePost POST /api/Stream/update-external-source Updates an existing external source
StreamApi apiStreamUpdateSidenavPositionPost POST /api/Stream/update-sidenav-position Updates the position of a dashboard stream
StreamApi apiStreamUpdateSidenavStreamPost POST /api/Stream/update-sidenav-stream Updates the visibility of a dashboard stream
TachiyomiApi apiTachiyomiLatestChapterGet GET /api/Tachiyomi/latest-chapter Given the series Id, this should return the latest chapter that has been fully read.
TachiyomiApi apiTachiyomiMarkChapterUntilAsReadPost POST /api/Tachiyomi/mark-chapter-until-as-read Marks every chapter that is sorted below the passed number as Read. This will not mark any specials as read.
ThemeApi apiThemeBrowseGet GET /api/Theme/browse Browse themes that can be used on this server
ThemeApi apiThemeDelete DELETE /api/Theme Attempts to delete a theme. If already in use by users, will not allow
ThemeApi apiThemeDownloadContentGet GET /api/Theme/download-content Returns css content to the UI. UI is expected to escape the content
ThemeApi apiThemeDownloadThemePost POST /api/Theme/download-theme Downloads a SiteTheme from upstream
ThemeApi apiThemeGet GET /api/Theme
ThemeApi apiThemeUpdateDefaultPost POST /api/Theme/update-default
ThemeApi apiThemeUploadThemePost POST /api/Theme/upload-theme Uploads a new theme file
UploadApi apiUploadChapterPost POST /api/Upload/chapter Replaces chapter cover image and locks it with a base64 encoded image. This will update the parent volume's cover image.
UploadApi apiUploadCollectionPost POST /api/Upload/collection Replaces collection tag cover image and locks it with a base64 encoded image
UploadApi apiUploadLibraryPost POST /api/Upload/library Replaces library cover image with a base64 encoded image. If empty string passed, will reset to null.
UploadApi apiUploadPersonPost POST /api/Upload/person Replaces person tag cover image and locks it with a base64 encoded image
UploadApi apiUploadReadingListPost POST /api/Upload/reading-list Replaces reading list cover image and locks it with a base64 encoded image
UploadApi apiUploadSeriesPost POST /api/Upload/series Replaces series cover image and locks it with a base64 encoded image
UploadApi apiUploadUploadByUrlPost POST /api/Upload/upload-by-url This stores a file (image) in temp directory for use in a cover image replacement flow. This is automatically cleaned up.
UploadApi apiUploadUserPost POST /api/Upload/user Replaces user cover image and locks it with a base64 encoded image
UploadApi apiUploadVolumePost POST /api/Upload/volume Replaces volume cover image and locks it with a base64 encoded image.
UsersApi apiUsersDeleteUserDelete DELETE /api/Users/delete-user
UsersApi apiUsersGet GET /api/Users Returns all users of this server
UsersApi apiUsersGetPreferencesGet GET /api/Users/get-preferences Returns the preferences of the user
UsersApi apiUsersHasLibraryAccessGet GET /api/Users/has-library-access Does the user have access to this library
UsersApi apiUsersHasProfileSharedGet GET /api/Users/has-profile-shared Does the requested user have their profile sharing on
UsersApi apiUsersHasReadingProgressGet GET /api/Users/has-reading-progress Is there any reading progress on this library
UsersApi apiUsersNamesGet GET /api/Users/names Returns a list of the user names within the system
UsersApi apiUsersProfileInfoGet GET /api/Users/profile-info Get Information about a given user
UsersApi apiUsersTokensGet GET /api/Users/tokens Returns all users with tokens registered and their token information. Does not send the tokens.
UsersApi apiUsersUpdatePreferencesPost POST /api/Users/update-preferences Update the user preferences
VolumeApi apiVolumeDelete DELETE /api/Volume Delete the Volume from the DB
VolumeApi apiVolumeGet GET /api/Volume Returns the appropriate Volume
VolumeApi apiVolumeMultiplePost POST /api/Volume/multiple Delete multiple Volumes from the DB
VolumeApi apiVolumeUpdatePost POST /api/Volume/update Updates the information on the Volume
WantToReadApi apiWantToReadAddSeriesPost POST /api/want-to-read/add-series Given a list of Series Ids, add them to the current logged in user's Want To Read list
WantToReadApi apiWantToReadGet GET /api/want-to-read
WantToReadApi apiWantToReadRemoveSeriesPost POST /api/want-to-read/remove-series Given a list of Series Ids, remove them from the current logged in user's Want To Read list
WantToReadApi apiWantToReadV2Post POST /api/want-to-read/v2 Return all Series that are in the current logged in user's Want to Read list, filtered

Documentation For Models

Documentation For Authorization

AuthKey

  • Type: API key
  • API key parameter name: x-api-key
  • Location: HTTP header

Author