Skip to main content
The Deyta constructor accepts a single DeytaConfig object.
import { Deyta } from "@deyta-ai/sdk";

const deyta = new Deyta({
  apiKey: process.env.DEYTA_API_KEY!,
  baseUrl: "https://api.deyta.ai",
  timeout: 30_000,
  retries: {
    maxRetries: 2,
    initialBackoffMs: 500,
    maxBackoffMs: 8_000,
    retryOn: [408, 429, 500, 502, 503, 504],
  },
  fetch: customFetch,
  logger: (event) => console.debug("[deyta]", event),
});

Options

apiKey
string
required
Your Deyta API key. Sent as Authorization: Bearer <apiKey> on every request.
baseUrl
string
default:"https://api.deyta.ai"
Override for staging, regional endpoints, or self-hosted gateways.
timeout
number
default:"30000"
Per-request timeout in milliseconds. Combined with caller-supplied AbortSignals — either can abort the request.
retries
RetryConfig
Retry policy for idempotent methods. See Retries.
fetch
typeof fetch
Inject a fetch implementation. Useful for tests, custom runtimes, or polyfills. Defaults to globalThis.fetch.
logger
(event: SdkLogEvent) => void
Hook that receives request, response, retry, and error events. No-op by default. Useful for wiring Pino, Winston, or console.

Logger events

type SdkLogEvent =
  | { type: "request"; method: string; url: string; attempt: number }
  | { type: "response"; status: number; durationMs: number }
  | { type: "retry"; attempt: number; backoffMs: number; reason: string }
  | { type: "error"; error: Error };
const deyta = new Deyta({
  apiKey,
  logger: (event) => {
    if (event.type === "retry") {
      console.warn(
        `[deyta] retry attempt=${event.attempt} backoff=${event.backoffMs}ms reason=${event.reason}`,
      );
    }
  },
});

User-Agent

Every request carries a User-Agent header of the form:
deyta-sdk/0.2.0 (bun/1.1.0; darwin)
deyta-sdk/0.2.0 (node/20.10.0; linux)
deyta-sdk/0.2.0 (browser)
It cannot be overridden — but per-call headers can add additional headers. See Cancellation and per-call options.