Docwize Public API
Programmatically manage documents, folders, and search your document repository.
Documents
Upload files, retrieve metadata, manage versions, download content, and update document fields.
POSTGETPATCH
Folders
Browse the folder tree, create new folders, move them between parents, and delete entire subtrees.
GETPOSTDEL
Search
Full-text keyword search, semantic vector similarity, and metadata filtering via a structured query DSL.
POST
Schema Discovery
Enumerate custom field templates, column definitions, and distinct metadata values at runtime.
GETPOST
Quick start
# 1. Create an API key in Docwize (Settings > API Keys)
# 2. Copy the Bearer token — it is only shown once
# Upload a document
curl -X POST https://portal.docwize.com/apiv2/pub/documents/upload \
-H "Authorization: Bearer <TOKEN>" \
-F "file=@invoice.pdf" \
-F "folder_id=42" \
-F "description=January Invoice" \
-F "doc_type=Invoice"
# Search your repository
curl -X POST https://portal.docwize.com/apiv2/pub/search \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"where": {"fts": {"field": "content", "query": "invoice"}}}'
Error responses
All errors return a JSON body with a detail field describing what went wrong.
{"detail": "Document not found or access denied"}
| Status | Meaning |
|---|---|
200 | Request succeeded |
400 | Malformed request — check field names, types, or missing required parameters |
401 | Bearer token is missing, expired, or revoked |
403 | Token lacks the required scope, or the user does not have access to the requested resource |
404 | The requested document, folder, or file does not exist, or the user has no permission to see it |
422 | Request body is syntactically valid but semantically wrong (e.g. invalid field value) |
423 | The document is locked by another user and cannot be modified |
500 | Unexpected server error — the issue has been reported automatically |
504 | The request timed out — try narrower search filters or a smaller page size |