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

# Cliente

> Instalação e configuração do @sonder/sdk

O `@sonder/sdk` é o SDK oficial em Node.js/TypeScript para a **API v1 do SonderCloud**. Ele expõe três recursos principais: [`apps`](https://docs.sondercloud.app/sdk/aplicacoes/visao-geral), [`databases`](https://docs.sondercloud.app/sdk/databases/visao-geral) e [`account`](https://docs.sondercloud.app/sdk/conta).

## Instalação

```bash npm theme={null}
npm install @sonder/sdk
```

```bash yarn theme={null}
yarn add @sonder/sdk
```

```bash pnpm theme={null}
pnpm add @sonder/sdk
```

> [!NOTE]
>
> O SDK depende do `fetch` global (Node.js 18+). Em runtimes sem `fetch` nativo, forneça uma implementação customizada via `fetch` na configuração.

## Uso básico

```ts theme={null}
import { SonderCloudSDK } from '@sonder/sdk';

const sonder = new SonderCloudSDK({
  apiToken: process.env.ZENTRAX_API_TOKEN!,
});

const apps = await sonder.apps.list();
console.log(apps);
```

Também é possível usar o helper `createClient`, equivalente a `new SonderCloudSDK(...)`:

```ts theme={null}
import { createClient } from '@sonder/sdk';

const sonder = createClient({ apiToken: process.env.ZENTRAX_API_TOKEN! });
```

## Configuração do cliente

**apiToken** `string` *required*

Token de API Bearer do SonderCloud, obtido no painel do usuário. Enviado em toda requisição como `Authorization: Bearer <token>`.

**baseUrl** `string` (default: [https://api.sondercloud.app](https://api.sondercloud.app))

URL base da API, sem sufixo de versão.

**timeoutMs** `number` (default: 30000)

Timeout de cada requisição, em milissegundos. Ao ser excedido, a promise rejeita com um erro informando a URL e o timeout configurado.

**headers** `object`

Cabeçalhos HTTP extras enviados em todas as requisições.

**fetch** `Function`

Implementação customizada de `fetch`. Útil em runtimes sem `fetch` global.

> [!WARNING]
>
> Se `apiToken` não for informado, o construtor lança um erro imediatamente (`SonderCloudSDK: "apiToken" é obrigatório.`).

### Exemplo completo

```ts theme={null}
const sonder = new SonderCloudSDK({
  apiToken: 'seu-token',
  baseUrl: 'https://api.custom.lat',
  timeoutMs: 60_000,
  headers: { 'X-Custom-Header': 'valor' },
  fetch: myCustomFetchFunction,
});
```

## Recursos disponíveis

| Recurso | Descrição |
| - | - |
| [`sonder.apps`](https://docs.sondercloud.app/sdk/aplicacoes/visao-geral) | Deploy, ciclo de vida e arquivos de aplicações. |
| [`sonder.databases`](https://docs.sondercloud.app/sdk/databases/visao-geral) | Criação, ciclo de vida e credenciais de databases. |
| [`sonder.account`](https://docs.sondercloud.app/sdk/conta) | Informações da conta autenticada. |

> **[Tratamento de erros](https://docs.sondercloud.app/sdk/erros.md)**
>
> Veja como capturar e diferenciar os erros lançados pelo SDK.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.