First-class TypeScript types
Auto-retry with backoff on 429/5xx (+ jitter)
Pagination helpers (iterate pages safely)
Date helpers for YYYYMMDD
Error objects mirroring API shape
Convenience methods per endpoint (e.g., client.funds.list())
import { Fintatica } from '@fintatica/sdk';
const client = new Fintatica({
app_name: "My App Name",
api_key: process.env.FT_API_KEY
});
const res = await client.funds.list({
page: 0,
page_size: 100,
sort_by: 'updated_at',
sort_order: 'desc',
});
console.log(res.items.length, 'funds');
Pydantic models for typed responses
Auto-retry with backoff on 429/5xx (+ jitter)
Pagination helpers (generators)
Date helpers for YYYYMMDD
Error classes mirroring API shape
Convenience methods per endpoint (e.g., client.funds.list())
Authentication: Provide your key via FT_API_KEY env var or pass apiKey/api_key to the client. SDKs always send X-API-Key; for GET requests they can fall back to api_key query if needed. If both are present, header wins.
Rate limits: Defaults are 100 req/min per key. SDKs respect Retry-After and implement exponential backoff with jitter.
Pagination: Prefer iter helpers for large syncs; they handle page increments and termination (stop when a page returns fewer than requested).
Dates: Use YYYYMMDD strictly for date, from, to params.
Errors: Exceptions include code, message, error_data, status, and request_id for support.
Go — idiomatic client with context/timeouts, pagination iterators
R — tidy data frames, readr-friendly CSV helpers
Rust — async client, typed models (serde)
Kotlin — JVM client, coroutines, data classes
OpenAPI spec — for codegen and Postman collections
Less boilerplate: retries, pagination, and validation baked in.
Fewer mistakes: consistent handling of YYYYMMDD, 0-based page, and page_size limits.
Safer: unified error objects and request IDs make support & observability easier.
Future-proof: when endpoints evolve, SDK methods update without rewriting your integration.