Skip to content

tb1337/paperless-api

Repository files navigation

PyPaperless

GitHub Release Python Version GitHub License

Tests Codecov Linting Typing

Little asynchronous client for Paperless-ngx, written in Python. You should at least use Python >=3.12.

Features

  • Depends on aiohttp, works in async environments.
  • Token authentication preferred (credentials possible using a URL like https://user:pass@example.com)
  • Request single resource items.
  • Iterate over all resource items or request them page by page.
  • Create, update and delete resource items.
  • Add, remove and update custom fields on documents.
  • Almost feature complete.
  • pypaperless is designed to transport data only. Your code must organize it.

Find out more about Paperless-ngx here:

Installation

pip install pypaperless

Documentation

Please check out the docs for detailed instructions and examples.

Compatibility matrix

Choosing the right version of pypaperless for your Paperless-ngx instance can be tricky. This little matrix is here to help.

pypaperless Paperless-ngx
>= 5.1 >= 2.17
>= 5.0 >= 2.17
>= 4.1 >= 2.16
>= 4.0 >= 2.15
< 4.0 < 2.15
  • pypaperless <4.0 is not compatible with Paperless-ngx >=2.15 due to breaking server changes.
  • pypaperless >=5.0 implements date changes in the document API and is therefore not compatible with Paperless-ngx <2.17.
  • pypaperless >=5.1 will drop support for all Paperless-ngx versions without the Open API schema, introduced in 2.15.

Consider keeping both Paperless-ngx and pypaperless always updated.

Authors & contributors

pypaperless is written by Tobias Schulz. Its his first Python project. Feedback appreciated.

Check out all contributors here.