Type-safe & idiomatic
Fully typed models, parameters, and responses with editor autocomplete. Each SDK reads like it was hand-written for its language — Pydantic models, Go structs, Java records, TS interfaces.
From spec-driven generation to publish-on-tag releases — Soxom handles the full lifecycle.
Soxom SDKs ship the runtime ergonomics your customers expect — the same capabilities are exercised at runtime across every language by our conformance suite, not just emitted and hoped for.
Fully typed models, parameters, and responses with editor autocomplete. Each SDK reads like it was hand-written for its language — Pydantic models, Go structs, Java records, TS interfaces.
Cursor and offset list endpoints return a lazy iterable that walks every page for you. One loop, all results — or grab a page object for manual control.
Transient failures (429, 5xx, timeouts, connection errors) retry with exponential backoff and jitter, honoring Retry-After. Unsafe methods are gated on idempotency keys.
Bearer, API key (header/query/cookie), basic, OAuth2 (with lazy token fetch + auto-refresh), OpenID Connect, and mutual TLS — including AND/OR scheme combinations and per-operation overrides.
Server-Sent Events parse lazily into a typed async stream you can iterate and cancel. The TypeScript runtime adds NDJSON and raw byte streams.
Status-specific exception classes (NotFound, Unauthorized, RateLimit, …) carry the parsed error body, response headers, and request ID — catch exactly what you mean to.
Multipart form-data uploads, octet-stream bodies, and binary downloads work out of the box, with per-part encoding honored from your spec.
Declare webhooks in your 3.1 spec and Soxom emits typed payloads plus framework-agnostic receivers (with a multi-event mux) — content-type and method gating included.
Per-client and per-request timeouts, native cancellation signals, and request-level overrides for headers, query params, and retry budgets.
Everything you need to keep generated SDKs in sync with your API.
Push to your OpenAPI config repo and Soxom rebuilds every SDK target automatically — no manual triggers, no drift.
Hand-written extensions live in extended/* branches and are preserved across every regeneration. No rebase pain.
Python, Java, TypeScript, Go, Ruby, and C# ship today. Kotlin, PHP, and Rust follow the same architecture — coming soon.
Soxom plugs into the GitHub-based delivery workflow your team already uses.
Releases ship to PyPI, Maven Central, npm, RubyGems, NuGet, Packagist, and crates.io — directly from your own repos.
Staging release PRs let you review changelogs before tagging. Merge to production, Soxom pushes the version tag.
Generation, release PRs, and publishing all happen in your GitHub org. Your repos, your Actions, your credentials.
Soxom splits generated code from your customizations using a branch
strategy: codegen/* branches hold raw generator output and
extended/* branches hold your hand-written code on top. Regenerations
rebase cleanly because your code is isolated.
Every change flows through a staging release PR. Review the
changelog and diff, merge, and Soxom mirrors the result into your
production repo and pushes a version tag — which triggers your own
release.yml to publish.
Soxom never holds your PyPI, npm, or Maven Central tokens. Publishing runs inside your own GitHub Actions, using your own secrets. We just push the tag.
Each generator emits code that looks hand-written for its language —
Pythonic dataclasses, idiomatic Java records, TypeScript with the
Compiler API, Go that passes gofmt and goimports. No leaky-abstraction transpiler artifacts.
See full pricing — every plan starts with a 14-day free trial.