Skip to main content
SDK аутентифицирует каждый запрос с помощью bearer API-ключа. Вы создаёте YoukaClient один раз и переиспользуете его на протяжении всего времени жизни вашего процесса.

new YoukaClient(options)

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

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

Options

apiKey
string
required
Ваш Youka API-ключ. Создайте его на online.youka.io/account в разделе API keys.
fetch
typeof fetch
Пользовательская реализация fetch. По умолчанию используется глобальный fetch. Используйте это, чтобы добавить логирование, прокси или пользовательское middleware для повторных попыток.

Хранение API-ключа

API-ключи дают доступ к вашему биллингу. Никогда не коммитьте их в систему контроля версий.
Рекомендуемые подходы:
const client = new YoukaClient({
  apiKey: process.env.YOUKA_API_KEY!,
});

Внедрение пользовательского fetch

Каждый метод SDK использует fetch, который вы передаёте в конструктор. Это упрощает добавление логирования или middleware:
import { YoukaClient } from "@youka/ru/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,
});

Параметры на уровне запроса

Каждый метод принимает необязательный второй или третий аргумент с параметрами на уровне запроса:
await client.projects.create(body, {
  idempotencyKey: "import-2026-04-08-song-001",
  signal: abortController.signal,
});
idempotencyKey
string
Передаётся как заголовок Idempotency-Key. Повторное использование одного и того же ключа с тем же payload возвращает исходный результат вместо создания дубликата. См. API idempotency.
signal
AbortSignal
Стандартный сигнал отмены. Отменяет выполняющиеся запросы и длительные опросы client.tasks.wait(...), client.projects.wait(...) и client.exports.wait(...).

Что дальше

  • Projects — создайте свой первый проект
  • Errors — обработайте ошибки аутентификации
  • API authentication — детали raw HTTP-заголовков