Skip to main content

pypaperless

GitHub Release Python Version GitHub License

Tests Codecov Linting Typing

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 generate_api_token() 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

Authors & contributors

pypaperless is written and maintained by: Tobias Schulz and Claude. Feedback and contributions are always welcome.

Check out all contributors.

Metadata

Release files for pypaperless 6.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypaperless 6.0.2
File Size Uploaded
pypaperless-6.0.2.tar.gz 275.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypaperless 6.0.2
File Interpreter ABI Platform
pypaperless-6.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 385.5 kB

Release files / pypaperless-6.0.2.tar.gz

Download URL pypaperless-6.0.2.tar.gz
Size 275.5 kB
Tags Source
SHA-256 checksum
How to use checksums
65b420a9254fb611b0b5300582b9954274659ab44594b87cd790564cf8cbfe88
BLAKE2b-256 checksum
How to use checksums
5a7f6f2294b65d915ad1b47437a6916df583c106656c794453be059ea770879c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / pypaperless-6.0.2-py3-none-any.whl

Download URL pypaperless-6.0.2-py3-none-any.whl
Size 110.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c9ce1fd67f390a8903b0310c59400a31e9f922c4ca70e54faf88d0ae93d25c8
BLAKE2b-256 checksum
How to use checksums
e1692e84802a82379fdf58cb675d75c47fd873e506c2c3c064ad4bf14d237953
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

6.0.2 This release

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.1.15

2 release files

3.1.14

2 release files

3.1.13

2 release files

3.1.12

2 release files

3.1.10

2 release files

3.1.9

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page