context69-sdk
Async Rust SDK for the Context69 HTTP API.
context69-sdk is a PAT-only client. Initialize it with a personal access token that starts with ctx_pat_, then navigate the resource tree to call an API.
Initialization
use Context69Client;
async
The builder rejects empty tokens and non-PAT tokens. Protected APIs return Error::AuthenticationRequired if no PAT is configured.
Groups and nested resources
use ;
# async
Group handles own the group path, so nested calls do not repeat it:
# use Context69Client;
# async
Sources
# use ;
# async
Library
use ;
# async
Multipart uploads use reqwest::multipart::Part:
# use Context69Client;
use Part;
# async
Settings and search
# use ;
# async
Resource tree
client.user_directory(): user searchclient.groups()/client.group(path): groups, children, membersclient.sources()/client.source(key): source collection and item operationsclient.source_connections()/client.source_connection(name): connection operationsclient.library(): personal library folders, texts, files, and jobsclient.group(path).library(): group-scoped library resourcesclient.group(path).source_folders()/source_folder(id): group source foldersclient.settings(): runtime, provider accounts, Docling, and search settingsclient.search()/client.document(id): search and document lookup- root client:
me()andhealthz()
PAT scopes
workspace: user directory, groups, membershipssources: source connections, sources, group source folders, synclibrary: personal and group library resourcessettings: runtime, provider accounts, Docling, search settingssearch: search and document APIs
Migrating from 0.4
Version 0.5 removes the old grouped service methods. Common replacements:
client.workspace().list_groups() -> client.groups().list()
client.workspace().get_group(path) -> client.group(path).get()
client.sources().sync_source(key) -> client.source(key).sync()
client.sources().sync_group_source_folder(path, id) -> client.group(path).source_folder(id).sync()
client.library().get_library_tree() -> client.library().tree()
client.library().get_group_library_file(path, id) -> client.group(path).library().file(id).get()
client.settings().get_docling_settings() -> client.settings().docling().get()
client.search().search(request) -> client.search().execute(&request)
client.search().get_document(id) -> client.document(id).get()
Login, refresh, logout, PAT management, and admin-user APIs remain intentionally excluded. HTTP 401 Unauthorized responses are returned directly; the SDK does not retry with refresh-cookie logic.