SDKs & clients
First-party typed clients: the TypeScript SDK on npm, and the Python client (sync + async).
Two first-party clients, both pinned to the same OpenAPI contract the docs render from (/openapi.json) — or generate your own client from that spec in any language.
TypeScript / JavaScript — @quanaris/sdk
Typed REST methods matching the OpenAPI contract, automatic retry with backoff on 429/502/503 (honours Retry-After), and an auto-reconnecting WebSocket client (@quanaris/sdk/ws). Zero runtime dependencies — platform fetch, Node 18+ and every browser.
npm install @quanaris/sdk
import { QuanarisClient } from "@quanaris/sdk";
const q = new QuanarisClient({ apiKey: process.env.QUANARIS_KEY });
const overview = await q.token.overview("C7heQqfNzdMbUFQwcHkL9FvdwsFsDRBnfwZDDyWYCLTZ");
const candles = await q.token.ohlcv("C7heQqfNzdMbUFQwcHkL9FvdwsFsDRBnfwZDDyWYCLTZ", { interval: "1m", limit: 100 });
console.log(overview.priceUsd, candles.data.length);
Streaming lives in its own module so REST-only consumers never pay for it:
import { QuanarisStream } from "@quanaris/sdk/ws";
Python — quanaris
Sync and async clients on httpx, dataclass response models (camelCase → snake_case), automatic retry/backoff and cursor-following pagination helpers.
pip install quanaris doesn't resolve to this client yet. The TypeScript SDK is available on npm today; the Python client below ships once the PyPI release lands.from quanaris import QuanarisClient with QuanarisClient(api_key="qnr_live_…") as q: price = q.token.price("C7heQqfNzdMbUFQwcHkL9FvdwsFsDRBnfwZDDyWYCLTZ") print(price.price_usd, price.updated_at)
Other languages
The OpenAPI 3.1 document at /openapi.json carries named response models, so generators (openapi-typescript, openapi-python-client, openapi-generator) emit real typed clients. AI agents can also read /llms.txt and /llms-full.txt, or use the MCP server directly.