Generating an SDK
Generate a Python SDK by following the instructions on this page.
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.
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.
OpenAPI
Fern Definition
Validate your API definition
Check that your API definition is valid, and fix errors before proceeding:
Add the SDK generator
Run the following command to add the Python SDK generator to generators.yml:
This command adds the following group to generators.yml:
Generate the SDK
Run the following command to generate your SDK:
If you have multiple APIs, use the --api flag to specify the API you want to generate:
This creates a sdks folder in your current directory. The resulting folder structure looks like this:
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.
- Create a source repository for your
fern/folder if you don’t have one already (e.g.,your-org/your-api-definitions). - Create an SDK repository for your SDK (e.g.,
your-org/your-api-python-sdk). - Install the Fern GitHub App on both repositories.
Publish to PyPI
Follow the Publishing to PyPI guide to configure your package and set up automated publishing via GitHub Actions.