---
sidebar:
  order: 2
title: SDK TypeScript
description: >-
  Use o SDK do repositório para leituras tipadas, gravações com confirmação e envios de mídia local.
---

`@influence/sdk` é, no momento, um pacote privado do repositório, não uma instalação publicada no npm. Estes exemplos se aplicam a projetos que tenham esse pacote do espaço de trabalho disponível. Para um cliente independente, use a [API HTTP](/pt-BR/developers/http-api).

Forneça a origem confiável explicitamente e carregue a chave do ambiente de segredos do processo:

```ts
import { InfluenceClient } from "@influence/sdk/client";

const accessToken = process.env.PUBLISH_API_TOKEN;
if (!accessToken) throw new Error("PUBLISH_API_TOKEN");

const client = new InfluenceClient({
  baseUrl: "https://influence.so",
  accessToken,
});

const catalog = await client.listTools();
const accounts = await client.callTool("accountList", {});
console.log(catalog.tools, accounts.output);
```

Use `listTools()` para descoberta e `callTool(name, input)` para ferramentas cujo catálogo indique que a confirmação é desnecessária, incluindo a continuação de envios autorizados. Ações que exigem confirmação usam `prepareTool(name, input)` seguido de `confirmTool(name, input, confirmationCapability, { idempotencyKey })`. Mantenha a mesma entrada, capacidade de confirmação e chave após uma resposta incerta. O SDK valida solicitações e respostas e lança `InfluenceSdkError` para falhas HTTP e falhas das ferramentas.

`uploadMedia(file, { clientKey, name, contentType, sizeBytes })` aceita um `Blob` e cuida da transferência multipart com confirmação. Tente novamente com o mesmo arquivo e o mesmo `clientKey`. Leia `mediaUploadGet` até que o recurso final esteja pronto; um envio em processamento não está pronto para publicar. Respeite as [regras de revisão para publicação e novas tentativas](/pt-BR/developers/http-api), que são separadas.
