---
sidebar:
  order: 2
title: SDK för TypeScript
description: >-
  Använd kodförrådets SDK för typade läsningar, bekräftade skrivningar och uppladdning av lokala medier.
---

`@influence/sdk` är för närvarande ett privat paket i kodförrådet och är inte publicerat på npm. Exemplen gäller projekt där paketet från kodförrådet är tillgängligt. Använd [HTTP-API:et](/sv/developers/http-api) för en fristående klient.

Ange den betrodda ursprungsadressen uttryckligen och läs in nyckeln från processens miljövariabler för hemligheter:

```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);
```

Använd `listTools()` för upptäckt och `callTool(name, input)` för verktyg vars katalog anger att bekräftelse inte krävs, inklusive fortsättning av godkända uppladdningar. Åtgärder som kräver bekräftelse använder `prepareTool(name, input)` följt av `confirmTool(name, input, confirmationCapability, { idempotencyKey })`. Behåll samma indata, bekräftelsevärde och nyckel efter ett osäkert svar. SDK:et validerar begäranden och svar och kastar `InfluenceSdkError` vid HTTP-fel och verktygsfel.

`uploadMedia(file, { clientKey, name, contentType, sizeBytes })` tar emot en `Blob` och hanterar den bekräftade multipartöverföringen. Försök igen med samma fil och samma `clientKey`. Läs `mediaUploadGet` tills den slutliga resursen är klar; en uppladdning som bearbetas är inte redo att publiceras. Följ de separata [reglerna för publiceringsgranskning och nya försök](/sv/developers/http-api).
