Documents
Complete reference for document-related methods and models.
Methods
create_document
create_document(request: CreateDocumentRequest) -> CreateDocumentResponse
Create a new document in specified scope (Space/Member/Project).
Parameters:
request- CreateDocumentRequest with kind, kind_id, title, index, and optional parent_document_id
Returns: CreateDocumentResponse with created document
Example:
from vaiz.models import CreateDocumentRequest, Kind
response = client.create_document(
CreateDocumentRequest(
kind=Kind.Project,
kind_id="project_id",
title="Project Plan",
index=0
)
)
document = response.payload.document
print(f"Created: {document.id}")
edit_document
edit_document(request: EditDocumentRequest) -> EditDocumentResponse
Edit document metadata such as title.
Parameters:
request- EditDocumentRequest with document_id and title
Returns: EditDocumentResponse with updated document
Example:
from vaiz.models import EditDocumentRequest
response = client.edit_document(
EditDocumentRequest(
document_id="doc_id",
title="Updated Title"
)
)
edited_doc = response.payload.document
print(f"Updated: {edited_doc.title}")
get_documents
get_documents(request: GetDocumentsRequest) -> GetDocumentsResponse
Get list of documents filtered by scope (Space/Member/Project) and scope ID.
Parameters:
request- GetDocumentsRequest with kind and kind_id
Returns: GetDocumentsResponse with list of documents
Example:
from vaiz.models import GetDocumentsRequest, Kind
docs = client.get_documents(
GetDocumentsRequest(
kind=Kind.Project,
kind_id="project_id"
)
)
replace_markdown_document
replace_markdown_document(document_id: str, markdown: str) -> ReplaceMarkdownDocumentResponse
Replace document content with Markdown. Markdown is converted to native rich editor blocks on the server (headings, lists, tables, code blocks, checklists, links, etc.). This is the recommended way to write document content.
Parameters:
document_id- Document ID to replace content formarkdown- New content as a Markdown string
Returns: ReplaceMarkdownDocumentResponse (empty on success)
Example:
client.replace_markdown_document(
document_id="doc_id",
markdown="# Title\n\nSome **bold** text\n\n- item 1\n- item 2"
)
append_markdown_document
append_markdown_document(document_id: str, markdown: str) -> AppendMarkdownDocumentResponse
Append Markdown content to the end of a document without removing existing content.
Parameters:
document_id- Document ID to append content tomarkdown- Content to append as a Markdown string
Returns: AppendMarkdownDocumentResponse (empty on success)
Example:
client.append_markdown_document(
document_id="doc_id",
markdown="## Update\n\nAdditional notes"
)
get_markdown_document
get_markdown_document(document_id: str) -> str
Fetch document content rendered as Markdown. Returns an empty string for legacy documents that have no rich content yet.
Parameters:
document_id- Document ID to fetch
Returns: str - Document content as Markdown
Example:
markdown = client.get_markdown_document("doc_id")
print(markdown)
Models
Document
Main document model representing a document in the system.
class Document:
id: str # Document ID
title: str # Document title
size: int # Document size in bytes
contributor_ids: List[str] # List of contributor IDs
archiver: Optional[str] # User who archived (if archived)
followers: Dict[str, str] # Document followers
archived_at: Optional[datetime] # Archive timestamp
kind_id: str # ID of document
kind: Kind # Document scope (Space/Member/Project)
creator: str # Creator user ID
map: List[Any] # Document structure map
created_at: datetime # Creation timestamp
updated_at: datetime # Last update timestamp
bucket: str # Storage bucket ID
EditDocument
Model representing an edited document (without internal fields like map).
class EditDocument:
id: str # Document ID
title: str # Document title
space: str # Space ID
size: int # Document size in bytes
contributor_ids: List[str] # List of contributor IDs
archiver: Optional[str] # User who archived (if archived)
followers: Dict[str, str] # Document followers
archived_at: Optional[datetime] # Archive timestamp
kind_id: str # ID of document scope
kind: Kind # Document scope (Space/Member/Project)
creator: str # Creator user ID
created_at: datetime # Creation timestamp
updated_at: datetime # Last update timestamp
bucket: str # Storage bucket ID
content: Optional[str] # Document content (encoded)
content_updated_at: Optional[datetime] # Content update timestamp
Request Models
CreateDocumentRequest
class CreateDocumentRequest:
kind: Kind # Required - Document scope (Space/Member/Project)
kind_id: str # Required - ID of space/member/project
title: str # Required - Document title
index: int # Required - Position in document list
parent_document_id: Optional[str] # Optional - Parent document ID for nesting
EditDocumentRequest
class EditDocumentRequest:
document_id: str # Required - Document ID to edit
title: str # Required - New document title
Response Models
CreateDocumentResponse
class CreateDocumentResponse:
payload: CreateDocumentPayload # Response payload
type: str # Response type ("CreateDocument")
CreateDocumentPayload
class CreateDocumentPayload:
document: Document # Created document
EditDocumentResponse
class EditDocumentResponse:
payload: EditDocumentPayload # Response payload
type: str # Response type ("EditDocument")
EditDocumentPayload
class EditDocumentPayload:
document: EditDocument # Edited document
GetDocumentsRequest
class GetDocumentsRequest:
kind: Kind # Required - Document scope (Space/Member/Project)
kind_id: str # Required - ID of space/member/project
GetDocumentsResponse
class GetDocumentsResponse:
payload: GetDocumentsPayload # Response payload
type: str # Response type ("GetDocuments")
GetDocumentsPayload
class GetDocumentsPayload:
documents: List[Document] # List of documents
GetDocumentRequest
class GetDocumentRequest:
document_id: str # Required - Document ID
ReplaceDocumentRequest
class ReplaceDocumentRequest:
document_id: str # Required - Document ID
description: str # Required - New document content
ReplaceDocumentResponse
class ReplaceDocumentResponse:
# Empty response on success
pass
ReplaceJSONDocumentRequest
class ReplaceJSONDocumentRequest:
document_id: str # Required - Document ID
content: List[Dict[str, Any]] # Required - JSONContent array in document structure format
ReplaceJSONDocumentResponse
class ReplaceJSONDocumentResponse:
# Empty response on success
pass
ReplaceMarkdownDocumentRequest
class ReplaceMarkdownDocumentRequest:
document_id: str # Required - Document ID
markdown: str # Required - New content as Markdown
ReplaceMarkdownDocumentResponse
class ReplaceMarkdownDocumentResponse:
# Empty response on success
pass
AppendMarkdownDocumentRequest
class AppendMarkdownDocumentRequest:
document_id: str # Required - Document ID
markdown: str # Required - Content to append as Markdown
AppendMarkdownDocumentResponse
class AppendMarkdownDocumentResponse:
# Empty response on success
pass
GetMarkdownDocumentRequest
class GetMarkdownDocumentRequest:
document_id: str # Required - Document ID
GetMarkdownDocumentResponse
class GetMarkdownDocumentResponse:
payload: GetMarkdownDocumentPayload # Response payload
type: str # Response type
@property
def markdown(self) -> str: ... # Shortcut for payload.markdown
GetMarkdownDocumentPayload
class GetMarkdownDocumentPayload:
markdown: str # Document content as Markdown ("" if empty)
See Also
- Documents Guide - Usage examples and patterns
- Enums - Kind enum for document scopes