Fern website screenshot

Fern

Fern is an SDK generation and documentation platform designed for the AI era. It transforms OpenAPI, AsyncAPI, Protobuf (gRPC), and OpenRPC specifications into idiomatic, production-ready SDKs across nine languages plus auto-generated, branded developer documentation, an AI-first CLI, llms.txt for agent discoverability, Ask Fern AI search, and an MCP server that connects Claude, Cursor, and Windsurf into the workflow. Engineering teams at ElevenLabs, Deepgram, Square, Webflow, Auth0, LaunchDarkly, Cohere, Pinecone, Cash App, and OpenRouter use Fern to deliver world-class developer experiences from a single source of truth.

1 APIs 12 Features
Agent ReadyAIAPI DefinitionsAsyncAPICode GenerationDeveloper ExperienceDeveloper PortalDocumentationgRPCllms.txtMCPOpenAPIOpenRPCPlatformProtobufSDKsWebSockets

APIs

Fern

Fern transforms a single API source of truth (OpenAPI, AsyncAPI, Protobuf, OpenRPC, or the Fern Definition Language) into type-safe SDKs in nine languages, branded interactive d...

MCP Servers

fern-mcp-server

MCP SERVER

Pricing Plans

Fern Plans Pricing

3 plans

PLANS

Rate Limits

Fern Rate Limits

5 limits

RATE LIMITS

FinOps

Fern Finops

FINOPS

Features

SDK Generation

Generate production-ready, type-safe SDKs in TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift, and Rust from OpenAPI, AsyncAPI, Protobuf, or the Fern Definition Language.

API Documentation

Auto-generate beautiful, branded API documentation with interactive API explorer, search, dark mode, SEO, and custom domain support.

Ask Fern

AI-powered in-docs search and chatbot that answers developer questions using your API docs, SDKs, and guides as context.

Fern Definition Language

Purpose-built API definition language as an alternative to OpenAPI for authoring API contracts.

llms.txt Generation

Auto-generated llms.txt markdown artifacts so LLMs and AI agents can consume documentation directly.

MCP Server

Hosted Model Context Protocol server that connects Claude, Cursor, and Windsurf to Ask Fern AI search and the Fern docs and SDK platform.

Agent Score

Open-source tool that rates documentation sites on their agent readiness across structure, semantics, and machine-readable content.

Fern Writer

AI-assisted documentation authoring inside the Fern docs platform.

Multi-Protocol Support

First-class support for OpenAPI (REST plus Webhooks), AsyncAPI (WebSockets), Protobuf (gRPC), and OpenRPC.

Versioning and Multi-Product

Built-in versioning, product switching, and multi-source aggregation across multiple APIs and product surfaces.

Self-Hosting

Enterprise self-hosting of the Fern docs platform inside a customer environment.

Visitor Authentication

JWT and SSO-gated docs for partner-only and internal documentation.

Use Cases

SDK Generation from OpenAPI

Transform OpenAPI specifications into idiomatic client libraries across nine programming languages with automated publishing to npm, PyPI, Maven Central, NuGet, and other registries.

Developer Documentation Hosting

Replace Docusaurus, Mintlify, GitBook, or ReadMe with a Fern-hosted docs site featuring custom branding and domain.

API-First Development

Define APIs in Fern Definition Language and generate server stubs, SDKs, and documentation from one source of truth.

SDK Maintenance Automation

Auto-update and re-publish SDKs each time an OpenAPI specification changes via GitHub Actions CI/CD.

Agent-Ready Documentation

Make docs consumable by LLMs and AI coding agents through llms.txt, MCP, and structured semantic content.

Multi-Protocol Reference Docs

Document REST plus WebSocket plus gRPC surfaces in a single unified developer experience.

Migration From Stainless, ReadMe, Mintlify, or GitBook

Migrate existing developer docs and SDK pipelines to Fern in days rather than quarters.

Integrations

GitHub Actions

First-party GitHub Actions for SDK generation, OpenAPI sync, and CI/CD publishing workflows.

npm Registry

Automatic publishing of generated TypeScript and JavaScript SDKs.

