> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. # OpenAPI ## Docs - [What is an OpenAPI specification?](https://buildwithfern.com/learn/api-definitions/openapi/overview.md): OpenAPI is a standard for documenting REST APIs - [Overlays](https://buildwithfern.com/learn/api-definitions/openapi/overlays.md): Use the OpenAPI Overlay Specification to customize your OpenAPI definition without modifying the original spec. - [Overrides](https://buildwithfern.com/learn/api-definitions/openapi/overrides.md): Customize your API definition using a separate overrides file. - [Authentication](https://buildwithfern.com/learn/api-definitions/openapi/authentication.md): Model auth schemes such as bearer, basic, api key, and OAuth. - [Servers](https://buildwithfern.com/learn/api-definitions/openapi/servers.md): Configure server URLs and environments to help users connect to your API. - [Sync your OpenAPI specification](https://buildwithfern.com/learn/api-definitions/openapi/sync-your-open-api-specification.md): Pull your latest OpenAPI Specification into your Fern Folder automatically. - [HTTP JSON Endpoints](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/http.md): Document HTTP JSON APIs with the `application/json` content type - [Webhooks](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/webhooks.md): Learn how to define webhooks using OpenAPI 3.1 native support or Fern's extensions. Generate webhook docs and SDK verification utilities. - [Multipart file upload](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/multipart.md): Document endpoints with the `multipart/form-data` content type - [Server-sent events and streaming APIs](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/sse.md): Use the `x-fern-streaming` extension to model streaming endpoints - [Extensions overview](https://buildwithfern.com/learn/api-definitions/openapi/extensions/overview.md): Learn about OpenAPI extensions in Fern. Customize authentication, SDK methods, versioning, and more for better API specs. - [API version](https://buildwithfern.com/learn/api-definitions/openapi/extensions/api-version.md): Configure API version schemes using `info.version` and `x-fern-version` - [Use audiences to filter your API](https://buildwithfern.com/learn/api-definitions/openapi/extensions/audiences.md): Learn how to use x-fern-audiences to filter OpenAPI endpoints, schemas, and properties for different API consumers like public and beta users. - [Availability](https://buildwithfern.com/learn/api-definitions/openapi/extensions/availability.md): Mark API endpoint availability in OpenAPI with `x-fern-availability`. Set beta, deprecated, stable, etc. statuses for endpoints and sections. - [Base path](https://buildwithfern.com/learn/api-definitions/openapi/extensions/base-path.md): Configure base paths in OpenAPI with `x-fern-base-path`. Set up endpoint prefixes like /v1 for your API definitions with Fern. - [Default values](https://buildwithfern.com/learn/api-definitions/openapi/extensions/default-values.md): Use `x-fern-default` to set client-side default values for path, header, and query parameters in generated SDKs. - [Discriminator context](https://buildwithfern.com/learn/api-definitions/openapi/extensions/discriminator-context.md): Use `x-fern-discriminator-context` to distinguish protocol-level discriminators (such as SSE event types) from data-level discriminators embedded in the JSON payload. - [Enum descriptions, names, casing, and availability](https://buildwithfern.com/learn/api-definitions/openapi/extensions/enum-descriptions-and-names.md): Add descriptions, custom names, per-language casing overrides, and deprecation status to OpenAPI enum values with the `x-fern-enum` extension. - [Request + response examples](https://buildwithfern.com/learn/api-definitions/openapi/extensions/request-response-examples.md): Configure OpenAPI request and response examples with x-fern-examples. Associate path parameters, query parameters, and responses in your API definition. - [API Explorer control](https://buildwithfern.com/learn/api-definitions/openapi/extensions/api-explorer-control.md): Enable or disable the API Explorer using `x-fern-explorer` - [Global headers](https://buildwithfern.com/learn/api-definitions/openapi/extensions/global-headers.md): Configure headers used across all endpoints using `x-fern-global-headers` extension - [Global parameters](https://buildwithfern.com/learn/api-definitions/openapi/extensions/global-parameters.md): Declare parameters set once at the client level and injected into every relevant request using the `x-fern-global-parameters` extension - [Ignoring elements](https://buildwithfern.com/learn/api-definitions/openapi/extensions/ignoring-elements.md): Use x-fern-ignore to exclude endpoints, schemas, properties, or parameters from your OpenAPI spec. Control what Fern reads and processes. - [Customize SDK method names](https://buildwithfern.com/learn/api-definitions/openapi/extensions/method-names.md): Use `x-fern-sdk-method-name` and `x-fern-sdk-group-name` to finetune SDK naming. - [SDK namespaces](https://buildwithfern.com/learn/api-definitions/openapi/extensions/sdk-namespaces.md): Use `x-fern-sdk-namespace` to place individual schemas or shared error responses in a namespace - [SDK variables](https://buildwithfern.com/learn/api-definitions/openapi/extensions/sdk-variables.md): Use `x-fern-sdk-variables` to set common path parameters across all requests - [Tag display names](https://buildwithfern.com/learn/api-definitions/openapi/extensions/tag-display-names.md): Customize how tag names appear in your API Reference using the `x-displayName` extension - [Customize parameter names](https://buildwithfern.com/learn/api-definitions/openapi/extensions/parameter-names.md): Use `x-fern-parameter-name` to customize query parameter, header and path parameter naming. - [Property names](https://buildwithfern.com/learn/api-definitions/openapi/extensions/property-names.md): Customize variable names for object properties using the `x-fern-property-name` extension - [Idempotency](https://buildwithfern.com/learn/api-definitions/openapi/extensions/idempotency.md): Configure idempotency for safe request retries using x-fern-idempotency-headers and x-fern-idempotent extensions - [Pagination](https://buildwithfern.com/learn/api-definitions/openapi/extensions/pagination.md): Configure auto-pagination for list endpoints using the x-fern-pagination extension - [Retry behavior](https://buildwithfern.com/learn/api-definitions/openapi/extensions/retry-behavior.md): Control API retry logic with x-fern-retries extension. Configure endpoint-level retry behavior and disable retries for payment processing and order creation. - [Schema names](https://buildwithfern.com/learn/api-definitions/openapi/extensions/schema-names.md): Override auto-generated names for inline schemas using the `x-fern-type-name` extension - [Server names and URL templating](https://buildwithfern.com/learn/api-definitions/openapi/extensions/server-names-and-url-templating.md): Learn how to use x-fern-server-name, x-fern-default-url, x-fern-base-url-env, and URL template variables in your OpenAPI specification for better SDK generation. - [FastAPI Instrumentation](https://buildwithfern.com/learn/api-definitions/openapi/frameworks/fastapi.md): Learn about best practices for creating rich OpenAPI Specifications when instrumenting FastAPI applications. - [OpenAPI generators.yml reference](https://buildwithfern.com/learn/api-definitions/openapi/generators-yml-reference.md): Reference for configuring OpenAPI specifications in your generators.yml file