The SDK generator for your API
Generate idiomatic SDKs in 9 languages from one OpenAPI spec. Retries, pagination, and tests come built in, and Fern publishes to every registry on autopilot.
Shipping production SDKs with Fern
Why teams generate SDKs with Fern
Open source generators
Every generator is Apache-2.0 licensed on GitHub. Fork it, audit it, or self-host the whole pipeline. You pay Fern for hosted CI, registry publishing, and dedicated SDK engineers.
Idiomatic in every language
Each SDK reads like a language expert wrote it, with native naming, strong types, inline documentation, and error handling that matches the language.
Published on autopilot
Fern detects spec changes, regenerates the SDKs, versions them semantically, and publishes to npm, PyPI, Maven, and more with no manual release step.
An SDK generator for every language
One spec generates a native client for each language, published to its own registry.
What every generated SDK includes
REST, WebSockets, and gRPC from one spec
Generate multi-protocol clients from a single source, with typed streaming helpers for SSE and WebSockets.
Reliable by default
Retries with exponential backoff, idempotency keys, and first-class pagination ship on by default.
Tested before you ship
Unit tests, mock-server wire tests, and integration tests are generated with every SDK.
Docs and snippets from the same spec
Reference docs and always-accurate code snippets generate from the same source, so they never drift from the SDK.
Runs in your CI, not a dashboard
Generation lives in a fern/ directory. CI opens a pull request with updated SDKs on every spec change. fern generate --local keeps the whole pipeline on your own infrastructure.
We used an alternative SDK generator, OpenAPI Generator, for years, and customers constantly complained. Since adopting Fern, customers have migrated rapidly to our new SDKs and have been blown away by the quality.
Gil FeigCTO, Merge
From your API to published SDKs
Point Fern at your spec and run fern generate. Everything after that is automated.
Import your spec
Bring OpenAPI, AsyncAPI, OpenRPC, gRPC, or the Fern Definition. Merge multiple specs into one SDK.
Pick your languages
Choose from TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift, and Rust.
Add custom code
Extend the generated client with helpers and logic. Your changes survive every regeneration.
Publish everywhere
Fern versions and publishes to each registry on every spec change, all on autopilot.
Common questions about SDK generation
Want the full feature set? Explore every SDK capability on the SDKs page.
Generate your first SDK in 30 minutes
A Fern engineer runs the generator on your spec and walks you through the output in every language you ship. No sales pitch, no slide deck.
Book a demo