PyPI

Automatic publishing of generated Python SDKs.

Maven Central

Automatic publishing of generated Java SDKs.

NuGet

Automatic publishing of generated C# SDKs.

RubyGems

Automatic publishing of generated Ruby SDKs.

Packagist

Automatic publishing of generated PHP SDKs.

Crates.io

Automatic publishing of generated Rust SDKs.

Swift Package Manager

Distribution of generated Swift SDKs.

Go Modules

Distribution of generated Go SDKs via versioned tags.

Postman

Native ingestion of Postman collections as a documentation and SDK source.

Anthropic Claude

MCP server integration so Claude Desktop and Claude Code can query Ask Fern AI and assist with Fern workflows.

Cursor

MCP integration plus llms.txt make Fern-generated docs first-class context for the Cursor IDE.

Windsurf

MCP server support for Windsurf's AI coding environment.

ChatGPT, Gemini, Microsoft Copilot

Documentation indexing and llms.txt artifacts so leading LLMs can answer questions grounded in customer docs.

Semantic Vocabularies

Fern Context

31 classes · 4 properties

JSON-LD

JSON Structure

Fern Api Definition Structure

9 properties

JSON STRUCTURE

Fern Docs Config Structure

8 properties

JSON STRUCTURE

Fern Sdk Generator Structure

5 properties

JSON STRUCTURE

Example Payloads

Fern Api Definition Example

8 fields

EXAMPLE

Fern Docs Config Example

8 fields

EXAMPLE

Fern Mcp Ask Fern Example

4 fields

EXAMPLE

Resources

👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
🔗
Branding
Branding
🔗
Documentation
Documentation
🔗
CLI
CLI
🔗
Customers
Customers
💰
Pricing
Pricing
📰
Blog
Blog
💬
Support
Support
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🚀
GettingStarted
GettingStarted
🔗
Login
Login
📝
Signup
Signup
🔗
X
X
🔗
LinkedIn
LinkedIn
🔗
TrustCenter
TrustCenter
🔗
MCPServer
MCPServer
🔗
AgentReadinessScore
AgentReadinessScore
📄
ChangeLog
ChangeLog
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
🔗
Capabilities
Capabilities
🔗
JSONSchema
JSONSchema
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary

Sources

apis.yml Raw ↑
aid: fern
name: Fern
description: Fern is an SDK generation and documentation platform designed for the AI era. It transforms OpenAPI, AsyncAPI,
  Protobuf (gRPC), and OpenRPC specifications into idiomatic, production-ready SDKs across nine languages plus auto-generated,
  branded developer documentation, an AI-first CLI, llms.txt for agent discoverability, Ask Fern AI search, and an MCP server
  that connects Claude, Cursor, and Windsurf into the workflow. Engineering teams at ElevenLabs, Deepgram, Square, Webflow,
  Auth0, LaunchDarkly, Cohere, Pinecone, Cash App, and OpenRouter use Fern to deliver world-class developer experiences from
  a single source of truth.
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
url: https://raw.githubusercontent.com/api-evangelist/fern/refs/heads/main/apis.yml
created: '2025-01-08'
modified: '2026-05-22'
specificationVersion: '0.19'
kind: contract
access: 3rd-Party
position: Consuming
tags:
- Agent Ready
- AI
- API Definitions
- AsyncAPI
- Code Generation
- Developer Experience
- Developer Portal
- Documentation
- gRPC
- llms.txt
- MCP
- OpenAPI
- OpenRPC
- Platform
- Protobuf
- SDKs
- WebSockets
segments:
- SDKs
- Documentation
- API Definitions
- Developer Experience
- Code Generation
- Agent Ready
- MCP
apis:
- aid: fern:fern
  name: Fern
  description: Fern transforms a single API source of truth (OpenAPI, AsyncAPI, Protobuf, OpenRPC, or the Fern Definition
    Language) into type-safe SDKs in nine languages, branded interactive documentation with API explorer, an agent-first CLI,
    llms.txt artifacts, and an MCP server. The platform is positioned as Docs, SDKs, and CLIs designed for the AI era.
  humanURL: https://buildwithfern.com/
  tags:
  - Agent Ready
  - AI
  - API Definitions
  - AsyncAPI
  - Code Generation
  - Developer Experience
  - Documentation
  - gRPC
  - llms.txt
  - MCP
  - OpenAPI
  - OpenRPC
  - Platform
  - Protobuf
  - SDKs
  - WebSockets
  properties:
  - type: Documentation
    url: https://buildwithfern.com/learn
  - type: GettingStarted
    url: https://buildwithfern.com/learn/docs/getting-started/overview
  - type: SDKs
    url: https://buildwithfern.com/learn/sdks/overview/introduction
  - type: APIReference
    url: https://buildwithfern.com/learn/docs/api-references/generate-api-ref
  - type: CLI
    url: https://buildwithfern.com/learn/cli-reference/overview
  - type: MCPServer
    url: https://github.com/fern-api/fern-mcp-server
  - type: ChangeLog
    url: https://buildwithfern.com/learn/changelog
  - type: Showcase
    url: https://www.buildwithfern.com/showcase
