> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. # API version > Configure API version schemes using `info.version` and `x-fern-version` Fern supports two complementary ways to express the version of your API. `info.version` records a single version string that flows through to your generated docs and downloadable spec. `x-fern-version` defines a header-based version scheme for APIs that dispatch behavior based on a version header (similar to Stripe's `Stripe-Version`). ## `info.version` Fern preserves the `info.version` field from your OpenAPI specification. Any format is supported, including [SemVer](https://semver.org/) (`1.2.3`), [CalVer](https://calver.org/) (`2026-06-23`), or custom strings. **`openapi.yml`** ```yaml title="openapi.yml" openapi: 3.1.0 info: title: My API version: "2026-06-23" paths: ... ``` The value carries through to the [downloadable OpenAPI spec](/learn/docs/developer-tools/openapi-spec) served from your docs site and to Markdown output on API Reference pages. ## `x-fern-version` To define a header-based API version scheme, use `x-fern-version`: **`openapi.yml`** ```yaml title="openapi.yml" x-fern-version: header: X-API-Version default: "2.0.0" values: - "1.0.0" - "2.0.0" - "latest" paths: ... ``` This generates a version selector dropdown in the API Reference and attaches the chosen version as a request header on each call. > Configure API version schemes using `info.version` and `x-fern-version`