# Fern Documentation ## Docs - [Build with Fern](https://buildwithfern.com/learn/home.mdx): Build better developer experiences. Generate SDKs in TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift & Rust. Create interactive API docs with AI search. - [SDKs overview](https://buildwithfern.com/learn/sdks/overview/introduction.mdx): Build multi-language SDKs with Fern's generator platform. Support TypeScript, Python, Go, Java, .NET, PHP, Ruby, Swift, and Rust clients. - [How SDKs work](https://buildwithfern.com/learn/sdks/overview/how-it-works.mdx): Understand Fern's SDK generation process. Cloud-based workflow transforms API specifications into production-ready client libraries automatically. - [Quickstart](https://buildwithfern.com/learn/sdks/overview/quickstart.mdx): Learn how to generate SDKs with Fern. Install the CLI, initialize your project with OpenAPI or Fern Definition, and start building client libraries. - [Project structure](https://buildwithfern.com/learn/sdks/overview/project-structure.mdx): Learn how to structure your SDK project with Fern. Set up multi-repo architecture, configure generators.yml, and organize API definitions. - [Adding custom code](https://buildwithfern.com/learn/sdks/overview/custom-code.mdx): Extend Fern-generated SDKs with custom methods, logic, and dependencies. Use .fernignore to protect your code from being overwritten during regeneration. - [Capabilities](https://buildwithfern.com/learn/sdks/overview/capabilities.mdx): Fern SDK capabilities include type safety, auto-pagination, OAuth token refresh, retries with backoff, webhook verification, and more. - [Fern Autorelease](https://buildwithfern.com/learn/sdks/overview/autorelease.mdx): Automate SDK releases with Fern Autorelease. Detects API spec changes, regenerates SDKs, determines version bumps, and publishes to package registries. - [TypeScript quickstart](https://buildwithfern.com/learn/sdks/generators/typescript/quickstart.mdx): Create TypeScript client libraries with Fern SDK generator. Quick guide to configuring generators.yml and generating SDKs from OpenAPI or Fern definitions. - [TypeScript configuration](https://buildwithfern.com/learn/sdks/generators/typescript/configuration.mdx): Configure TypeScript SDK generation with Fern. Customize namespaces, enable serde layer, manage dependencies, and control file output. - [Publishing to npm](https://buildwithfern.com/learn/sdks/generators/typescript/publishing.mdx): Learn how to publish your Fern TypeScript SDK to npm using OIDC or token-based authentication. Complete guide with GitHub Actions setup. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/typescript/custom-code.mdx): Learn how to add custom logic, methods, and dependencies to your TypeScript SDK with Fern. Extend generated clients easily. - [Dynamic authentication](https://buildwithfern.com/learn/sdks/generators/typescript/dynamic-authentication.mdx): Implement dynamic authentication patterns like short-lived JWT signing in TypeScript SDKs using custom fetcher middleware. - [TypeScript serde layer](https://buildwithfern.com/learn/sdks/generators/typescript/serde-layer.mdx): Learn how to enable the TypeScript serde layer in Fern SDK generator to transform API field names to camelCase and validate requests at runtime. - [Python quickstart](https://buildwithfern.com/learn/sdks/generators/python/quickstart.mdx): Learn how to generate a Python SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and create client libraries. - [Python configuration](https://buildwithfern.com/learn/sdks/generators/python/configuration.mdx): Configuration options for the Fern Python SDK. - [Publishing to PyPI](https://buildwithfern.com/learn/sdks/generators/python/publishing.mdx): How to publish the Fern Python SDK to PyPI. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/python/custom-code.mdx): Learn how to add custom logic, methods, and dependencies to your Python SDK. Extend Fern-generated clients with custom code. - [Dynamic authentication](https://buildwithfern.com/learn/sdks/generators/python/dynamic-authentication.mdx): Implement dynamic authentication patterns like short-lived JWT signing in Python SDKs using method overrides. - [Go quickstart](https://buildwithfern.com/learn/sdks/generators/go/quickstart.mdx): Learn how to generate a Go SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and create Go client libraries. - [Go configuration](https://buildwithfern.com/learn/sdks/generators/go/configuration.mdx): Configuration options for the Fern Go SDK. - [Publishing as a Go module](https://buildwithfern.com/learn/sdks/generators/go/publishing.mdx): Learn how to publish your Fern-generated Go SDK to pkg.go.dev. Configure generators.yml and release versioned Go modules. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/go/custom-code.mdx): Learn how to add custom logic and methods to your Go SDK with Fern. Extend generated clients with helper functions and custom code. - [Java quickstart](https://buildwithfern.com/learn/sdks/generators/java/quickstart.mdx): Learn how to generate a Java SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and create client libraries. - [Java configuration](https://buildwithfern.com/learn/sdks/generators/java/configuration.mdx): Configure your Java SDK generator with custom client names, package prefixes, builder patterns, and Maven publishing options for Fern. - [Publishing to Maven Central](https://buildwithfern.com/learn/sdks/generators/java/publishing.mdx): Learn how to publish your Fern-generated Java SDK to Maven Central. Complete guide covering authentication, GPG signatures, and automated releases. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/java/custom-code.mdx): Augment your Java SDK with custom utilities - [.NET quickstart](https://buildwithfern.com/learn/sdks/generators/csharp/quickstart.mdx): Generate a C#/.NET SDK with Fern's SDK generator. Follow step-by-step instructions to configure, build, and publish your client library. - [.NET configuration](https://buildwithfern.com/learn/sdks/generators/csharp/configuration.mdx): Configure your C# .NET SDK generator with Fern. Customize client class names, namespaces, error handling, and pagination settings. - [Publishing to NuGet](https://buildwithfern.com/learn/sdks/generators/csharp/publishing.mdx): Learn how to publish your Fern-generated C#/.NET SDK to NuGet registry with step-by-step configuration, API key setup, and automated release workflows. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/csharp/custom-code.mdx): Add custom logic and methods to your .NET SDK with Fern. Extend BaseClient, create custom helpers, and use .fernignore effectively. - [.NET compatibility](https://buildwithfern.com/learn/sdks/generators/csharp/version-compatibility.mdx): Learn about supported .NET Framework versions (net462, net472, net48) and Unity compatibility for Fern-generated SDKs. - [PHP quickstart](https://buildwithfern.com/learn/sdks/generators/php/quickstart.mdx): Get started quickly with the Fern PHP SDK. - [PHP configuration](https://buildwithfern.com/learn/sdks/generators/php/configuration.mdx): Configure your PHP SDK generator with Fern. Customize client names, namespaces, package settings, and composer.json for PHP client libraries. - [Publishing to Packagist](https://buildwithfern.com/learn/sdks/generators/php/publishing.mdx): How to publish the Fern PHP SDK to Packagist. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/php/custom-code.mdx): Learn how to add custom logic, methods, and dependencies to your PHP SDK. Step-by-step guide to extending Fern-generated PHP clients. - [Ruby quickstart](https://buildwithfern.com/learn/sdks/generators/ruby/quickstart.mdx): Learn how to generate a Ruby SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and create Ruby client libraries. - [Ruby configuration](https://buildwithfern.com/learn/sdks/generators/ruby/configuration.mdx): Configuration options for the Fern Ruby SDK. - [Publishing to RubyGems](https://buildwithfern.com/learn/sdks/generators/ruby/publishing.mdx): Publish Ruby SDKs to RubyGems with Fern. Complete setup guide for package configuration, API key authentication, and versioned releases. - [Adding custom code](https://buildwithfern.com/learn/sdks/generators/ruby/custom-code.mdx): Augment your Ruby SDK with custom utilities - [Swift quickstart](https://buildwithfern.com/learn/sdks/generators/swift/quickstart.mdx): Learn how to generate a Swift SDK with Fern. Step-by-step guide to configure generators.yml and create client libraries for your API. - [Swift configuration](https://buildwithfern.com/learn/sdks/generators/swift/configuration.mdx): Configure Swift SDK generator settings including clientClassName, moduleName, environmentEnumName, and nullableAsOptional options. - [Publishing as a Swift package](https://buildwithfern.com/learn/sdks/generators/swift/publishing.mdx): How to publish the Fern Swift SDK as a Swift package - [Rust quickstart](https://buildwithfern.com/learn/sdks/generators/rust/quickstart.mdx): Get started with the Fern Rust SDK. - [Rust configuration](https://buildwithfern.com/learn/sdks/generators/rust/configuration.mdx): Configuration options for the Fern Rust SDK. - [Publishing to crates.io](https://buildwithfern.com/learn/sdks/generators/rust/publishing.mdx): How to publish the Fern Rust SDK to crates.io. - [Postman quickstart](https://buildwithfern.com/learn/sdks/generators/postman/quickstart.mdx): Fern's Postman collection generator is no longer actively maintained. - [Publishing to Postman](https://buildwithfern.com/learn/sdks/generators/postman/publishing.mdx): Fern's Postman collection generator is no longer actively maintained. - [SDK user features](https://buildwithfern.com/learn/sdks/deep-dives/sdk-user-features.mdx): Learn about SDK user features in Fern-generated client libraries including installation, error handling, webhook verification, and customization options. - [Customize README](https://buildwithfern.com/learn/sdks/deep-dives/readme.mdx): Customize your SDK README with Fern's generators.yml configuration. Add custom sections, control example styles, and organize endpoints by feature. - [Customize method names](https://buildwithfern.com/learn/sdks/deep-dives/customize-method-names.mdx): Learn how to customize SDK method names in Fern to create intuitive, user-friendly code. Configure group names and method structures for better API client design. - [Filter your endpoints (audiences)](https://buildwithfern.com/learn/sdks/deep-dives/audiences.mdx): Learn how to filter API endpoints using audiences in Fern SDKs. Generate tailored client libraries for internal teams, beta testers, and customers. - [Server URL templating](https://buildwithfern.com/learn/sdks/deep-dives/server-url-templating.mdx): Configure server URL templating in Fern SDKs to support dynamic base URLs with variables like region and environment. - [Webhook signature verification](https://buildwithfern.com/learn/sdks/deep-dives/webhook-signature-verification.mdx): Configure webhook signature verification in your Fern-generated SDKs to validate HMAC or asymmetric signatures, protect against replay attacks, and ensure webhook authenticity. - [Configure global headers](https://buildwithfern.com/learn/sdks/deep-dives/global-headers.mdx): Learn how to configure global headers in Fern SDKs. Set up API headers once as constructor parameters for automatic inclusion in all requests. - [Dynamic authentication](https://buildwithfern.com/learn/sdks/deep-dives/dynamic-authentication.mdx): Implement dynamic auth in Fern SDKs with JWT signing, OAuth token refresh, and rotating API keys. Language-specific guides for TypeScript and Python. - [Configure auto pagination](https://buildwithfern.com/learn/sdks/deep-dives/auto-pagination.mdx): Paginate through API responses easily with offset, cursor, and link-based pagination. - [Configure idempotency headers](https://buildwithfern.com/learn/sdks/deep-dives/idempotency.mdx): SDKs that safely support retrying requests - [Retries with backoff](https://buildwithfern.com/learn/sdks/deep-dives/retries-with-backoff.mdx): Learn how to configure automatic retries with exponential backoff in Fern SDKs. Control retry limits and customize retryable status codes. - [Set up local SDK previews](https://buildwithfern.com/learn/sdks/deep-dives/local-previews.mdx): Learn how to set up local SDK previews with Fern's --preview flag. Test generated SDK code locally before publishing to iterate quickly. - [Testing](https://buildwithfern.com/learn/sdks/deep-dives/testing.mdx): Fern automatically generates unit tests and mock server tests for SDKs to ensure quality before release - [Self-hosted SDKs](https://buildwithfern.com/learn/sdks/deep-dives/self-hosted.mdx): Fern supports self-hosting SDK generation so that you can run SDK generation on your own infrastructure. - [generators.yml configuration schema](https://buildwithfern.com/learn/sdks/reference/generators-yml.mdx): Complete generators.yml configuration reference for Fern SDK generation. Configure authentication, publishing, GitHub integration, and language-specific settings. - [Fern Docs](https://buildwithfern.com/learn/docs/getting-started/overview.mdx): Build beautiful, interactive documentation websites with Fern Docs. Create API references, custom components, and AI-powered features in under 5 minutes. - [How Fern Docs work](https://buildwithfern.com/learn/docs/getting-started/how-it-works.mdx): Learn how Fern transforms your API specifications and documentation into a unified developer experience - [Docs quickstart](https://buildwithfern.com/learn/docs/getting-started/quickstart.mdx): Learn how to build beautiful developer documentation with Fern in under 5 minutes. Install CLI, add Markdown content, generate API references, and publish. - [Project structure](https://buildwithfern.com/learn/docs/getting-started/project-structure.mdx): An overview of the file and folder structure of a Fern Docs project - [Customize site-level settings using docs.yml](https://buildwithfern.com/learn/docs/configuration/site-level-settings.mdx): Learn how to configure your Fern documentation site with the docs.yml file. Customize colors, typography, layout, analytics and more. - [Configure your site navigation](https://buildwithfern.com/learn/docs/configuration/navigation.mdx): Set up the navigation for your documentation site built with Fern Docs using the docs.yml file, including tabs, sections, pages, and more. - [Tabs and tab variants](https://buildwithfern.com/learn/docs/configuration/tabs.mdx): Learn how to configure tabs and tab variants in Fern documentation. Group content sections with custom icons and display multiple perspectives. - [Versioning](https://buildwithfern.com/learn/docs/configuration/versions.mdx): Learn how to add versioning to your Fern documentation. Configure multiple doc versions, customize version selectors, and manage version-specific content. - [Product switching](https://buildwithfern.com/learn/docs/configuration/products.mdx): Learn how to configure product switching in Fern Docs. Set up multiple products with custom navigation and versioning. - [Keep a changelog](https://buildwithfern.com/learn/docs/configuration/changelogs.mdx): Record the notable changes to your project - [Customize content using frontmatter](https://buildwithfern.com/learn/docs/configuration/page-level-settings.mdx): Use frontmatter to set a variety of page properties and metadata. - [Markdown basics](https://buildwithfern.com/learn/docs/writing-content/markdown-basics.mdx): Use Markdown and MDX to add content to your Fern documentation site, including headers, components, links, and API endpoint links. - [Rich media in Markdown](https://buildwithfern.com/learn/docs/writing-content/markdown-media.mdx): Embed images, videos, PDFs, LaTeX equations, and diagrams in your Fern documentation. - [Components overview](https://buildwithfern.com/learn/docs/writing-content/components/overview.mdx): Complete guide to Fern documentation components. Build better docs with accordions, callouts, tables, tabs, and interactive API features. - [Accordion](https://buildwithfern.com/learn/docs/writing-content/components/accordions.mdx): Add expandable Accordion sections to your Fern documentation. Perfect for FAQs, settings panels, and progressive content disclosure. - [Anchor](https://buildwithfern.com/learn/docs/writing-content/components/anchor.mdx): Create linkable anchors for paragraphs, tables, and other content without headings - [Aside](https://buildwithfern.com/learn/docs/writing-content/components/aside.mdx): Use Fern's Aside component to add floating, sticky content to your documentation pages. Ideal for showcasing code examples and API endpoint snippets. - [Badge](https://buildwithfern.com/learn/docs/writing-content/components/badges.mdx): Display small labels for status, versions, and metadata inline with your content. - [Button](https://buildwithfern.com/learn/docs/writing-content/components/button.mdx): Learn how to use the Button component in Fern docs. Create interactive buttons with custom styles, sizes, intents, and icons. - [Callout](https://buildwithfern.com/learn/docs/writing-content/components/callouts.mdx): Learn how to use the Callout component to add warnings, tips, notes, and alerts to your documentation with custom icons and intents. - [Card](https://buildwithfern.com/learn/docs/writing-content/components/cards.mdx): Use cards to display content in a box - [Code block](https://buildwithfern.com/learn/docs/writing-content/components/code-blocks.mdx): Learn how to enhance your documentation with customizable code blocks featuring syntax highlighting, line highlighting, focusing, and more. - [Copy](https://buildwithfern.com/learn/docs/writing-content/components/copy.mdx): Make text copyable with a click-to-copy button. - [Download](https://buildwithfern.com/learn/docs/writing-content/components/download.mdx): The Download component enables users to download PDFs and files from your documentation. Simple setup with custom filenames. - [Endpoint request snippet](https://buildwithfern.com/learn/docs/writing-content/components/request-snippet.mdx): Learn how to use EndpointRequestSnippet components in Fern to reference API endpoint requests in your documentation with code examples. - [Endpoint response snippet](https://buildwithfern.com/learn/docs/writing-content/components/response-snippet.mdx): Reference an endpoint response from your API Reference - [Endpoint schema snippet](https://buildwithfern.com/learn/docs/writing-content/components/endpoint-schema-snippet.mdx): Reference an endpoint schema from your API Reference - [Webhook payload snippet](https://buildwithfern.com/learn/docs/writing-content/components/webhook-payload-snippet.mdx): Reference a webhook payload from your API Reference to display example payloads in your documentation. - [Files](https://buildwithfern.com/learn/docs/writing-content/components/files.mdx): Display interactive file tree structures with expandable folders - [Frame](https://buildwithfern.com/learn/docs/writing-content/components/frames.mdx): Use Fern's Frame component to display images with captions in your docs. Includes subtle background variants and properties. - [Icon](https://buildwithfern.com/learn/docs/writing-content/components/icons.mdx): Learn how to add Font Awesome icons to your Fern documentation. Customize icon sizes, colors, and styles with the Icon component. - [If](https://buildwithfern.com/learn/docs/writing-content/components/if.mdx): Show or hide content based on which instance, product, or version the reader is viewing, or their role if your docs use authentication. - [Indent](https://buildwithfern.com/learn/docs/writing-content/components/indent.mdx): Learn how to use the Indent component in Fern to add left indentation for nested parameters and hierarchical content. - [Parameter field](https://buildwithfern.com/learn/docs/writing-content/components/parameter-fields.mdx): Learn how to document API parameters with Fern's ParamField component. Format types, requirements, defaults, and descriptions consistently. - [Runnable endpoint](https://buildwithfern.com/learn/docs/writing-content/components/runnable-endpoint.mdx): Add testable API endpoints to your docs with RunnableEndpoint. Support multiple environments, examples, and real-time response previews. - [Schema](https://buildwithfern.com/learn/docs/writing-content/components/schema.mdx): Display any type definition from your API Reference - [Step](https://buildwithfern.com/learn/docs/writing-content/components/steps.mdx): Learn how to use the Steps component in Fern Docs to create sequential tutorials and walkthroughs with automatic numbering. - [Table](https://buildwithfern.com/learn/docs/writing-content/components/tables.mdx): Display data in rows and columns using markdown tables with optional sticky headers. - [Tab](https://buildwithfern.com/learn/docs/writing-content/components/tabs.mdx): The Tabs component allows you to display related content in a tabbed view with support for language synchronization. - [Tooltip](https://buildwithfern.com/learn/docs/writing-content/components/tooltips.mdx): Learn how to add interactive tooltips to your documentation. Display contextual information on hover for text and code elements. - [Versions](https://buildwithfern.com/learn/docs/writing-content/components/versions.mdx): The Versions component displays content that changes based on version selection, with a dropdown to switch between versions. - [Fern Editor](https://buildwithfern.com/learn/docs/writing-content/fern-editor.mdx): Update your documentation without learning Git or markdown. Fern Editor offers visual editing for non-technical teams with full GitHub integration. - [Reusable snippets](https://buildwithfern.com/learn/docs/writing-content/reusable-snippets.mdx): Single source your documentation with reusable, custom markdown snippets to keep content in sync. Edit once, update everywhere. - [AI features](https://buildwithfern.com/learn/docs/ai-features/overview.mdx): Fern AI features help users find answers instantly, automate content updates, and optimize documentation for AI tools with llms.txt support. - [Fern Writer](https://buildwithfern.com/learn/docs/ai-features/fern-writer.mdx): A Slack-based technical writing agent that updates your documentation via GitHub pull requests - [AI-generated examples](https://buildwithfern.com/learn/docs/ai-features/ai-examples.mdx): Automatically create realistic API examples with Fern's AI feature. Customize example styles or disable AI generation as needed. - [llms.txt and llms-full.txt](https://buildwithfern.com/learn/docs/ai-features/llms-txt.mdx): Fern automatically creates llms.txt files for AI developer tools. Filter by language, control visibility, and track analytics for LLM traffic. - [Overview](https://buildwithfern.com/learn/docs/ai-features/ask-fern/overview.mdx): Ask Fern is an AI search feature that indexes your documentation and helps users find answers instantly. Reduce support burden and accelerate onboarding. - [Ask Fern Slack app](https://buildwithfern.com/learn/docs/ai-features/ask-fern/slack-app.mdx): Enable your customers to get instant answers to product questions directly in Slack using Ask Fern's AI-powered documentation bot. - [Ask Fern Discord bot](https://buildwithfern.com/learn/docs/ai-features/ask-fern/discord-bot.mdx): Enable your customers to get instant answers to product questions directly in Discord using Ask Fern's AI-powered documentation bot. - [Guidance](https://buildwithfern.com/learn/docs/ai-features/ask-fern/guidance.mdx): Configure custom guidance to override Ask Fern AI responses for specific queries. Control sensitive content like billing and legal terms. - [Additional content sources](https://buildwithfern.com/learn/docs/ai-features/ask-fern/content-sources.mdx): Extend Ask Fern's knowledge with content from FAQs, support tickets, blogs, and other sources. - [Introduction](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/overview.mdx): Welcome to the Fern API Reference. - [Preview changes](https://buildwithfern.com/learn/docs/preview-publish/preview-changes.mdx): Learn how to preview documentation changes with Fern using local development servers and shareable preview links before publishing. - [Publishing your docs](https://buildwithfern.com/learn/docs/preview-publish/publishing-your-docs.mdx): Publish your Fern docs to production and staging sites with automated workflows. Set up custom domains and manage deployments easily. - [Bring your custom domain](https://buildwithfern.com/learn/docs/preview-publish/setting-up-your-domain.mdx): Learn how to set up your Fern-generated documentation site to use a custom subdomain or subpath. - [Add an announcement banner to your docs](https://buildwithfern.com/learn/docs/customization/announcement-banner.mdx): Prominently highlight new features, updates, or important information - [Embedded mode](https://buildwithfern.com/learn/docs/customization/embedded-mode.mdx): Hide the header and footer when embedding docs in iframes or dashboards - [Hiding content in your site](https://buildwithfern.com/learn/docs/customization/hiding-content.mdx) - [Search configuration](https://buildwithfern.com/learn/docs/customization/search.mdx): Configure search for your Fern docs using Algolia DocSearch. Filter by versions, endpoints, guides, and changelogs for better user experience. - [Collecting feedback and suggestions from users](https://buildwithfern.com/learn/docs/user-feedback.mdx) - [Fully customize your docs](https://buildwithfern.com/learn/docs/customization/custom-css-js.mdx): Learn how to add custom CSS, JavaScript, and UI components to your Fern documentation. Style your docs with custom classes and scripts. - [CSS selectors reference](https://buildwithfern.com/learn/docs/customization/css-selectors-reference.mdx): Reference guide for all CSS selectors available in Fern docs. Customize layouts, navigation, buttons, forms, accordions, badges, API components, and more. - [Custom React components](https://buildwithfern.com/learn/docs/customization/custom-react-components.mdx): Add custom React components to your Fern docs for interactive, server-rendered elements. Improve SEO, performance, and user experience with reusable components. - [Header and footer](https://buildwithfern.com/learn/docs/customization/header-and-footer.mdx): Replace Fern's default header or footer with your own server-rendered React components for better SEO and performance. - [Overview](https://buildwithfern.com/learn/docs/accessibility/overview.mdx): Discover the accessibility features in Fern documentation, including keyboard navigation, Web Content Accessibility Guidelines (WCAG) 2.1 AA color contrast enforcement, and screen reader support. - [Keyboard shortcuts](https://buildwithfern.com/learn/docs/accessibility/keyboard-shortcuts.mdx): Learn about keyboard shortcuts in Fern documentation, including navigation shortcuts, search commands, Ask AI panel controls, and API playground shortcuts. - [Generate REST API Reference](https://buildwithfern.com/learn/docs/api-references/generate-api-ref.mdx): Use Fern Docs to generate REST API Reference documentation from an OpenAPI spec or Fern Definition. - [Generate Webhook Reference](https://buildwithfern.com/learn/docs/api-references/generate-webhook-ref.mdx): Use Fern Docs to generate your Webhook Reference documentation from an OpenAPI spec or Fern Definition. - [Generate WebSocket Reference](https://buildwithfern.com/learn/docs/api-references/generate-websocket-ref.mdx): Use Fern Docs to generate WebSocket Reference documentation from an AsyncAPI spec or Fern Definition. - [Generate OpenRPC Reference](https://buildwithfern.com/learn/docs/api-references/generate-openrpc-ref.mdx): Use Fern Docs to generate OpenRPC Reference documentation from an OpenRPC specification. - [Generate gRPC API Reference](https://buildwithfern.com/learn/docs/api-references/generate-grpc-ref.mdx): Use Fern Docs to generate gRPC API Reference documentation from Protocol Buffer (.proto) files. - [Generate GraphQL Reference](https://buildwithfern.com/learn/docs/api-references/generate-graphql-ref.mdx): Use Fern Docs to generate GraphQL API Reference documentation from a GraphQL schema. - [Customize API Reference layout](https://buildwithfern.com/learn/docs/api-references/customize-api-reference-layout.mdx): Customize your API Reference layout with Fern. Configure options, order sections and endpoints, flatten navigation, hide endpoints, display errors, and add custom content. - [Audiences](https://buildwithfern.com/learn/docs/api-references/audiences.mdx): Use audiences to filter the endpoints, schemas, and properties that are displayed in your API Reference. - [Write Markdown content in your API Reference](https://buildwithfern.com/learn/docs/api-references/write-markdown-in-api-reference.mdx): Write rich Markdown content in API documentation. Add descriptions to endpoints, create summary pages, and customize your API Reference layout. - [Display SDK snippets](https://buildwithfern.com/learn/docs/api-references/sdk-snippets.mdx): Enable SDK code examples in TypeScript, Python, Go, and more from the request and response examples documented in your API definition. Once enabled, Fern Docs will automatically populate the snippets within your API Reference. - [Display HTTP snippets](https://buildwithfern.com/learn/docs/api-references/http-snippets.mdx): Enable HTTP code examples using cURL, Python requests, TypeScript fetch, and more from the request examples documented in your API definition. - [API Explorer](https://buildwithfern.com/learn/docs/api-references/api-explorer.mdx): Reduce "time to 200" by allowing users to make real calls to your API from right within the API Reference. - [Overview of SEO & GEO](https://buildwithfern.com/learn/docs/seo/overview.mdx): Understand Fern's built-in features for search engine optimization (SEO) and generative engine optimization (GEO) to maximize the reach and discoverability of your documentation. - [Configure SEO metadata](https://buildwithfern.com/learn/docs/seo/setting-seo-metadata.mdx): Configure SEO metadata in Fern docs with page-level frontmatter and site-wide settings. Control titles, descriptions, and social media previews. - [Customizing slugs within your site](https://buildwithfern.com/learn/docs/seo/configuring-slugs.mdx): Customize URL paths in your Fern documentation site. Rename slugs for pages, sections, tabs, landing pages, and subheadings, or skip them entirely. - [Configure redirects](https://buildwithfern.com/learn/docs/seo/redirects.mdx): Learn how to configure redirects in Fern Docs. Set up exact path redirects and regex patterns to preserve SEO equity when pages move. - [Overview of authentication options](https://buildwithfern.com/learn/docs/authentication/overview.mdx): Understand the different authentication options Fern offers - [Password protection](https://buildwithfern.com/learn/docs/authentication/setup/password-protection.mdx): Protect your documentation site with a shared password for simple access control. - [Single Sign-On](https://buildwithfern.com/learn/docs/authentication/setup/sso.mdx): Secure access to your documentation using corporate credentials - [Set up JWT](https://buildwithfern.com/learn/docs/authentication/setup/jwt.mdx): Self-managed authentication integrated with your login system - [Set up OAuth](https://buildwithfern.com/learn/docs/authentication/setup/oauth.mdx): Fern-managed authentication integrated with your login system - [Role-based access control](https://buildwithfern.com/learn/docs/authentication/features/rbac.mdx): Learn how to restrict access to your documentation using role-based access control (RBAC) - [API key injection](https://buildwithfern.com/learn/docs/authentication/features/api-key-injection.mdx): Automatically populate API keys in the API Explorer for logged-in users. - [Security](https://buildwithfern.com/learn/docs/security/overview.mdx): Learn how Fern's documentation platform secures your API docs with client-side authentication, API key injection, and self-hosted options. - [Self-hosted documentation](https://buildwithfern.com/learn/docs/self-hosted/overview.mdx): Fern supports self-hosting so that you can run your docs site on your own infrastructure. - [Set up self-hosted documentation](https://buildwithfern.com/learn/docs/self-hosted/set-up.mdx): Learn how to set up self-hosted documentation on your own infrastructure. - [Authentication](https://buildwithfern.com/learn/docs/self-hosted/authentication.mdx): Protect your self-hosted documentation with password or token-based authentication. - [Previews](https://buildwithfern.com/learn/docs/self-hosted/previews.mdx): Set up preview environments for your self-hosted documentation using containers or static exports. - [Health check endpoints](https://buildwithfern.com/learn/docs/self-hosted/health-check-endpoints.mdx): Monitor your self-hosted container's health with built-in liveness and readiness probes. - [Analytics and integrations](https://buildwithfern.com/learn/docs/integrations/overview.mdx): Connect analytics and support tools to your Fern documentation. Set up PostHog, Segment, FullStory, Intercom, and Postman collections. - [Intercom](https://buildwithfern.com/learn/docs/integrations/support/intercom.mdx): Learn how to integrate Intercom with Fern Docs! - [Google Analytics](https://buildwithfern.com/learn/docs/integrations/analytics/google.mdx): Integrate Google Analytics 4 and Google Tag Manager with Fern Docs. Complete setup instructions for tracking website traffic and insights. - [PostHog](https://buildwithfern.com/learn/docs/integrations/analytics/posthog.mdx): Learn how to add PostHog analytics to your Fern documentation. Configure your PostHog API key and custom endpoint. - [Fullstory](https://buildwithfern.com/learn/docs/integrations/analytics/fullstory.mdx): Integrate Fullstory with Fern docs to capture user sessions and interactions. Step-by-step instructions for adding your Org ID. - [Segment](https://buildwithfern.com/learn/docs/integrations/analytics/segment.mdx): Learn how to add Segment analytics to your Fern documentation. Step-by-step guide to configure your Segment writeKey. - [Mixpanel](https://buildwithfern.com/learn/docs/integrations/analytics/mixpanel.mdx): Learn how to integrate Fern Docs with Mixpanel to track user behavior and analytics. - [Postman integration](https://buildwithfern.com/learn/docs/integrations/postman.mdx): Generate Postman collections from API definitions with Fern. Create example requests and responses for testing and exploring APIs. - [Orchestrate releases](https://buildwithfern.com/learn/docs/developer-tools/orchestrate-git-hub-releases.mdx): Automate docs releases based on GitHub repository releases. Set up workflows to trigger auto-merge PRs when features ship. - [Auto-update last updated dates](https://buildwithfern.com/learn/docs/developer-tools/auto-update-last-updated-dates.mdx): Use a GitHub Action to automatically update the last-updated frontmatter property when MDX files change. - [Cursor](https://buildwithfern.com/learn/docs/developer-tools/cursor.mdx) - [Hosting with GitLab](https://buildwithfern.com/learn/docs/developer-tools/git-lab.mdx) - [Using Vale](https://buildwithfern.com/learn/docs/developer-tools/vale.mdx): Learn how to set up Vale to lint your Fern documentation and maintain consistent writing style across your docs. - [View Markdown](https://buildwithfern.com/learn/docs/developer-tools/view-markdown.mdx): Learn how to view the Markdown underlying a documentation page, to help with tool integration and troubleshooting. - [Download OpenAPI spec](https://buildwithfern.com/learn/docs/developer-tools/openapi-spec.mdx): Fern serves your OpenAPI 3.1 spec from your docs site so AI tools and LLMs can discover and interact with your API programmatically. - [Dashboard overview](https://buildwithfern.com/learn/dashboard/getting-started/overview.mdx): Manage your Fern projects, settings, and team from a central dashboard. - [Member permissions](https://buildwithfern.com/learn/dashboard/configuration/permissions.mdx): Manage Dashboard and CLI access for your organization. - [Connect a GitHub repository](https://buildwithfern.com/learn/dashboard/configuration/github-repo.mdx): Link your GitHub repository to your Fern project for automated deployments. - [Set up Single Sign-On (SSO)](https://buildwithfern.com/learn/dashboard/configuration/sso.mdx): Let teammates sign in to Fern with your IdP (SAML or OIDC) - [Password protection](https://buildwithfern.com/learn/dashboard/configuration/password-protection.mdx): Manage password protection for your documentation site from the Fern Dashboard. - [Set up a custom domain](https://buildwithfern.com/learn/dashboard/configuration/custom-domains.mdx): Use the Fern Dashboard to configure your custom domain with DNS records for subdomain, subpath, or root domain hosting. - [PDF export](https://buildwithfern.com/learn/dashboard/configuration/pdf-export.mdx): Export your documentation site as a PDF from the Fern Dashboard. - [Overview](https://buildwithfern.com/learn/cli-api-reference/cli-reference/overview.mdx): Learn how to use the Fern CLI to manage API projects, validate definitions, preview changes, and publish docs and SDKs. - [Global options](https://buildwithfern.com/learn/cli-api-reference/cli-reference/options.mdx): Global options for the Fern CLI - [Commands](https://buildwithfern.com/learn/cli-api-reference/cli-reference/commands.mdx): Complete reference for all Fern CLI commands for generating SDKs and developer documentation. - [What is an API definition?](https://buildwithfern.com/learn/api-definitions/overview/what-is-an-api-definition.mdx): Describes the contract between the API provider and API consumer - [Project structure](https://buildwithfern.com/learn/api-definitions/overview/project-structure.mdx): Describes the Fern folder structure - [What is an OpenAPI specification?](https://buildwithfern.com/learn/api-definitions/openapi/overview.mdx): OpenAPI is a standard for documenting REST APIs - [Overlays](https://buildwithfern.com/learn/api-definitions/openapi/overlays.mdx): Use the OpenAPI Overlay Specification to customize your OpenAPI definition without modifying the original spec. - [Overrides](https://buildwithfern.com/learn/api-definitions/openapi/overrides.mdx): Customize your API definition using a separate overrides file. - [Authentication](https://buildwithfern.com/learn/api-definitions/openapi/authentication.mdx): Model auth schemes such as bearer, basic, api key, and OAuth. - [Servers](https://buildwithfern.com/learn/api-definitions/openapi/servers.mdx): 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.mdx): Pull your latest OpenAPI Specification into your Fern Folder automatically. - [HTTP JSON Endpoints](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/http.mdx): Document HTTP JSON APIs with the `application/json` content type - [Webhooks](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/webhooks.mdx): 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.mdx): Document endpoints with the `multipart/form-data` content type - [Server-sent events and streaming APIs](https://buildwithfern.com/learn/api-definitions/openapi/endpoints/sse.mdx): 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.mdx): Configure API version schemes and headers using `x-fern-version` extension - [Use audiences to filter your API](https://buildwithfern.com/learn/api-definitions/openapi/extensions/audiences.mdx): 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.mdx): 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.mdx): Configure base paths in OpenAPI with `x-fern-base-path`. Set up endpoint prefixes like /v1 for your API definitions with Fern. - [Enum descriptions and names](https://buildwithfern.com/learn/api-definitions/openapi/extensions/enum-descriptions-and-names.mdx): Add descriptions to OpenAPI enum values with `x-fern-enum` extension. Customize enum names for cleaner SDK code and better documentation. - [Request + response examples](https://buildwithfern.com/learn/api-definitions/openapi/extensions/request-response-examples.mdx): 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.mdx): Enable or disable the API Explorer using `x-fern-explorer` - [Global headers](https://buildwithfern.com/learn/api-definitions/openapi/extensions/global-headers.mdx): Configure headers used across all endpoints using `x-fern-global-headers` extension - [Ignoring elements](https://buildwithfern.com/learn/api-definitions/openapi/extensions/ignoring-elements.mdx): 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.mdx): Use `x-fern-sdk-method-name` and `x-fern-sdk-group-name` to finetune SDK naming. - [SDK variables](https://buildwithfern.com/learn/api-definitions/openapi/extensions/sdk-variables.mdx): 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.mdx): 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.mdx): 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.mdx): Customize variable names for object properties using the `x-fern-property-name` extension - [Idempotency](https://buildwithfern.com/learn/api-definitions/openapi/extensions/idempotency.mdx): 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.mdx): Configure auto-pagination for list endpoints using the x-fern-pagination extension - [Retry behavior](https://buildwithfern.com/learn/api-definitions/openapi/extensions/retry-behavior.mdx): 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.mdx): 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.mdx): Learn how to use x-fern-server-name, x-fern-default-url, and URL template variables in your OpenAPI specification for better SDK generation. - [FastAPI Instrumentation](https://buildwithfern.com/learn/api-definitions/openapi/frameworks/fastapi.mdx): 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.mdx): Reference for configuring OpenAPI specifications in your generators.yml file - [What is an AsyncAPI specification?](https://buildwithfern.com/learn/api-definitions/asyncapi/overview.mdx): AsyncAPI is a standard for documenting event-driven APIs - [Overrides](https://buildwithfern.com/learn/api-definitions/openapi/overrides.mdx): Customize your API definition using a separate overrides file. - [Authentication](https://buildwithfern.com/learn/api-definitions/asyncapi/authentication.mdx): Model auth schemes such as bearer, basic, and api key for your event-driven APIs. - [Servers](https://buildwithfern.com/learn/api-definitions/asyncapi/servers.mdx): Configure server URLs and protocols to help users connect to your event-driven API. - [Sync your AsyncAPI specification](https://buildwithfern.com/learn/api-definitions/asyncapi/sync-your-async-api-specification.mdx): Automatically sync your AsyncAPI spec changes to keep SDKs and docs up to date - [Publish/Subscribe Operations](https://buildwithfern.com/learn/api-definitions/asyncapi/channels/pubsub.mdx): Define AsyncAPI publish/subscribe operations for event-driven APIs. Step-by-step tutorial with message examples and bi-directional channels. - [Message Formats](https://buildwithfern.com/learn/api-definitions/asyncapi/channels/messages.mdx): Define message schemas, content types, and structure for event-driven communication - [Message Bindings](https://buildwithfern.com/learn/api-definitions/asyncapi/channels/bindings.mdx): Configure protocol-specific settings for WebSocket, MQTT, Kafka, and other protocols - [Extensions overview](https://buildwithfern.com/learn/api-definitions/asyncapi/extensions/overview.md): Learn about Fern's AsyncAPI extensions for generating higher-quality SDKs - [Use audiences to filter your API](https://buildwithfern.com/learn/api-definitions/asyncapi/extensions/audiences.mdx): Use `x-fern-audiences` to filter to relevant operations, channels and message schemas - [Availability](https://buildwithfern.com/learn/api-definitions/asyncapi/extensions/availability.mdx): Mark features as available in specific SDK versions using `x-fern-availability` extension - [Request + response examples](https://buildwithfern.com/learn/api-definitions/asyncapi/extensions/request-response-examples.mdx): Add message examples to AsyncAPI specs with `x-fern-examples`. Improve SDK documentation with real-world payload examples. - [Ignoring operations, channels, or schemas](https://buildwithfern.com/learn/api-definitions/asyncapi/extensions/ignoring-elements.mdx): Learn how to use x-fern-ignore to exclude specific operations, channels, or schemas from AsyncAPI SDK generation. - [Server names](https://buildwithfern.com/learn/api-definitions/asyncapi/extensions/server-names.mdx): Configure custom server names in AsyncAPI specifications with `x-fern-server-name` extension. Set up production and staging server labels. - [What is an OpenRPC specification?](https://buildwithfern.com/learn/api-definitions/openrpc/overview.mdx): Learn how to use OpenRPC specifications with Fern to document JSON-RPC APIs. Set up your fern folder and configure OpenRPC v1.3.2 or v1.2.6. - [Overrides](https://buildwithfern.com/learn/api-definitions/openapi/overrides.mdx): Customize your API definition using a separate overrides file. - [Authentication](https://buildwithfern.com/learn/api-definitions/openrpc/authentication.mdx): Model auth schemes for JSON-RPC APIs including bearer, basic, and api key authentication - [Servers](https://buildwithfern.com/learn/api-definitions/openrpc/servers.mdx): Configure server URLs and transports for your JSON-RPC API - [Sync your OpenRPC specification](https://buildwithfern.com/learn/api-definitions/openrpc/sync-your-open-rpc-specification.mdx): Automate OpenRPC spec syncing to keep SDKs and documentation current. Set up GitHub Actions, webhooks, and CI/CD integrations with Fern. - [JSON-RPC Methods](https://buildwithfern.com/learn/api-definitions/openrpc/methods/rpc-methods.mdx): Document JSON-RPC methods with parameters, results, and error handling - [Extensions overview](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/overview.md): OpenRPC extensions guide for Fern. Use x-fern-ignore, x-fern-examples, x-fern-availability, and more to improve SDK generation. - [Use audiences to filter your API](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/audiences.mdx): Use `x-fern-audiences` to filter to relevant methods, parameters and schemas - [Availability](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/availability.mdx): Mark features as available in specific SDK versions using `x-fern-availability` extension - [Request + response examples](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/request-response-examples.mdx): Add multiple request and response examples to OpenRPC methods with x-fern-examples. Improve your SDK docs with real-world use cases. - [Ignoring methods or schemas](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/ignoring-elements.mdx): Skip reading specific OpenRPC elements using `x-fern-ignore` extension - [SDK Method Names](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/method-names.mdx): Control SDK method names in OpenRPC specifications. Use `x-fern-sdk-method-name` to define intuitive, language-specific method names for your JSON-RPC API. - [SDK group names](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/sdk-group-names.mdx): Learn how to use x-fern-sdk-group-name in OpenRPC to organize related methods into logical groups for cleaner, more intuitive SDK code. - [Server names](https://buildwithfern.com/learn/api-definitions/openrpc/extensions/server-names.mdx): Specify custom names for servers using `x-fern-server-name` extension - [What is gRPC?](https://buildwithfern.com/learn/api-definitions/grpc/overview.mdx): gRPC is a high-performance RPC framework that uses Protocol Buffers - [Overrides](https://buildwithfern.com/learn/api-definitions/openapi/overrides.mdx): Customize your API definition using a separate overrides file. - [Authentication](https://buildwithfern.com/learn/api-definitions/grpc/authentication.mdx): Configure authentication for gRPC services including TLS, JWT, and custom auth - [Servers](https://buildwithfern.com/learn/api-definitions/grpc/servers.mdx): Configure gRPC servers with TLS, load balancing, and deployment options - [Sync your gRPC specification](https://buildwithfern.com/learn/api-definitions/grpc/sync-your-g-rpc-specification.mdx): Automate gRPC specification syncing with Fern. Set up GitHub Actions, CI/CD pipelines, and scheduled updates for Protocol Buffer files. - [gRPC Services](https://buildwithfern.com/learn/api-definitions/grpc/services/grpc-services.mdx): Define gRPC services with RPCs, messages, and Protocol Buffer schemas - [Streaming](https://buildwithfern.com/learn/api-definitions/grpc/services/streaming.mdx): Learn how to implement server streaming, client streaming, and bidirectional streaming in gRPC for real-time communication and efficient data transfers. - [Error handling](https://buildwithfern.com/learn/api-definitions/grpc/services/errors.mdx): Implement robust error handling with gRPC status codes and custom error details - [gRPC generators.yml reference](https://buildwithfern.com/learn/api-definitions/grpc/generators-yml-reference.mdx): Complete gRPC generators.yml reference guide for Fern. Learn how to configure root, target, overrides, and local-generation settings. - [What is a Fern Definition?](https://buildwithfern.com/learn/api-definitions/ferndef/overview.mdx): Fern Definition is a YAML format for API specifications. Define your REST API endpoints, data models, and errors in one source of truth. - [Authentication](https://buildwithfern.com/learn/api-definitions/ferndef/authentication.mdx): Configure API authentication in Fern Definition. Set up bearer tokens, basic auth, custom headers, and OAuth for your API endpoints. - [Types in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/types.mdx): Types describe the data model of your API. Fern has many built-in types and supports custom types, as well as extending and aliasing objects, and unions. - [Endpoints in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/endpoints/overview.mdx): Organize related API endpoints into a service in Fern Definition and define each endpoint's URL, HTTP method, request, response, errors, and more. - [HTTP JSON Endpoints](https://buildwithfern.com/learn/api-definitions/ferndef/endpoints/http.mdx) - [Multipart file upload](https://buildwithfern.com/learn/api-definitions/ferndef/endpoints/multipart.mdx): Document endpoints with the `multiform` content type. - [Binary data and files](https://buildwithfern.com/learn/api-definitions/ferndef/endpoints/bytes.mdx): Use the `bytes` type to handle binary data in your API - [Server-sent events and streaming APIs](https://buildwithfern.com/learn/api-definitions/ferndef/endpoints/sse.mdx): Use the `response-stream` key to model streaming endpoints - [Webhooks in the Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/webhooks.mdx): Learn how to define webhooks in the Fern Definition - [WebSockets in the Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/websockets.mdx): Learn how to define WebSockets in the Fern Definition - [Errors in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/errors.mdx): Add errors representing failed responses from API endpoints in Fern Definition. - [Imports in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/imports.mdx): Use imports to reference API types and errors from other Fern Definition files. - [Examples in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/examples.mdx): Use Fern Definition to add API examples that are shown in comments of SDKs, API Reference documentation, and a Postman collection. - [Audiences in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/audiences.mdx): Use audiences in your Fern Definition to segment your API for different groups of consumers. - [Availability in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/availability.mdx): Add availability to Fern Definition API services, endpoints, types, or properties to indicate their release status. - [The api.yml configuration file](https://buildwithfern.com/learn/api-definitions/ferndef/api-yml/overview.mdx): The api.yml file contains general API configuration when using the Fern Definition format. - [Environments](https://buildwithfern.com/learn/api-definitions/ferndef/api-yml/environments.mdx): List environments like production, staging, and development. - [Global configuration](https://buildwithfern.com/learn/api-definitions/ferndef/api-yml/global-headers.mdx): Specify global headers, path parameters or query parameters meant to be included on every request. - [Errors](https://buildwithfern.com/learn/api-definitions/ferndef/api-yml/errors.mdx): Specify error types and schemas - [Packages in Fern Definition](https://buildwithfern.com/learn/api-definitions/ferndef/packages.mdx): Fern Definition enables the reuse of API type and error names across packages, and can configure the structure of your API documentation. - [Depending on other APIs](https://buildwithfern.com/learn/api-definitions/ferndef/depending-on-other-ap-is.mdx): Import API Definitions to generate unified SDKs - [Export from Fern Definition to OpenAPI](https://buildwithfern.com/learn/api-definitions/ferndef/export-openapi.mdx): Export Fern Definition to OpenAPI 3.1 format using the fern export command. Prevent vendor lock-in and convert your API definitions easily. ## API Docs - API reference > Chat [Post Chat Completion](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/chat/post-chat-completion.mdx) - API reference > Code [Create Code Record](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/code/create-code-record.mdx) - API reference > Code [Batch Create Code Records](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/code/batch-create-code-records.mdx) - API reference > Code [Get Code Record By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/code/get-code-record-by-id.mdx) - API reference > Code [Get Code Records](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/code/get-code-records.mdx) - API reference > Code [Delete Code Record By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/code/delete-code-record-by-id.mdx) - API reference > Code [Delete All Code Records](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/code/delete-all-code-records.mdx) - API reference > Conversation [Get Conversation By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/conversation/get-conversation-by-id.mdx) - API reference > Discord [Create Discord Integration](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/discord/create-discord-integration.mdx) - API reference > Document [Create Document](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/create-document.mdx) - API reference > Document [Batch Create Document](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/batch-create-document.mdx) - API reference > Document [Get Document By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/get-document-by-id.mdx) - API reference > Document [Update Document](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/update-document.mdx) - API reference > Document [Delete Document By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/delete-document-by-id.mdx) - API reference > Document [Batch Delete Document](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/batch-delete-document.mdx) - API reference > Document [Get Documents](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/get-documents.mdx) - API reference > Document [Delete All Documents](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/document/delete-all-documents.mdx) - API reference > Guidance [Create Guidance](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/guidance/create-guidance.mdx) - API reference > Guidance [Get Guidance By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/guidance/get-guidance-by-id.mdx) - API reference > Guidance [Delete Guidance By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/guidance/delete-guidance-by-id.mdx) - API reference > Guidance [Update](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/guidance/update.mdx) - API reference > Guidance [Get Guidances](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/guidance/get-guidances.mdx) - API reference > Query [Get Recent Queries](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/query/get-recent-queries.mdx) - API reference > Slack Ask Fern [Get Slack Install Link](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/slack-ask-fern/get-slack-install-link.mdx) - API reference > Website [Index Website](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/index-website.mdx) - API reference > Website [Get Website Status](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/get-website-status.mdx) - API reference > Website [Get Website By Id](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/get-website-by-id.mdx) - API reference > Website [Get Websites](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/get-websites.mdx) - API reference > Website [Reindex Website](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/reindex-website.mdx) - API reference > Website [Delete Website](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/delete-website.mdx) - API reference > Website [Delete All Websites](https://buildwithfern.com/learn/docs/ai-features/ask-fern/api-reference/website/delete-all-websites.mdx) - Public API [JWT from Fern API key](https://buildwithfern.com/learn/docs/fern-api-reference/get-jwt.mdx) - Public API [Algolia search credentials](https://buildwithfern.com/learn/docs/fern-api-reference/get-search-key.mdx) - Public API [Current user information](https://buildwithfern.com/learn/docs/fern-api-reference/whoami.mdx) - Scribe API > Fern Writer API [Get Fern Writer Install Link](https://buildwithfern.com/learn/docs/scribe-api/fern-writer-api/get-fern-writer-install-link.mdx) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://buildwithfern.com/openapi.json) - [OpenAPI YAML](https://buildwithfern.com/openapi.yaml)