common:
- type: GitHubOrganization
  url: https://github.com/fern-api
- type: GitHubRepository
  url: https://github.com/fern-api/fern
- type: Branding
  url: https://brandfetch.com/buildwithfern.com
- type: Documentation
  url: https://buildwithfern.com/learn
- type: CLI
  url: https://buildwithfern.com/learn/cli-reference/overview
- type: Customers
  url: https://www.buildwithfern.com/showcase
- type: Pricing
  url: https://www.buildwithfern.com/pricing
- type: Blog
  url: https://www.buildwithfern.com/blog
- type: Support
  url: https://buildwithfern.com/learn#get-support
- type: PrivacyPolicy
  url: https://www.buildwithfern.com/privacy-policy
- type: TermsOfService
  url: https://www.buildwithfern.com/terms-of-service
- type: GettingStarted
  url: https://buildwithfern.com/learn/docs/getting-started/quickstart
- type: Login
  url: https://dashboard.buildwithfern.com/login
- type: Signup
  url: https://dashboard.buildwithfern.com/login
- type: X
  url: https://x.com/buildwithfern
- type: LinkedIn
  url: https://www.linkedin.com/company/buildwithfern
- type: TrustCenter
  url: https://security.buildwithfern.com/
- type: MCPServer
  url: https://github.com/fern-api/fern-mcp-server
- type: AgentReadinessScore
  url: https://github.com/fern-api/agent-score
- type: ChangeLog
  url: https://buildwithfern.com/learn/changelog
- type: Plans
  url: https://raw.githubusercontent.com/api-evangelist/fern/refs/heads/main/plans/fern-plans-pricing.yml
- type: RateLimits
  url: https://raw.githubusercontent.com/api-evangelist/fern/refs/heads/main/rate-limits/fern-rate-limits.yml
- type: FinOps
  url: https://raw.githubusercontent.com/api-evangelist/fern/refs/heads/main/finops/fern-finops.yml
- type: Capabilities
  url: https://github.com/api-evangelist/fern/tree/main/capabilities
- type: JSONSchema
  url: https://github.com/api-evangelist/fern/tree/main/json-schema
- type: JSONLD
  url: https://raw.githubusercontent.com/api-evangelist/fern/refs/heads/main/json-ld/fern-context.jsonld
- type: Vocabulary
  url: https://raw.githubusercontent.com/api-evangelist/fern/refs/heads/main/vocabulary/fern-vocabulary.yml
