Skip to main content
Das SDK authentifiziert jede Anfrage mit einem Bearer-API-Schlüssel. Du erstellst einen YoukaClient einmal und verwendest ihn für die gesamte Laufzeit deines Prozesses wieder.

new YoukaClient(options)

import { YoukaClient } from "@youka/de/sdk";

const client = new YoukaClient({
  apiKey: process.env.YOUKA_API_KEY!,
});

Optionen

apiKey
string
required
Dein Youka-API-Schlüssel. Erstelle einen unter online.youka.io/account unter API keys.
fetch
typeof fetch
Benutzerdefinierte fetch-Implementierung. Standardmäßig wird das globale fetch verwendet. Nutze dies, um Logging, Proxies oder benutzerdefinierte Retry-Middleware einzuschleusen.

Den API-Schlüssel speichern

API-Schlüssel gewähren Zugriff auf deine Abrechnung. Committe sie niemals in die Versionsverwaltung.
Empfohlene Muster:
const client = new YoukaClient({
  apiKey: process.env.YOUKA_API_KEY!,
});

Einen benutzerdefinierten Fetch injizieren

Jede SDK-Methode verwendet den fetch, den du an den Konstruktor übergibst. Dadurch lassen sich Logging oder Middleware leicht hinzufügen:
import { YoukaClient } from "@youka/de/sdk";

const instrumentedFetch: typeof fetch = async (input, init) => {
  const start = Date.now();
  const response = await fetch(input, init);
  console.log(
    `${init?.method ?? "GET"} ${input} ${response.status} in ${Date.now() - start}ms`,
  );
  return response;
};

const client = new YoukaClient({
  apiKey: process.env.YOUKA_API_KEY!,
  fetch: instrumentedFetch,
});

Optionen pro Anfrage

Jede Methode akzeptiert ein optionales zweites oder drittes Argument mit Optionen auf Anfrageebene:
await client.projects.create(body, {
  idempotencyKey: "import-2026-04-08-song-001",
  signal: abortController.signal,
});
idempotencyKey
string
Wird als Header Idempotency-Key übergeben. Die Wiederverwendung desselben Schlüssels mit derselben Payload liefert das ursprüngliche Ergebnis zurück, statt ein Duplikat zu erstellen. Siehe API idempotency.
signal
AbortSignal
Standard-Abbruchsignal. Bricht laufende Anfragen sowie langlaufende client.tasks.wait(...), client.projects.wait(...) und client.exports.wait(...)-Polling-Aufrufe ab.

Wie geht es weiter