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.12+.

pip install pypaperless

Documentation

Full documentation is available here.

Compatibility matrix

pypaperless Paperless-ngx Python Notes
>= v6.0 >= 3.0 3.12 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.3

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.3
File Size Uploaded Provenance Actions
pypaperless-6.0.3.tar.gz 295.5 kB With provenance Details for pypaperless-6.0.3.tar.gz

Built distribution (wheel)

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

Total release size: 405.5 kB

Release files / pypaperless-6.0.3.tar.gz

Download URL pypaperless-6.0.3.tar.gz
Size 295.5 kB
Tags Source
SHA-256 checksum
How to use checksums
92664e13bee88d1257a79d113f1d1ab6a500b2a15cf0663b73f88df520f6e17a
BLAKE2b-256 checksum
How to use checksums
f01c8f3adf97e2d54d1ec71de03919d262d47ba11e9ee225a0243efdcd76d192
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

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

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

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 Nov 4, 2026.

Transparency log

Security for pypaperless 6.0.3

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pypaperless-6.0.3.tar.gz

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 Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

6.0.3 This release

2 release files Full provenance

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