- type: Features
  data:
  - name: SDK Generation
    description: Generate production-ready, type-safe SDKs in TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift, and Rust
      from OpenAPI, AsyncAPI, Protobuf, or the Fern Definition Language.
  - name: API Documentation
    description: Auto-generate beautiful, branded API documentation with interactive API explorer, search, dark mode, SEO,
      and custom domain support.
  - name: Ask Fern
    description: AI-powered in-docs search and chatbot that answers developer questions using your API docs, SDKs, and guides
      as context.
  - name: Fern Definition Language
    description: Purpose-built API definition language as an alternative to OpenAPI for authoring API contracts.
  - name: llms.txt Generation
    description: Auto-generated llms.txt markdown artifacts so LLMs and AI agents can consume documentation directly.
  - name: MCP Server
    description: Hosted Model Context Protocol server that connects Claude, Cursor, and Windsurf to Ask Fern AI search and
      the Fern docs and SDK platform.
  - name: Agent Score
    description: Open-source tool that rates documentation sites on their agent readiness across structure, semantics, and
      machine-readable content.
  - name: Fern Writer
    description: AI-assisted documentation authoring inside the Fern docs platform.
  - name: Multi-Protocol Support
    description: First-class support for OpenAPI (REST plus Webhooks), AsyncAPI (WebSockets), Protobuf (gRPC), and OpenRPC.
  - name: Versioning and Multi-Product
    description: Built-in versioning, product switching, and multi-source aggregation across multiple APIs and product surfaces.
  - name: Self-Hosting
    description: Enterprise self-hosting of the Fern docs platform inside a customer environment.
  - name: Visitor Authentication
    description: JWT and SSO-gated docs for partner-only and internal documentation.
- type: UseCases
  data:
  - name: SDK Generation from OpenAPI
    description: Transform OpenAPI specifications into idiomatic client libraries across nine programming languages with automated
      publishing to npm, PyPI, Maven Central, NuGet, and other registries.
  - name: Developer Documentation Hosting
    description: Replace Docusaurus, Mintlify, GitBook, or ReadMe with a Fern-hosted docs site featuring custom branding and
      domain.
  - name: API-First Development
    description: Define APIs in Fern Definition Language and generate server stubs, SDKs, and documentation from one source
      of truth.
  - name: SDK Maintenance Automation
    description: Auto-update and re-publish SDKs each time an OpenAPI specification changes via GitHub Actions CI/CD.
  - name: Agent-Ready Documentation
    description: Make docs consumable by LLMs and AI coding agents through llms.txt, MCP, and structured semantic content.
  - name: Multi-Protocol Reference Docs
    description: Document REST plus WebSocket plus gRPC surfaces in a single unified developer experience.
  - name: Migration From Stainless, ReadMe, Mintlify, or GitBook
    description: Migrate existing developer docs and SDK pipelines to Fern in days rather than quarters.
- type: Integrations
  data:
  - name: GitHub Actions
    description: First-party GitHub Actions for SDK generation, OpenAPI sync, and CI/CD publishing workflows.
  - name: npm Registry
    description: Automatic publishing of generated TypeScript and JavaScript SDKs.
  - name: PyPI
    description: Automatic publishing of generated Python SDKs.
  - name: Maven Central
    description: Automatic publishing of generated Java SDKs.
  - name: NuGet
    description: Automatic publishing of generated C# SDKs.
  - name: RubyGems
    description: Automatic publishing of generated Ruby SDKs.
  - name: Packagist
    description: Automatic publishing of generated PHP SDKs.
  - name: Crates.io
    description: Automatic publishing of generated Rust SDKs.
  - name: Swift Package Manager
    description: Distribution of generated Swift SDKs.
  - name: Go Modules
    description: Distribution of generated Go SDKs via versioned tags.
  - name: Postman
    description: Native ingestion of Postman collections as a documentation and SDK source.
  - name: Anthropic Claude
    description: MCP server integration so Claude Desktop and Claude Code can query Ask Fern AI and assist with Fern workflows.
  - name: Cursor
    description: MCP integration plus llms.txt make Fern-generated docs first-class context for the Cursor IDE.
  - name: Windsurf
    description: MCP server support for Windsurf's AI coding environment.
  - name: ChatGPT, Gemini, Microsoft Copilot
    description: Documentation indexing and llms.txt artifacts so leading LLMs can answer questions grounded in customer docs.
