# Extensions overview > Learn about OpenAPI extensions in Fern. Customize authentication, SDK methods, versioning, and more for better API specs. Fern supports a variety of OpenAPI extensions that enhance your API specification and generate higher-quality SDKs. You can apply these extensions in two ways: by overlaying them in separate override files or by embedding them directly in your OpenAPI specification. See [Overrides](/api-definitions/overview/overrides) for more information. ## Available extensions The table below shows all available extensions and links to detailed documentation for each one. | Extension | Description | | --- | --- | | [`x-fern-version`](./api-version) | Configure API version schemes and headers | | [`x-fern-audiences`](./audiences) | Filter endpoints, schemas, and properties by audience | | [`x-fern-basic`](/api-definitions/openapi/authentication#basic-security-scheme) | Customize basic authentication parameter names and environment variables | | [`x-fern-bearer`](/api-definitions/openapi/authentication#bearer-security-scheme) | Customize bearer authentication parameter names and environment variables | | [`x-fern-availability`](./availability) | Mark availability status (beta, generally-available, deprecated) | | [`x-fern-base-path`](./base-path) | Set base path prepended to all endpoints | | [`x-displayName`](./tag-display-names) | Specify how tag names display in your API Reference | | [`x-fern-enum`](./enum-descriptions-and-names) | Add descriptions and custom names to enum values | | [`x-fern-examples`](./request-response-examples) | Associate request and response examples | | [`x-fern-explorer`](./api-explorer-control) | Control API Explorer (playground) availability globally or per endpoint | | [`x-fern-global-headers`](./global-headers) | Configure headers used across all endpoints | | [`x-fern-header`](/api-definitions/openapi/authentication#apikey-security-scheme) | Customize API key header authentication parameter names and environment variables | | [`x-fern-ignore`](./ignoring-elements) | Skip reading specific endpoints or schemas | | [`x-fern-sdk-method-name`](./method-names) | Customize SDK method names | | [`x-fern-sdk-group-name`](./method-names) | Organize methods into SDK groups | | [`x-fern-sdk-variables`](./sdk-variables) | Set common path parameters across all requests | | [`x-fern-parameter-name`](./parameter-names) | Customize parameter variable names | | [`x-fern-property-name`](./property-names) | Customize object property variable names | | [`x-fern-retries`](./retry-behavior) | Configure retry behavior for endpoints | | [`x-fern-type-name`](./schema-names) | Override auto-generated names for inline schemas | | [`x-fern-server-name`](./server-names) | Name your servers | If there's an extension you want that doesn't already exist, file an [issue](https://github.com/fern-api/fern/issues/new) to start a discussion about it. ### FastAPI FastAPI allows you to add extensions directly in your route decorators and models. See our [FastAPI integration guide](/learn/api-definitions/openapi/frameworks/fastapi) for detailed examples.