Little api client for paperless(-ngx).
Project description
pypaperless
pypaperless is a modern, fully async Python client library for the Paperless-ngx REST API.
Features
| Feature | Details |
|---|---|
| Fully async | Built on asyncio + httpx.AsyncClient; drop-in for any async framework |
| Type-safe models | All resources are validated Pydantic models |
| Complete resource coverage | Documents, Correspondents, Tags, Document Types, Storage Paths, Custom Fields, Saved Views, Share Links, Workflows, Mail Accounts/Rules, Tasks, Trash, and more |
| CRUD + permissions | Create, read, update, delete and manage object-level permissions per resource |
| Async iteration & paging | Iterate over all items or page-by-page; server-side filtering via filter() |
| Document operations | Upload, download, search (full-text & advanced), notes, suggestions, metadata |
| Custom field system | Rich typed access to custom field values — read, write, remove with caching |
| Token generation | Static helper to exchange username + password for an API token |
| Custom HTTP client | Bring your own httpx.AsyncClient for full control over timeouts, proxies, TLS, … |
Quick example
import asyncio
from pypaperless import PaperlessClient
async def main():
async with PaperlessClient("localhost:8000", "your-api-token") as paperless:
# iterate all documents - pagination is handled automatically
async for document in paperless.documents:
print(document.id, document.title)
# fetch a single item
doc = await paperless.documents(42)
# filter with server-side parameters
async with paperless.tags.filter(name__icontains="invoice") as filtered:
async for tag in filtered:
print(tag.id, tag.name)
asyncio.run(main())
Installation
Requires Python 3.13+.
pip install pypaperless
Documentation
Full documentation is available here.
Compatibility matrix
| pypaperless | Paperless-ngx | Python | Notes |
|---|---|---|---|
| >= v6.0 | >= 3.0 | 3.13 | Current release |
| >= v5.2 | >= 2.19 | 3.12 | |
| >= v5.0 | >= 2.17 | 3.12 | |
| >= v4.x | >= 2.15 | 3.12 | |
| < v4.0 | < 2.15 | 3.11 | Incompatible with Paperless-ngx >= 2.15 |
Recommendation: Keep both Paperless-ngx and pypaperless up to date to benefit from the latest API features and bug fixes.
Authors & contributors
pypaperless is written and maintained by: Tobias Schulz and Claude. Feedback and contributions are always welcome.
Check out all contributors.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypaperless-6.0.0rc1.tar.gz.
File metadata
- Download URL: pypaperless-6.0.0rc1.tar.gz
- Upload date:
- Size: 251.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f5c05f4a7d2e52381736bcb75ad1adf2cf88b0c7bb6f0848a03133feb4e3091
|
|
| MD5 |
eec8a786d7f5249c251487b28b82c211
|
|
| BLAKE2b-256 |
325cc839747944acc8170b521c5243c44366a20bf7d15988c920490d1ec5370e
|
Provenance
The following attestation bundles were made for pypaperless-6.0.0rc1.tar.gz:
Publisher:
release.yml on tb1337/pypaperless
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypaperless-6.0.0rc1.tar.gz -
Subject digest:
6f5c05f4a7d2e52381736bcb75ad1adf2cf88b0c7bb6f0848a03133feb4e3091 - Sigstore transparency entry: 2233217802
- Sigstore integration time:
-
Permalink:
tb1337/pypaperless@6725051873a3ce48316d9cdc789b9279a22d1722 -
Branch / Tag:
refs/tags/v6.0.0rc1 - Owner: https://github.com/tb1337
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6725051873a3ce48316d9cdc789b9279a22d1722 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypaperless-6.0.0rc1-py3-none-any.whl.
File metadata
- Download URL: pypaperless-6.0.0rc1-py3-none-any.whl
- Upload date:
- Size: 107.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50b2d325ddea53c3ebbbd2d38f63a1d0e14b78396f56d607f92d28668e5b1483
|
|
| MD5 |
b3ce6845ed9344fd00fc8e33ddb53842
|
|
| BLAKE2b-256 |
66f87d4834a512dd36ce61fce0f137222baa4054f0baf31a35a64da75b0f1802
|
Provenance
The following attestation bundles were made for pypaperless-6.0.0rc1-py3-none-any.whl:
Publisher:
release.yml on tb1337/pypaperless
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypaperless-6.0.0rc1-py3-none-any.whl -
Subject digest:
50b2d325ddea53c3ebbbd2d38f63a1d0e14b78396f56d607f92d28668e5b1483 - Sigstore transparency entry: 2233218450
- Sigstore integration time:
-
Permalink:
tb1337/pypaperless@6725051873a3ce48316d9cdc789b9279a22d1722 -
Branch / Tag:
refs/tags/v6.0.0rc1 - Owner: https://github.com/tb1337
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6725051873a3ce48316d9cdc789b9279a22d1722 -
Trigger Event:
release
-
Statement type: