Skip to main content
Le SDK authentifie chaque requête avec une clé API bearer. Vous créez un YoukaClient une seule fois et le réutilisez pendant toute la durée de vie de votre processus.

new YoukaClient(options)

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

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

Options

apiKey
string
required
Votre clé API Youka. Créez-en une sur online.youka.io/account sous API keys.
fetch
typeof fetch
Implémentation fetch personnalisée. Par défaut, utilise le fetch global. Utilisez ceci pour injecter de la journalisation, des proxys ou un middleware de nouvelle tentative personnalisé.

Stocker la clé API

Les clés API donnent accès à votre facturation. Ne les versionnez jamais dans le contrôle de source.
Modèles recommandés :
const client = new YoukaClient({
  apiKey: process.env.YOUKA_API_KEY!,
});

Injecter un fetch personnalisé

Chaque méthode du SDK utilise le fetch que vous passez au constructeur. Cela facilite l’ajout de journalisation ou de middleware :
import { YoukaClient } from "@youka/fr/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,
});

Options par requête

Chaque méthode accepte un deuxième ou troisième argument optionnel contenant des options au niveau de la requête :
await client.projects.create(body, {
  idempotencyKey: "import-2026-04-08-song-001",
  signal: abortController.signal,
});
idempotencyKey
string
Transmis en tant qu’en-tête Idempotency-Key. Réutiliser la même clé avec le même payload renvoie le résultat d’origine au lieu de créer un doublon. Voir API idempotency.
signal
AbortSignal
Signal d’annulation standard. Annule les requêtes en cours et les sondages de longue durée client.tasks.wait(...), client.projects.wait(...) et client.exports.wait(...).

Et ensuite