Fern

Fern is a developer-tools platform that turns a single API specification into idiomatic client SDKs, beautiful API documentation, and MCP servers. Given OpenAPI, AsyncAPI, gRPC/Protobuf, or Fern's own Fern Definition as input, Fern generates type-safe SDKs in TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift, and Rust, publishes them to registries like npm, PyPI, and Maven, and builds a hosted docs site with an interactive API reference, API playground, and an AI-powered "Ask Fern" search. The primary interface is the open-source `fern` CLI (Apache-2.0, github.com/fern-api/fern) driving a hosted platform - the fern-api catalog documents Fern's SDK-generation, documentation-generation, and Fern Definition capability surfaces as capability areas, plus the one hosted public REST API Fern exposes to customers, the Ask Fern API. Fern is open-core: the CLI and generators are open source, and Docs and SDKs are sold on Hobby (free), Team, and Enterprise plans.

4 APIs 0 Features
API LifecycleSDK GenerationClient LibraryAPI DocumentationDeveloper ToolsOpenAPICLIOpen SourceDeveloper Experience

APIs

Fern SDK Generation

Capability area (CLI/platform, not a hosted REST API) that generates idiomatic, type-safe client SDKs in TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift, and Rust from OpenAP...

Fern API Documentation

Capability area (CLI/platform) that builds a hosted documentation website with a generated API reference, interactive API playground, changelogs, versioning, keyword search, and...

Fern Definition and CLI

Capability area covering Fern's open-source (Apache-2.0) command-line interface and the proprietary Fern Definition API-description format. Core commands include `fern init`, `f...

Ask Fern API

Fern's hosted public REST API for the AI-powered "Ask Fern" documentation search. Index a documentation website, poll indexing job status, and query the indexed content for grou...

Collections

Pricing Plans

Fern Api Plans Pricing

4 plans

PLANS

Rate Limits

Fern Api Rate Limits

4 limits

RATE LIMITS

FinOps

Resources

🔗
AgenticAccess
AgenticAccess
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Fern Ask Fern API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Website Sources
    type: folder
  items:
  - info:
      name: Index a documentation website
      type: http
    http:
      method: POST
      url: https://fai.buildwithfern.com/sources/website/:domain/index
      params:
      - name: domain
        value: docs.example.com
        type: path
        description: The documentation domain to index.
      body:
        type: json
        data: '{"base_url": "https://docs.example.com"}'
    docs: Start an indexing job that crawls and indexes a documentation website. Returns a job_id. Modeled endpoint - reconcile
      against the live reference.
  - info:
      name: Get website indexing status
      type: http
    http:
      method: GET
      url: https://fai.buildwithfern.com/sources/website/:domain/status
      params:
      - name: domain
        value: docs.example.com
        type: path
        description: The documentation domain being indexed.
      - name: job_id
        value: ''
        type: query
        description: The job ID returned from the index endpoint.
    docs: Return the status of a website indexing job, including pages_indexed and pages_failed. Confirmed endpoint.
- info:
    name: Ask
    type: folder
  items:
  - info:
      name: Ask a question
      type: http
    http:
      method: GET
      url: https://fai.buildwithfern.com/ask
      params:
      - name: q
        value: ''
        type: query
        description: URI-encoded natural-language question.
    docs: Submit a natural-language question and receive an AI-generated answer grounded in the indexed documentation. Modeled
      endpoint shape - reconcile against the live reference.