SDK¶
The SDK documentation is for developers who need to call MOI capabilities from applications, automation scripts, or services. MOI provides official Python and Go SDKs. Both are clients for the MOI Catalog Service and expose two layers:
RawClientprovides low-level, endpoint-oriented calls for code that needs direct control over request parameters and results.SDKClientwrapsRawClientwith multi-step helpers for operations such as table roles, file imports, and selected workflow tasks.
If you use another language or need the exact HTTP contract, use the API documentation.
Choose a starting point¶
For a first integration, follow this path:
Install the official package for your language:
python -m pip install "moi-python-sdk @ git+https://github.com/matrixorigin/moi-python-sdk.git@main"
go get github.com/matrixorigin/moi-go-sdk
Use the Go SDK quickstart or Python SDK quickstart to create a
RawClientand complete one minimal request. The public client constructors in both implementations require a Catalog Service base URL and an API key.Review Installation and upgrades, Endpoints and authentication, and Client and Workspace. Make sure the SDK version, service address, credentials, and target resources belong to the intended environment.
Choose
RawClientorSDKClientfor the task, then continue with the relevant product area below. For list operations, file downloads, and data analysis, also follow Results, pagination, and streaming.
Before writing code, obtain a Catalog Service base URL and a valid API key from the administrator of the target environment. Do not copy api.example.com or your-api-key from examples. Pin a tested SDK version in production projects and run regression tests before upgrading it.
Find documentation by task¶
Task |
Documentation |
Current boundary of the official Go and Python SDKs |
|---|---|---|
Connect a client |
Supports base URLs, API keys, timeouts, custom HTTP clients and headers, per-call options, errors, and streaming results. |
|
Manage users and permissions |
Supports users, roles, and privileges. No account, Workspace, or membership management methods were found in the public source. |
|
Work with data assets |
Supports catalogs, databases, tables, volumes, folders, files, connector uploads, and imports. No data-sharing methods were found. |
|
Orchestrate and track data processing |
Supports creating workflows, listing workflow jobs, and high-level helpers for document-processing workflows and job polling. Generic deployment, pause, cancel, node rerun, and Lineage methods were not found. |
|
Build knowledge and data-analysis applications |
Supports NL2SQL knowledge entries and streaming data analysis. Semantic-model and Explore data-source management methods were not found. |
|
Invoke or track an agent |
No Agent Card, A2A message, or Agent Task methods were found in the public SDK source. |
|
Configure model access |
The public SDKs include LLM Proxy session and message calls, but no Provider, backend, endpoint, or router management methods were found. |
|
Run and manage SQL |
|
|
Manage runtime resources and notifications |
No compute-resource or alert-management methods were found in the public SDK source. |
This table reflects the current public source in the official repositories. It is a routing aid, not a complete list of server capabilities. Language implementations can evolve at different rates; code against the public types and methods in the version your project has pinned, rather than inferring SDK support from the documentation tree alone.
Integration considerations¶
Confirm the target environment. Before creating, reading, or updating a resource, verify the client’s base URL and API key. The public
RawClientconstructors do not accept a separate Workspace parameter.Do not assume a list is returned in one response. Follow the SDK’s pagination guidance for list operations, and consume streaming responses incrementally as events or data chunks.
Keep enough context to diagnose failures. Record request or task identifiers, status, error details, and timestamps, but never write access credentials to logs.
Retry writes deliberately. Automate retries only after confirming that the operation is safe to retry and that your code can distinguish a connection failure from a request already accepted by the service.
Validate side effects outside production first. Use controlled resources to test permissions and results for operations such as membership changes, data transfers, workflow runs, and model routing.
For console procedures, see the product guides. For quick reference on SQL, permissions, error codes, and API fields, see the reference documentation.