Document Types
Document types classify documents into categories (e.g. Invoice, Contract, Receipt). They support the full CRUD lifecycle and permission management.
Models
See pypaperless/models/document_types.py for all fields and pypaperless/models/types.py for enum and filter types, and the Paperless-ngx API docs for the upstream schema.
Fetch one
document_type = await paperless.document_types(4)
print(document_type.name) # "Invoice"
print(document_type.document_count) # 17
Iterate
async for dt in paperless.document_types:
print(dt.id, dt.name)
# Keyed by id
types = await paperless.document_types.as_dict()
Create
draft = paperless.document_types.create()
draft.name = "Invoice"
pk = await paperless.document_types.save(draft)
print(pk) # primary key of the new document type
Update
dt = await paperless.document_types(4)
dt.name = "Invoice (updated)"
changed = await paperless.document_types.update(dt)
Delete
Raises DeletionError on failure. Pass silent_fail=True to suppress it.
Permissions
async with paperless.document_types.with_permissions():
dt = await paperless.document_types(4)
print(dt.owner) # owner user id
print(dt.permissions) # Permissions
See Permissions for details on reading and modifying permission sets.