Server URL templating
These pages cover SDK generation configured with generators.yml. New projects use sdk-config.yml, so see the Current version of this page for up-to-date guidance. To move an existing project, follow the SDK Config migration guide, which walks through fern sdk migrate, and review the sdk-config.yml reference.
Server URL templating lets you define base URLs with variable placeholders (e.g., {region}, {environment}) that SDK users can customize at runtime. This is useful for APIs deployed across multiple regions, environments, or custom domains.
Server URL templating is supported for TypeScript, Python, Java, Go, C#, PHP, and Ruby SDK generation.
Generated SDK behavior
Fern generates an environments module that exposes the default URLs for each named server. SDK users can select a pre-defined environment, set URL variables through client options, or pass custom URL strings. Variable names that conflict with existing client options use a serverUrl prefix in the language’s casing convention, such as serverUrlEnvironment.
TypeScript
Python
Java
Go
C#
PHP
Ruby
The generated SDK exposes an Environment object:
SDK users can select an environment, set URL variables, or pass a custom base URL when constructing the client:
Setting up server URL templating
Define URL template variables in your API definition and provide a static fallback URL when SDK users don’t customize variables:
For full configuration details, see Server names and URL templating in OpenAPI.