- type: Partnerships
  data:
  - name: Anthropic
    description: Claude integration via the fern-mcp-server and Ask Fern AI knowledge surface.
  - name: Cursor
    description: Cursor MCP integration and llms.txt-driven context for AI-assisted coding against Fern-documented APIs.
  - name: Windsurf
    description: MCP integration with Codeium Windsurf.
  - name: Postman
    description: Joint blog series and integration delivering world-class developer experiences alongside Postman collections.
- type: SDKs
  data:
  - name: TypeScript SDK Generator
    description: Generates idiomatic TypeScript and JavaScript SDKs with full type safety, published to npm.
  - name: Python SDK Generator
    description: Generates idiomatic Python SDKs with Pydantic models, published to PyPI.
  - name: Go SDK Generator
    description: Generates idiomatic Go SDKs published as Go modules.
  - name: Java SDK Generator
    description: Generates idiomatic Java SDKs published to Maven Central.
  - name: C# SDK Generator
    description: Generates idiomatic C# SDKs published to NuGet.
  - name: PHP SDK Generator
    description: Generates idiomatic PHP SDKs published to Packagist.
  - name: Ruby SDK Generator
    description: Generates idiomatic Ruby SDKs published to RubyGems.
  - name: Swift SDK Generator
    description: Generates idiomatic Swift SDKs distributed via Swift Package Manager.
  - name: Rust SDK Generator
    description: Generates idiomatic Rust SDKs published to crates.io.
- type: GitHubRepositories
  data:
  - name: fern
    description: Core platform. Input OpenAPI, output SDKs and docs. TypeScript, Apache-2.0, 3.6k+ stars, 170+ contributors.
    url: https://github.com/fern-api/fern
  - name: fern-mcp-server
    description: Model Context Protocol server exposing the ask_fern_ai tool to Claude, Cursor, and Windsurf via stdio and
      an HTTP endpoint.
    url: https://github.com/fern-api/fern-mcp-server
  - name: agent-score
    description: Rates docs sites on their agent readiness.
    url: https://github.com/fern-api/agent-score
  - name: docs-starter
    description: Starter template to publish docs from OpenAPI plus MDX.
    url: https://github.com/fern-api/docs-starter
  - name: docs-starter-fern-definition
    description: Starter template to publish docs from a Fern Definition.
    url: https://github.com/fern-api/docs-starter-fern-definition
  - name: sdk-starter
    description: Starter template for generating SDKs in TypeScript, Python, Go, Java, C#, PHP, and Ruby.
    url: https://github.com/fern-api/sdk-starter
  - name: sync-openapi
    description: GitHub Action that syncs OpenAPI specs to a Fern configuration.
    url: https://github.com/fern-api/sync-openapi
  - name: setup-fern-cli
    description: GitHub Action that installs the Fern CLI into a workflow via npm.
    url: https://github.com/fern-api/setup-fern-cli
  - name: actions
    description: Reusable Fern GitHub Actions for SDK and docs workflows.
    url: https://github.com/fern-api/actions
  - name: docs
    description: The Fern public documentation site, built with Fern.
    url: https://github.com/fern-api/docs
  - name: docs-templates
    description: Template collection for Fern documentation projects.
    url: https://github.com/fern-api/docs-templates
  - name: docs-examples
    description: Example Fern docs configurations.
    url: https://github.com/fern-api/docs-examples
  - name: docs-custom-js-example
    description: Example Fern docs site with custom headers and footers.
    url: https://github.com/fern-api/docs-custom-js-example
  - name: docs-site-sync
    description: Chrome extension for side-by-side comparison of old and new documentation sites during migration.
    url: https://github.com/fern-api/docs-site-sync
  - name: migration-checker
    description: Automated analysis tool for comparing old and new documentation sites during migration.
    url: https://github.com/fern-api/migration-checker
  - name: fastapi-starter
    description: Starter repo for FastAPI plus React using Fern.
    url: https://github.com/fern-api/fastapi-starter
  - name: express-starter
    description: Starter repo for Express using Fern.
    url: https://github.com/fern-api/express-starter
  - name: spring-starter
    description: Starter repo for Java Spring using Fern.
    url: https://github.com/fern-api/spring-starter
  - name: generator-cli-go
    description: Go library to invoke the Fern generator CLI.
    url: https://github.com/fern-api/generator-cli-go
  - name: generator-exec-go
    description: Go library for progress updates between the Go generator and Fern's remote generation server.
    url: https://github.com/fern-api/generator-exec-go
  - name: ir-go
    description: Go bindings for the Fern Intermediate Representation.
    url: https://github.com/fern-api/ir-go
  - name: protoc-gen-openapi
    description: A protoc plugin that compiles Protobuf services into OpenAPI for downstream Fern generation.
    url: https://github.com/fern-api/protoc-gen-openapi
  - name: sphinx-autodoc2-fern
    description: CLI that auto-generates Fern markdown API documentation for Python packages.
    url: https://github.com/fern-api/sphinx-autodoc2-fern
  - name: swift-sdk-comparison
    description: Reference comparison of Swift SDKs across different SDK generators.
    url: https://github.com/fern-api/swift-sdk-comparison
  - name: incident-node
    description: TypeScript SDK for the Incident.io public API, generated by Fern.
    url: https://github.com/fern-api/incident-node
  - name: incident-python
    description: Python SDK for the Incident.io public API, generated by Fern.
    url: https://github.com/fern-api/incident-python
  - name: make-unity-sdk
    description: CLI that converts a generated C# SDK into a Unity C# SDK.
    url: https://github.com/fern-api/make-unity-sdk
