Skip to main content

A small API wrapper for the paperless-ngx dms.

Project description

Paperless API

Async Python wrapper for the paperless-ngx REST API endpoint. Find out more here: https://paperless-ngx.readthedocs.io/en/latest/api.html

It is very simple and stupid. Maybe I will update it in the future to add some nice stuff.

Examples

Request a list of correspondents and print them.

import asyncio
import pypaperless


async def main():
    api = pypaperless.PaperlessAPI("http://127.0.0.1:9120", "SUPER_SECRET_API_TOKEN_HERE")
    # alternative: api = pypaperless.PaperlessAPI("http://127.0.0.1:9120", username="user", password="pass")

    correspondents = await api.get_correspondents()

    for data in correspondents:
        print(data.raw_data)

asyncio.run(main())

Same is possible for every other endpoint provided by the API, excepting logs.

doctypes = await api.get_document_types()
tags = await api.get_tags()
views = await api.get_saved_views()
documents = await api.get_documents()
tasks = await apt.get_tasks()

Request a single item by id from an endpoint.

doctype = await api.get_document_type(3)
tag = await api.get_tag(6)
document = await api.get_document(6)
task = await api.get_task(123)
by_task_id = await api.get_task_by_task_id("fdaa724b-xxxx-yyyy-aaf8-edc5c113c656")

Post a document to Paperless. Only the file is mandatory, title, creation date correspondent id, and document type id are optional. Tags are crurrently not supported.

await api.post_document("./invoice.pdf",title="Invoice bedroom closet")

Create a new correspondent:

correspondent = {
    "name": "test",
    "match": "test",
    "matching_algorithm": 3,
    "is_insensitive": "false",
}
print (await api.add_correspondent(correspondent))

Search for a document and receive a list of results. Search syntax is the same as in Paperless: https://docs.paperless-ngx.com/usage/#basic-usage_searching.

matching_documents = await api.search("bedroom*")

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-1.0.0.tar.gz (6.1 kB view hashes)

Uploaded Source

Built Distribution

pypaperless-1.0.0-py3-none-any.whl (6.7 kB view hashes)

Uploaded Python 3

Supported by

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