Skip to content

SDKs overview

oneapi.finance does not currently publish official SDKs. This page explains the rationale and gives you everything you need to write a thin client in your preferred language.

Why no official SDK

  1. Our wire format is small and conventional. It is camelCase JSON over HTTPS with bearer-token auth. Every modern language has a one-line HTTP client that handles this.
  2. An SDK is a maintenance liability. Every new endpoint requires an SDK release, a changelog, an upgrade path. We would rather ship endpoints faster.
  3. Hand-rolled clients are easier to debug. When something is wrong with a call, a tiny wrapper around httpx or fetch is faster to inspect than a dependency you did not write.
  4. Type safety is library-friendly. Pydantic v2 models for every endpoint are shipped in the oneapi_core Python package (see Python). For TypeScript, we publish hand-written types (TypeScript).

If a community SDK appears that we are confident in, we will link it here.

Pick a language

What every wrapper should do

Whatever language you pick, your wrapper should:

  • Set the Authorization: Bearer header on every request. Read the key from an environment variable, never hard-code it.
  • Set a timeout. Default to 10-15 seconds. Without one, a hung connection hangs your whole worker.
  • Treat 429 specially. Honor Retry-After and back off with jitter. See rate limits.
  • Surface the error envelope. Parse { code, message, status, details } on non-2xx responses and raise a typed exception with the code available for branching.
  • Log the meta.source. A spike in fallback sources is a quality signal.

What a wrapper should not do

  • Cache responses inside the SDK opaque to the caller. Cache at the application layer where the TTL is appropriate. See caching recipe.
  • Retry on 4xx. Those are client errors and retries do not help.
  • Retry on 401 / 403. Re-authenticate or surface to the user instead.
  • Log the API key. Never. Not even at debug level.

See also