Skip to main content

Little api client for paperless(-ngx).

Project description

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 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypaperless-6.0.0rc1.tar.gz (251.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypaperless-6.0.0rc1-py3-none-any.whl (107.1 kB view details)

Uploaded Python 3

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

Hashes for pypaperless-6.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 6f5c05f4a7d2e52381736bcb75ad1adf2cf88b0c7bb6f0848a03133feb4e3091
MD5 eec8a786d7f5249c251487b28b82c211
BLAKE2b-256 325cc839747944acc8170b521c5243c44366a20bf7d15988c920490d1ec5370e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypaperless-6.0.0rc1.tar.gz:

Publisher: release.yml on tb1337/pypaperless

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pypaperless-6.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 50b2d325ddea53c3ebbbd2d38f63a1d0e14b78396f56d607f92d28668e5b1483
MD5 b3ce6845ed9344fd00fc8e33ddb53842
BLAKE2b-256 66f87d4834a512dd36ce61fce0f137222baa4054f0baf31a35a64da75b0f1802

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypaperless-6.0.0rc1-py3-none-any.whl:

Publisher: release.yml on tb1337/pypaperless

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page