from morphik import Morphik
db = Morphik()
# Get details for all folders with document counts
response = db.get_folders_details()
for folder_detail in response.folders:
folder = folder_detail.folder
doc_info = folder_detail.document_info
print(f"Folder: {folder.name}")
if doc_info and doc_info.total_count is not None:
print(f" Total documents: {doc_info.total_count}")
# Get specific folders with status counts
response = db.get_folders_details(
identifiers=["reports", "invoices"],
include_status_counts=True,
)
for folder_detail in response.folders:
doc_info = folder_detail.document_info
if doc_info and doc_info.status_counts:
print(f"{folder_detail.folder.name} status breakdown:")
for status, count in doc_info.status_counts.items():
print(f" {status}: {count}")
# Get folders with document list
response = db.get_folders_details(
identifiers=["marketing"],
include_documents=True,
document_limit=10,
sort_by="updated_at",
sort_direction="desc",
)
for folder_detail in response.folders:
doc_info = folder_detail.document_info
if doc_info and doc_info.documents:
print(f"Recent documents in {folder_detail.folder.name}:")
for doc in doc_info.documents:
print(f" - {doc.filename}")
# With document filtering and field projection
response = db.get_folders_details(
include_documents=True,
document_filters={"department": "sales"},
document_fields=["external_id", "filename", "metadata.department"],
document_limit=50,
)