1. Home
  2. Fern

Fern is an open source format for defining REST APIs. You can think of it like a programming language to describe your API: your endpoints, types, errors, and examples.

The magic of Fern is our compiler. We use your API definition to generate useful outputs, like:

  • SDKs. Client libraries speed up internal development and help acquire customers who use your API. Our auto-generated SDKs are idiomatic and feel handwritten.
  • Server-side code generation. We automatically generate lots of boilerplate on the server side, like Pydantic models for FastAPI and Jersey interfaces for Spring Boot. We also add compile-time validation that all your endpoints are being served correctly.
  • A Postman Collection, complete with examples of successful and unsuccessful requests.
  • An OpenAPI spec, which you can feed into the endless list of tools that support OpenAPI.

Fern doesn’t just output files (although it can if you’re into that sort of thing). Fern can:

  • Publish packages to registries like npm or maven
  • Publish code to GitHub repos
  • Integrate with third-party tools, like Postman