Generating an SDK

View as Markdown

Generate a TypeScript SDK by following the instructions on this page.

Already completed the Quickstart? Skip ahead to Set up GitHub repositories.

1

Install the Fern CLI

$npm install -g fern-api
2

Initialize the fern folder

Initialize the fern folder with your existing OpenAPI specification, or start from scratch with a Fern Definition template. Specify your organization name using the --organization flag.

$fern init --openapi path/to/openapi.yml \
>--organization <YourOrganization>

OpenAPI accepts both JSON and YAML formats. You can always convert a Fern Definition to OpenAPI or OpenAPI to a Fern Definition later on.

This creates a fern folder in your current directory.

fern
fern.config.json# root-level configuration
api# your API
generators.yml# generators you're using
openapi
openapi.yml# API-level configuration
3

Validate your API definition

Check that your API definition is valid, and fix errors before proceeding:

$fern check
4

Generate the SDK

fern init includes the TypeScript SDK generator by default, so you can generate right away:

$fern generate

This creates a sdks folder in your current directory. The resulting folder structure looks like this:

fern# created by fern init
sdks# created by fern generate
typescript
Client.ts
index.ts
errors
core
api
5

Set up GitHub repositories

Fern uses a multi-repo structure: your source repository contains the fern/ folder, and each SDK gets its own separate repository.

  1. Create a source repository for your fern/ folder if you don’t have one already (e.g., your-org/your-api-definitions).
  2. Create an SDK repository for your SDK (e.g., your-org/your-api-typescript-sdk).
  3. Install the Fern GitHub App on both repositories.
6

Publish to npm

Follow the Publishing to npm guide to configure your package and set up automated publishing via GitHub Actions.