---
title: "SDK"
description: "Los SDK oficiales de Arbol para TypeScript y Rust, qué comparten y cuándo usar cada uno."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.getarbol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK

Los SDK de Arbol se generan a partir del documento OpenAPI público de la API, `https://api.getarbol.com/openapi.json`, así que cada operación de cada servicio es un método tipado con su nombre: `raiz.agents.create` es `arbol.raiz.agents.create()` en TypeScript y `arbol.raiz().agents().create(&input)` en Rust.

- **TypeScript** — `@arbol-ai/sdk` en npm, para Node.js, Bun y navegadores.
- **Rust** — El crate `arbol-sdk`, para servicios Rust asíncronos.

## Qué comparten

- **Una credencial.** Una API key de Arbol (`arb_live_…`) o el token de acceso de una persona para la audiencia `https://api.getarbol.com`, enviado como `Authorization: Bearer`. Consulta [Autenticación](/developers/authentication/).
- **Todos los servicios en un cliente.** Productos e integraciones por igual, tal como los sirve la API.
- **Sin reintentos.** Cada llamada envía una solicitud. Una escritura que falla sin respuesta puede haber ocurrido igual, así que revisa antes de repetirla. Consulta [Reintentos](/developers/concepts/retries/).
- **El servidor decide.** Un método en el cliente no es un permiso: la API verifica la organización y los permisos (scopes) de la credencial en cada llamada.

## En qué se diferencian

| | TypeScript | Rust |
|---|---|---|
| Paquete | [`@arbol-ai/sdk`](https://www.npmjs.com/package/@arbol-ai/sdk) en npm | `arbol-sdk`, una dependencia de git, todavía no está en crates.io |
| Corre en | Node.js 26, Bun 1.4 o un navegador actual | Rust 1.85 o posterior, en cualquier runtime de Tokio |
| Una llamada devuelve | El envoltorio de respuesta completo: `success`, `data`, `error`, `metadata` | El `data` del envoltorio |
| Un fallo es | Un `ApiError` con el estado HTTP y el cuerpo del error | Un `arbol_sdk::Error` con `code`, `request_id` y un `outcome` que dice si una escritura puede haber ocurrido |
| Se actualiza | Una nueva versión por cada release de la API que cambia la API | Se regenera a mano; `arbol_sdk::RELEASE` nombra el release de la API a partir del que se generó |

## Cuál usar

| Si construyes | Usa |
|---|---|
| Un servicio en Node.js o Bun, un script o una app web | El [SDK de TypeScript](/developers/sdks/typescript/). En un navegador, usa el token de acceso de una persona, nunca una API key. |
| Un servicio en Rust | El [SDK de Rust](/developers/sdks/rust/). |
| Comandos en una terminal, scripts de shell o CI | La [CLI](/developers/cli/), que está construida sobre el SDK de TypeScript. |
| Un asistente de IA que actúa sobre Arbol | El [servidor MCP](/developers/mcp/) de Arbol. |
| Cualquier cosa en otro lenguaje | La API REST directamente, a partir del documento OpenAPI de cada servicio: `https://api.getarbol.com/v1/<service>/openapi.json`. |

Source: https://docs.getarbol.com/developers/sdks/index.mdx
