# PyPaperless
[![GitHub Release][release-badge]][release-url]
[![Python Version][python-badge]][python-url]
[![GitHub License][license-badge]][license-url]
[![Tests][tests-badge]][tests-url]
[![Codecov][codecov-badge]][codecov-url]
[![Linting][linting-badge]][linting-url]
[![Typing][typing-badge]][typing-url]
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 only. **No credentials.**
- 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:
- Project: https://docs.paperless-ngx.com
- API Docs: https://docs.paperless-ngx.com/api/
- Source Code: https://github.com/paperless-ngx/paperless-ngx
## Installation
```bash
pip install pypaperless
```
## Documentation
Please check out the **[docs][docs-url]** 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.
| *Paperless-ngx* | **pypaperless** |
| --------------- | --------------- |
| >= 2.17 | >= 5.0 |
| >= 2.16 | >= 4.1 |
| >= 2.15 | >= 4.0 |
| < 2.15 | < 4.0 |
* **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.16`.
* **pypaperless** `>=5.1` will drop support for all *Paperless-ngx* versions without the Open API schema, introduced in `2.15`.
> [!TIP]
> Consider keeping both *Paperless-ngx* and **pypaperless** always updated.
## Authors & contributors
**pypaperless** is written by [Tobias Schulz][contributors-tbsch]. Its his first Python project. Feedback appreciated.
Check out all [contributors here][contributors-url].
[codecov-badge]: https://codecov.io/gh/tb1337/paperless-api/graph/badge.svg?token=IMXRBK3HRE
[codecov-url]: https://app.codecov.io/gh/tb1337/paperless-api/tree/main
[contributors-tbsch]: https://tbsch.de
[contributors-url]: https://github.com/tb1337/paperless-api/graphs/contributors
[docs-url]: https://github.com/tb1337/paperless-api/blob/main/docs/
[license-badge]: https://img.shields.io/github/license/tb1337/paperless-api
[license-url]: /LICENSE.md
[python-badge]: https://img.shields.io/pypi/pyversions/pypaperless
[python-url]: https://pypi.org/project/pypaperless/
[tests-badge]: https://github.com/tb1337/paperless-api/actions/workflows/tests.yml/badge.svg
[tests-url]: https://github.com/tb1337/paperless-api/actions
[release-badge]: https://img.shields.io/github/v/release/tb1337/paperless-api
[release-url]: https://github.com/tb1337/paperless-api/releases
[linting-badge]: https://github.com/tb1337/paperless-api/actions/workflows/linting.yml/badge.svg
[linting-url]: https://github.com/tb1337/paperless-api/actions
[typing-badge]: https://github.com/tb1337/paperless-api/actions/workflows/typing.yml/badge.svg
[typing-url]: https://github.com/tb1337/paperless-api/actions
Raw data
{
"_id": null,
"home_page": null,
"name": "pypaperless",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.13.5",
"maintainer_email": null,
"keywords": "api-client, async, library, paperless-ngx, python3",
"author": null,
"author_email": "Tobias Schulz <public.dev@tbsch.de>",
"download_url": "https://files.pythonhosted.org/packages/f4/af/226b93d7bba25fd5890a34903d91206a031c8c185f679a35a2a3ef642e2c/pypaperless-5.0.0.tar.gz",
"platform": null,
"description": "# PyPaperless\n\n[![GitHub Release][release-badge]][release-url]\n[![Python Version][python-badge]][python-url]\n[![GitHub License][license-badge]][license-url]\n\n[![Tests][tests-badge]][tests-url]\n[![Codecov][codecov-badge]][codecov-url]\n[![Linting][linting-badge]][linting-url]\n[![Typing][typing-badge]][typing-url]\n\nLittle asynchronous client for *Paperless-ngx*, written in Python. You should at least use Python `>=3.12`.\n\n## Features\n\n- Depends on aiohttp, works in async environments.\n- Token authentication only. **No credentials.**\n- Request single resource items.\n- Iterate over all resource items or request them page by page.\n- Create, update and delete resource items.\n- Add, remove and update custom fields on documents.\n- Almost feature complete.\n- **pypaperless** is designed to transport data only. Your code must organize it.\n\nFind out more about *Paperless-ngx* here:\n\n- Project: https://docs.paperless-ngx.com\n- API Docs: https://docs.paperless-ngx.com/api/\n- Source Code: https://github.com/paperless-ngx/paperless-ngx\n\n## Installation\n\n```bash\npip install pypaperless\n```\n\n## Documentation\n\nPlease check out the **[docs][docs-url]** for detailed instructions and examples.\n\n## Compatibility matrix\n\nChoosing the right version of **pypaperless** for your *Paperless-ngx* instance can be tricky. This little matrix is here to help.\n\n| *Paperless-ngx* | **pypaperless** |\n| --------------- | --------------- |\n| >= 2.17 | >= 5.0 |\n| >= 2.16 | >= 4.1 |\n| >= 2.15 | >= 4.0 |\n| < 2.15 | < 4.0 |\n\n* **pypaperless** `<4.0` is not compatible with *Paperless-ngx* `>=2.15` due to breaking server changes.\n* **pypaperless** `5.0` implements date changes in the document API and is therefore not compatible with *Paperless-ngx* `<2.16`.\n* **pypaperless** `>=5.1` will drop support for all *Paperless-ngx* versions without the Open API schema, introduced in `2.15`.\n\n> [!TIP]\n> Consider keeping both *Paperless-ngx* and **pypaperless** always updated.\n\n## Authors & contributors\n\n**pypaperless** is written by [Tobias Schulz][contributors-tbsch]. Its his first Python project. Feedback appreciated.\n\nCheck out all [contributors here][contributors-url].\n\n[codecov-badge]: https://codecov.io/gh/tb1337/paperless-api/graph/badge.svg?token=IMXRBK3HRE\n[codecov-url]: https://app.codecov.io/gh/tb1337/paperless-api/tree/main\n[contributors-tbsch]: https://tbsch.de\n[contributors-url]: https://github.com/tb1337/paperless-api/graphs/contributors\n[docs-url]: https://github.com/tb1337/paperless-api/blob/main/docs/\n[license-badge]: https://img.shields.io/github/license/tb1337/paperless-api\n[license-url]: /LICENSE.md\n[python-badge]: https://img.shields.io/pypi/pyversions/pypaperless\n[python-url]: https://pypi.org/project/pypaperless/\n[tests-badge]: https://github.com/tb1337/paperless-api/actions/workflows/tests.yml/badge.svg\n[tests-url]: https://github.com/tb1337/paperless-api/actions\n[release-badge]: https://img.shields.io/github/v/release/tb1337/paperless-api\n[release-url]: https://github.com/tb1337/paperless-api/releases\n[linting-badge]: https://github.com/tb1337/paperless-api/actions/workflows/linting.yml/badge.svg\n[linting-url]: https://github.com/tb1337/paperless-api/actions\n[typing-badge]: https://github.com/tb1337/paperless-api/actions/workflows/typing.yml/badge.svg\n[typing-url]: https://github.com/tb1337/paperless-api/actions\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Little api client for paperless(-ngx).",
"version": "5.0.0",
"project_urls": {
"Bug Reports": "https://github.com/tb1337/paperless-api/issues",
"Coverage": "https://codecov.io/gh/tb1337/paperless-api",
"Homepage": "https://github.com/tb1337/paperless-api",
"Source Code": "https://github.com/tb1337/paperless-api"
},
"split_keywords": [
"api-client",
" async",
" library",
" paperless-ngx",
" python3"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4a4377082842c1aa17703b32dbbd3d2f3ee384b1821b2352b36877e14081158f",
"md5": "b21558b6223cc516257637775f566272",
"sha256": "b93c2ddfeb0150c7dddbd986487fb5be6f2bd36e22e7efb4f1d5b58928ec976c"
},
"downloads": -1,
"filename": "pypaperless-5.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b21558b6223cc516257637775f566272",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.13.5",
"size": 45079,
"upload_time": "2025-07-12T21:50:14",
"upload_time_iso_8601": "2025-07-12T21:50:14.415168Z",
"url": "https://files.pythonhosted.org/packages/4a/43/77082842c1aa17703b32dbbd3d2f3ee384b1821b2352b36877e14081158f/pypaperless-5.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f4af226b93d7bba25fd5890a34903d91206a031c8c185f679a35a2a3ef642e2c",
"md5": "e56de830a3399d6d838280672ffff8c2",
"sha256": "0fd1ebbb8e23b89874cdb09a734d4e0cd4f18b885c219058a1f279321d0d419b"
},
"downloads": -1,
"filename": "pypaperless-5.0.0.tar.gz",
"has_sig": false,
"md5_digest": "e56de830a3399d6d838280672ffff8c2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.13.5",
"size": 121593,
"upload_time": "2025-07-12T21:50:15",
"upload_time_iso_8601": "2025-07-12T21:50:15.860406Z",
"url": "https://files.pythonhosted.org/packages/f4/af/226b93d7bba25fd5890a34903d91206a031c8c185f679a35a2a3ef642e2c/pypaperless-5.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 21:50:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tb1337",
"github_project": "paperless-api",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pypaperless"
}