Linkit
SDK Reference

SDK Reference

Official Linkit SDKs — integrate the Linkit API from any language with production-grade resilience, fluent builders, and type safety.

SDK Reference

Linkit provides official SDKs for 8 languages. Every SDK implements the same architecture: typed models, fluent builders, production-grade resilience (circuit breaker, retry with jitter, rate limiting), and full API parity.

Same API, Every Language

All SDKs implement identical domain coverage: 11 services (SKU, Product, Branch, Customer, Order, Offer, Brand, Category, Generic, Health, Integration), 4 fluent builders, and a unified exception hierarchy with transient-error detection.


Choose Your SDK


Architecture Comparison

FeatureC#TypeScriptPythonDartKotlinRustSwiftGo
Async I/Oasync/awaitPromiseasyncioFuturesuspendasync/awaitasync/awaitcontext.Context
SerializationSystem.Text.JsonNative JSONdataclassesHand-writtenkotlinx.serializationserdeCodableencoding/json
HTTP ClientHttpClientfetchhttpxdioOkHttpreqwestURLSessionnet/http
Resilience
Builders✅ Fluent✅ Fluent✅ Fluent✅ Fluent✅ Fluent✅ Fluent✅ Fluent✅ Options
Validation✅ On build✅ On build✅ On build✅ On build✅ On build✅ On build✅ On build✅ On call
Package ManagerNuGetnpmpippubMaven/GradleCargoSPMgo get

Common Patterns

Every SDK follows these patterns:

Client Initialization

var client = LinkitClient.QuickSetup("https://linkit.works/api/v1", "your-jwt-token");
const client = LinkitClient.quickSetup("https://linkit.works/api/v1", "your-jwt-token");
client = LinkitClient.quick_setup("https://linkit.works/api/v1", "your-jwt-token")
final client = LinkitClient.quickSetup('https://linkit.works/api/v1', 'your-jwt-token');
val client = LinkitClient.quickSetup("https://linkit.works/api/v1", "your-jwt-token")
let client = LinkitClient::builder()
    .base_url("https://linkit.works/api/v1")
    .build()?
    .with_auth("your-jwt-token").await?;
let client = try LinkitClient.quickSetup(
    baseUrl: "https://linkit.works/api/v1",
    jwtToken: "your-jwt-token"
)
client, err := linkit.QuickSetup("https://linkit.works/api/v1", "your-jwt-token")

Fluent Builders

var sku = new SkuCreateBuilder()
    .WithIvId("SKU-001")
    .InBranch("BR-RYD")
    .ForProduct("P-001")
    .WithPrice(29.99)
    .Build();
const sku = new SkuCreateBuilder()
    .withIvId("SKU-001")
    .inBranch("BR-RYD")
    .forProduct("P-001")
    .withPrice(29.99)
    .build();
sku = (SkuCreateBuilder()
    .with_iv_id("SKU-001")
    .in_branch("BR-RYD")
    .for_product("P-001")
    .with_price(29.99)
    .build())
final sku = (SkuCreateBuilder()
    ..withIvId('SKU-001')
    ..inBranch('BR-RYD')
    ..forProduct('P-001')
    ..withPrice(29.99))
    .build();
val sku = SkuCreateBuilder()
    .withIvId("SKU-001")
    .inBranch("BR-RYD")
    .forProduct("P-001")
    .withPrice(29.99)
    .build()
let sku = client.skus().create()
    .iv_id("SKU-001")
    .branch_iv_id("BR-RYD")
    .product_iv_id("P-001")
    .price(29.99)
    .send().await?;
let sku = try await client.skus.create(
    SKURequest(
        ivId: "SKU-001",
        branchIvId: "BR-RYD",
        productIvId: "P-001",
        price: 29.99
    )
)
sku, err := client.SKUs.Create(ctx, &linkit.SKURequest{
    IvID: "SKU-001", BranchIvID: "BR-RYD",
    ProductIvID: "P-001", Price: ptr(29.99),
})

Resilience Pipeline

Every request flows through a 3-layer resilience pipeline — automatically:

  1. Rate Limiter — Controls concurrent requests (default: 10)
  2. Circuit Breaker — Opens after N failures, auto-recovers via half-open state
  3. Retry with Jitter — Exponential backoff + random jitter for transient errors (5xx, 429, timeouts)

No configuration needed — sensible defaults are applied. Override via LinkitConfiguration.