- type: Customers
  data:
  - name: ElevenLabs
    description: Unified docs and SDKs on Fern at over one billion end users.
  - name: Deepgram
    description: Consolidated REST plus WebSocket documentation into a single developer experience.
  - name: OpenRouter
    description: Rebuilt docs platform around agent-native workflows, automated writing, and AI search.
  - name: Square
    description: SDKs across multiple languages generated by Fern.
  - name: Webflow
    description: SDKs across multiple languages generated by Fern.
  - name: Auth0
    description: SDKs and docs generated by Fern.
  - name: LaunchDarkly
    description: SDKs generated by Fern.
  - name: Cohere
    description: SDKs for AI inference APIs generated by Fern.
  - name: Pinecone
    description: SDKs for the vector database generated by Fern.
  - name: AssemblyAI
    description: SDKs generated by Fern.
  - name: Candid Health
    description: SDKs generated by Fern.
  - name: Merge
    description: SDKs and docs generated by Fern.
  - name: Vapi
    description: SDKs generated by Fern.
  - name: Flatfile
    description: SDKs generated by Fern.
  - name: Payabli
    description: Migrated from Mintlify in three weeks and built interactive developer tools on Fern.
  - name: Unleash
    description: Migrated 300+ pages off Docusaurus in two weeks and made every doc AI-ready.
  - name: Frame.io
    description: Turned auth questions from 90% of support load into self-serve answers on Fern.
  - name: Cash App
    description: Hosts developer docs on Fern.
  - name: Clearpay
    description: Hosts developer docs on Fern.
  - name: ID.me
    description: Hosts developer docs on Fern.
  - name: You.com
    description: Hosts developer docs on Fern.
  - name: Persona
    description: Hosts developer docs on Fern.
  - name: Instabase
    description: Hosts developer docs on Fern.
  - name: Chainalysis
    description: Hosts developer docs on Fern.
  - name: Ada
    description: Hosts developer docs on Fern.
  - name: Nominal
    description: Hosts developer docs on Fern.
  - name: Babel Street
    description: Hosts developer docs on Fern.
  - name: Beehiiv
    description: Hosts developer docs on Fern.
- type: Compliance
  data:
  - name: SOC 2
    description: SOC 2 reported via the Fern Trust Center.
  - name: 21 CFR Part 11
    description: Healthcare and pharmaceutical regulatory compliance reported via the Trust Center.
  - name: SSO and SAML and OIDC
    description: Enterprise SSO available on the Enterprise plan.
  - name: Visitor Authentication
    description: JWT-based visitor authentication for partner and internal docs on Enterprise.
  - name: Self-Hosting
    description: Self-hosted deployment available on the Enterprise plan.
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com