---
sidebar:
  order: 2
title: "SDK de TypeScript"
description: "Usa el SDK del repositorio para consultas tipadas, cambios confirmados y cargas locales."
---

`@influence/app-sdk` es un paquete privado del repositorio; no está publicado para instalarlo desde npm. Estos ejemplos requieren que el paquete esté disponible en tu espacio de trabajo de desarrollo. Para un cliente independiente, usa la [API HTTP](/es/developers/http-api).

Indica explícitamente el origen de confianza y carga la clave desde el entorno secreto del proceso:

```ts
import { InfluenceClient } from "@influence/app-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);
```

Usa `listTools()` para descubrir herramientas y `callTool(name, input)` para lecturas. Los cambios usan `prepareTool(name, input)` y después `confirmTool(name, input, confirmationCapability, { idempotencyKey })`. Conserva los mismos valores si el resultado es incierto. El SDK valida solicitudes y respuestas y lanza `InfluenceSdkError` ante fallos HTTP o de herramientas.

`uploadMedia(file, { clientKey, name, contentType, sizeBytes })` acepta un `Blob` y gestiona la carga confirmada por partes. Reintenta con el mismo archivo y `clientKey`. Consulta `mediaUploadGet` hasta que el archivo esté listo; mientras se procesa, no está listo para publicar. Respeta las [reglas de revisión y reintento](/es/developers/http-api).
