Arbol’s SDKs are generated from the API’s public OpenAPI document, https://api.getarbol.com/openapi.json, so every operation of every service is a typed method named after it: raiz.agents.create is arbol.raiz.agents.create() in TypeScript and arbol.raiz().agents().create(&input) in Rust.
TypeScript
@arbol-ai/sdk on npm, for Node.js, Bun and browsers.
Rust
The arbol-sdk crate, for async Rust services.
What they share
- One credential. An Arbol API key (
arb_live_…) or a person’s access token for the audiencehttps://api.getarbol.com, sent asAuthorization: Bearer. See Authentication. - Every service in one client. Products and integrations alike, as the API serves them.
- No retries. Each call sends one request. A write that fails without an answer may still have happened, so check before you repeat it. See Retries.
- The server decides. A method in the client is not a permission: the API checks the credential’s organization and scopes on every call.
How they differ
| TypeScript | Rust | |
|---|---|---|
| Package | @arbol-ai/sdk on npm |
arbol-sdk, a git dependency, not on crates.io yet |
| Runs on | Node.js 26, Bun 1.4 or a current browser | Rust 1.85 or newer, on any Tokio runtime |
| A call returns | The whole response envelope: success, data, error, metadata |
The envelope’s data |
| A failure is | An ApiError with the HTTP status and the error body |
An arbol_sdk::Error with code, request_id and an outcome that says whether a write may have happened |
| Updated | A new version for each API release that changes the API | Regenerated by hand; arbol_sdk::RELEASE names the API release it was generated from |
Which to use
| You are building | Use |
|---|---|
| A Node.js or Bun service, a script, or a web app | The TypeScript SDK. In a browser, use a person’s access token, never an API key. |
| A Rust service | The Rust SDK. |
| Commands in a terminal, shell scripts or CI | The CLI, which is built on the TypeScript SDK. |
| An AI assistant that acts on Arbol | Arbol’s MCP server. |
| Anything in another language | The REST API directly, from each service’s OpenAPI document: https://api.getarbol.com/v1/<service>/openapi.json. |