Skip to main content
Retrieve a list of documents with optional filtering, sorting, and pagination.
from morphik import Morphik

db = Morphik("your-uri")

response = db.list_documents(
    skip=0,
    limit=10,
    filters={"department": {"$eq": "sales"}},
    sort_by="created_at",
    sort_direction="desc",
    include_total_count=True,
    include_status_counts=True,
    completed_only=False
)

for doc in response.documents:
    print(f"{doc.filename}: {doc.external_id}")

print(f"Total: {response.total_count}")

if response.has_more:
    next_page = db.list_documents(skip=response.next_skip, limit=10)
For advanced filtering with operators like $and, $or, $gte, $in, see Metadata Filtering.

Parameters

ParameterTypeDefaultDescription
skipint0Number of documents to skip (pagination)
limitint100Maximum documents to return
filtersobjectnullMetadata filters (see Metadata Filtering)
sort_bystring"updated_at"Sort field: created_at, updated_at, filename, external_id
sort_directionstring"desc"Sort direction: asc or desc
completed_onlybooleanfalseOnly return fully processed documents
include_total_countbooleanfalseInclude total count in response

Response

{
  "documents": [
    {
      "external_id": "doc_abc123",
      "filename": "report.pdf",
      "content_type": "application/pdf",
      "metadata": { "department": "sales" }
    }
  ],
  "returned_count": 10,
  "total_count": 42,
  "has_more": true,
  "next_skip": 10
}