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:

  • RawClient provides low-level, endpoint-oriented calls for code that needs direct control over request parameters and results.

  • SDKClient wraps RawClient with 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:

  1. 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
    
  2. Use the Go SDK quickstart or Python SDK quickstart to create a RawClient and complete one minimal request. The public client constructors in both implementations require a Catalog Service base URL and an API key.

  3. 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.

  4. Choose RawClient or SDKClient for 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

SDK fundamentals

Supports base URLs, API keys, timeouts, custom HTTP clients and headers, per-call options, errors, and streaming results.

Manage users and permissions

Accounts, Workspaces, and permissions

Supports users, roles, and privileges. No account, Workspace, or membership management methods were found in the public source.

Work with data assets

Data, files, and connectors

Supports catalogs, databases, tables, volumes, folders, files, connector uploads, and imports. No data-sharing methods were found.

Orchestrate and track data processing

Workflows and Lineage

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

Knowledge and Explore

Supports NL2SQL knowledge entries and streaming data analysis. Semantic-model and Explore data-source management methods were not found.

Invoke or track an agent

Agents and A2A

No Agent Card, A2A message, or Agent Task methods were found in the public SDK source.

Configure model access

Models and Providers

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

SQL

SDKClient can execute SQL through the NL2SQL service. Workbook, version, and query-history methods were not found.

Manage runtime resources and notifications

Compute resources and alerting

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 RawClient constructors 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.

Documentation tree