Octri vs Fern
Both build a docs site and SDKs from one spec. Octri sells every SDK language, custom code and generated tests on plans with the price on the page, then adds monitoring, a status page and MCP tools that call your API.
Written by Octri · Checked 15 October 2026
Summary
- Octri ahead
- 22
- Level
- 24
- Fern ahead
- 6
$49
a month for Octri’s first paid plan, with two SDK languages of your choice. Every Fern language past Python and TypeScript is on Enterprise, priced by quote.
4 in 1
docs, SDKs, an MCP server and monitoring on one subscription, at no extra cost.
Fern’s free plan is generous, and Octri matches it on the docs. The difference starts where Fern’s free plan stops. Octri sells every SDK language, every package registry, custom code, generated tests and streaming on self-serve plans, and writes your endpoint reference and changelog for you, where Fern lists most of that on Enterprise or leaves it to you.
Then the subscription keeps going: error reporting inside every SDK, uptime checks and a status page, logs and traces for your API, and MCP tools that call your API. Fern leads on a short list (more spec formats, a larger free endpoint allowance, docs on a subpath, and localization and self-hosting on Enterprise), and the table shows each one.
Docs and SDKs, head to head
Octri against Fern, 52 rows from each product’s pricing page and docs on 15 October 2026. Octri is ahead on 22, level on 24, and Fern is ahead on 6.
| Feature | Octri | Fern |
|---|---|---|
| Writing and editing | ||
| Visual editor | Every plan, on the published page | Every plan |
| Guides in MDX | Every plan, with built-in components | Every plan, with built-in components |
| Endpoint reference | Written for you: every endpoint, every field, errors by status | Built from your spec, with an AI agent that writes on request |
| Spec quality score | Every plan, weak endpoints named | An OpenAPI audit on Enterprise |
| Fix the spec from the docs | Every plan, committed to your repository when GitHub is connected | Not listed |
| API changelog | Written from every spec change | Hand-written entries, with an RSS feed |
| Draft and publish | Every plan, with release history | Preview links on every plan |
| Git sync | Every plan | Every plan |
| Spec formats | OpenAPI 3.0 and 3.1, Swagger 2.0, Postman collections, AsyncAPI | OpenAPI, AsyncAPI, gRPC, GraphQL, OpenRPC and Protobuf |
| API reference | ||
| Interactive playground | Every plan, with the reader’s own auth | Every plan |
| HTTP request examples | Every plan, in several languages | Every plan, in several languages |
| Calls through your own SDK | Every endpoint, in each SDK language you publish | Every endpoint, in each Fern SDK |
| Error guide per status code | Every endpoint, with cause and fix | Not listed |
| Beta and deprecation notices | Banners with a sunset date, on versions, endpoints and pages | Badges you add by hand |
| API keys filled in for signed-in readers | Not available | Enterprise |
| SDKs | ||
| SDK languages | TypeScript, Python, Go, Java, Kotlin, Ruby, PHP, Rust, Swift and Dart | TypeScript, Python, Go, Java, C#, Ruby, PHP, Swift and Rust, with Kotlin in progress |
| Languages on the free plan | Any one of the ten | Python and TypeScript |
| Every other language | Self-serve: all ten on Business, or $50 a language on Starter and Growth | Enterprise, priced per SDK |
| Endpoints on the free plan | 50 | 200 |
| Registry publishing | Every plan: npm, PyPI, Maven Central, RubyGems, crates.io, pub.dev, plus Go, PHP and Swift tags | npm and PyPI on Free; Maven, RubyGems and Packagist on Enterprise |
| Shaping the SDK | SDK Studio, per endpoint, with a live code preview | generators.yml and x-fern extensions |
| Retries, pagination and idempotency | Every language, every plan | Every plan |
| Streaming (server-sent events) | Every language, every plan | Enterprise |
| Generated tests | Every plan: a local mock server and contract tests in every SDK | Mock server and integration tests on Enterprise |
| Custom code kept through regeneration | Growth | Enterprise |
| Webhook signature helpers | Every plan: Standard Webhooks signature checks and typed events, in all ten languages | Enterprise |
| Error reporting inside the SDK | Built in, tagged to the release | Not listed |
| Look and feel | ||
| Theme and layout | A choice of page layouts, your accent colour, light and dark code themes, text size | Themes, colours and landing pages |
| Custom components | Growth: built visually or in MDX, with props | Enterprise: custom React |
| Custom CSS and JavaScript | Growth | Enterprise |
| Remove the vendor’s branding | Business | Enterprise |
| Localization | One language per site | Enterprise, with translations you supply |
| AI and agents | ||
| AI chat for readers | Every plan, Free included | Every plan, as Ask Fern |
| llms.txt and markdown pages | Every plan | Every plan |
| MCP server | 7 docs tools, plus a callable tool per endpoint | One tool that answers questions about your docs |
| Tool export | MCP, OpenAI and Anthropic formats | Not listed |
| Publishing and access | ||
| Custom domain | Every plan | Every plan |
| Redirect rules | Every plan: send a retired page to another, and keep old links working on rename | In docs.yml, with wildcards |
| Docs on a subpath of your site | Not available | Every plan |
| SEO metadata and social cards | Every plan | Every plan |
| Password-protected docs | Every plan | Every plan |
| Reader single sign-on | Enterprise, SAML | Enterprise, SSO, JWT or role-based access |
| PDF export | Every plan, any page | Every plan |
| Self-hosting | Not available | Enterprise, as a Docker image |
| Outage banner | Automatic when uptime checks fail, linking your status page | Not listed |
| Analytics and team | ||
| Docs analytics | Every plan | Every plan |
| Reader feedback | Every plan | Every plan |
| Roles and permissions | Every plan | Every plan |
| Activity log | Every plan | Not listed |
| Webhooks and a public API | Every plan, plus the octri CLI | API access on every plan, plus the Fern CLI |
| SDK downloads by language | Every plan | Not listed |
| Dashboard single sign-on | Enterprise | Enterprise |
Only on Octri
11 features you will not find in Fern’s pricing page or docs.
Error reporting inside every SDK
A failure in your users’ apps reaches you with the SDK version, language and method, tagged to the release.
SDKs shaped in a studio
Client shape, method names and file layout per endpoint, with the generated code redrawn beside each change.
A Dart SDK for Flutter apps
Dart sits beside the other nine languages, published to pub.dev on every plan.
An error guide for every status code
Each endpoint lists the errors it can return, with what causes each one and how to fix it.
Docs edits that fix the spec
Correct an endpoint on the page and, with GitHub connected, the change is committed to your spec.
A changelog that writes itself
Every spec change becomes a dated entry of endpoints added, removed and changed, with breaking changes flagged.
Sunset dates on deprecations
Beta and deprecated versions, endpoints and pages carry a banner with the date they go away.
MCP tools that call your API
One tool per endpoint makes the real request, limited to the endpoints you put in your SDK.
Tools for any agent framework
The tool list exports in MCP, OpenAI and Anthropic formats.
An outage banner that raises itself
When uptime checks fail, every docs page shows a banner linking your status page.
SDK downloads in your analytics
Downloads by language sit beside page views and chat questions, on every plan.
Every language, without a sales call
Fern’s free plan covers Python and TypeScript. Every other language is on Enterprise, priced per SDK. Octri sells all ten on plans with the price on the page.
Octri generates TypeScript, Python, Go, Java, Kotlin, Ruby, PHP, Rust, Swift and Dart. The Free plan includes one of them, and you choose which, so a team whose users write Go, Java or Kotlin can ship that client first. Starter includes 2, Growth 4, and Business all ten at $249 a month. A language past your bundle is $50 a month on Starter and Growth.
Publishing is part of every plan too. Octri releases to npm, PyPI, Maven Central, RubyGems, crates.io and pub.dev, and tags Go, PHP and Swift releases in git. Fern’s free plan publishes to npm and PyPI, and lists Maven, RubyGems and Packagist on Enterprise.
Streaming over server-sent events, retries with backoff, pagination, idempotency, multipart uploads and OAuth come with every Octri client in every language. Fern lists server-sent events, generated tests and custom code on Enterprise.
- Kotlin as its own SDK, generally available, and Dart for Flutter apps
- A GitHub repository per language, with every regeneration arriving as a pull request
- An optional test suite and an optional CLI with a subcommand per endpoint
- Custom SDK code from Growth, kept through each regeneration by a normal merge
Shape the client where you can see it
Fern configures SDKs in generators.yml and x-fern extensions in the spec. Octri reads both on import, then moves the decisions into SDK Studio.
In SDK Studio you set client shape, method names and file layout for the whole project, for one language or for a single endpoint. Each change redraws the generated code beside it, so a renamed method can be checked in TypeScript, Python and Go before anything is published.
The people who review an SDK’s surface can do it without opening a YAML file, and the settings you choose for your public SDK double as the list of endpoints an AI agent may call through the MCP server.
A reference that is already written
Both turn a spec into an API reference with a playground and SDK snippets. On Octri the reference arrives written, and the changelog keeps itself.
Fern renders your spec and offers an AI agent that writes when you ask it to. Octri writes the reference for you on import: every endpoint gets a description, every request and response field is explained, and each error is documented by status code with its cause and fix. Edits are stored per page, so when the spec changes only the endpoints that moved are rewritten.
Every spec change becomes a dated changelog entry listing endpoints added, removed and changed, with breaking changes flagged, where Fern’s changelog is a set of entries you write. A quality score names the weakest endpoints on every plan, and a fix made inside the docs is committed back to your repository.
An MCP server that calls your API
Both put an AI chat on your docs on every plan, and both serve llms.txt. They differ on what an agent can do.
Fern’s docs MCP server exposes one tool, which answers questions about your documentation. Octri’s has seven for reading the docs (search, one endpoint in full, the endpoint list, guides, the changelog, your SDKs and the call in your own SDK) and one callable tool per endpoint, which makes the real request.
Endpoints you excluded from your SDK get no tool. The server runs locally over stdio with credentials kept on the developer’s machine, or as a shared SSE server for a team, and the tool list exports in MCP, OpenAI and Anthropic formats.
Custom code on a plan you can buy today
Fern lists custom CSS, JavaScript, React components and its own branding removal on Enterprise. Octri puts them on self-serve plans.
Custom components (built visually or in MDX, with props) and custom CSS with head and body code arrive on Growth at $79 a month, and white-label docs on Business. Before that, every plan gets a choice of page layouts, your accent colour, separate light and dark code themes, text size per region, tabs in the top bar, badges and icons in the sidebar, call-to-action buttons and social links for 21 platforms.
Also in the plan, at no extra cost
Fern’s subscription ends when the docs are published and the SDKs are released. Octri’s keeps going: everything below is on the same plan, Free included, at no extra cost.
Error reporting inside every SDK
Failures in your users’ apps arrive with the SDK version, language and method, tagged to the release.
Uptime checks and a status page
Checks generated from your spec, and incidents on a status page on your domain and a banner in your docs.
Logs and traces for your API
Backend packages in ten languages, with traces from the client call into your handler and latency targets per route.
Endpoints as agent tools
One callable MCP tool per endpoint, limited to the endpoints you put in your SDK.
Once your SDK is in someone’s app
Fern’s work ends when the SDK is published. Octri built the client your users installed, so it can keep watching.
Every Octri SDK carries an error reporter. It ships switched off, and the developer who installs your SDK turns it on with one option. From then on a failure in their application reaches your project with the SDK version, the language, the method and the status, grouped into issues and tagged to the release that introduced it. Credentials and personal identifiers are redacted inside the SDK before anything is sent.
Your API is watched too. Uptime checks are generated from the endpoints in your spec, an incident publishes to a status page on your own domain and to a banner across your docs, and backend packages add logs, traces and latency targets per route. Fern does not list any of these.
- Alerts for new issues, regressions and thresholds, to Slack or any webhook
- No third-party observability vendor in the path; data stored in the United Kingdom
- Monitoring ingest is never cut off at the allowance, so a bad day’s errors still arrive
More product, with the price on the page
Fern’s free plan is generous. Past it, everything is Enterprise, priced by quote. Octri’s paid plans start at $49 a month, and every one is published. Prices as of 15 October 2026.
Fern Enterprise
Custom
by quote, priced per SDK, billed yearly
- Every SDK language past Python and TypeScript
- Custom code, generated tests and streaming
- Custom CSS, JavaScript and React
- Localization and self-hosting
Octri Growth
$79
a month, every price on the page
- SDKs in 4 languages of your choice
- Custom code, custom components and CSS
- Generated tests and streaming in every language
- SDK errors, uptime checks, status page, MCP tools
Octri Business
$249
a month, or $211.65 billed yearly
- Everything in Growth
- SDKs in all ten languages
- 600 endpoints, white-label docs
- SDKs served from a CDN
Plan by plan
Octri’s yearly billing takes 15% off the base price. Fern publishes no price above its free plan.
| Plan | Octri | Fern |
|---|---|---|
| Free | $0. Docs site, one SDK language of your choice, 50 endpoints, monitoring, MCP, AI chat with 100 credits | $0. Docs with 10 members and 1,000 pages, and Python and TypeScript SDKs up to 200 endpoints |
| First paid | Starter, $49 a month. Two SDK languages, 100 endpoints, 1,000 credits a month | No self-serve paid plan |
| Middle | Growth, $79 a month. Four languages, 300 endpoints, custom code, components and CSS | No self-serve paid plan |
| Upper | Business, $249 a month. All ten languages, 600 endpoints, white-label, SDKs on a CDN | No self-serve paid plan |
| Top | Enterprise, custom. SAML single sign-on, unlimited endpoints | Enterprise, custom, priced per SDK and billed yearly |
| SDKs | Included. $50 a month per extra language on Starter and Growth | Python and TypeScript free; every other language on Enterprise |
Where three common setups land
Fern’s column says which plan each setup needs. Where a setup needs monitoring, that comes from another vendor at its own price.
| Setup | Octri | Fern |
|---|---|---|
| Docs plus Go and Java SDKs | Starter, $49. Both languages are in the bundle | Enterprise, by quote |
| Docs plus SDKs with custom code kept through regeneration | Growth, $79 | Enterprise, by quote |
| Docs, SDKs in all ten languages, monitoring and a status page | Business, $249 | Enterprise by quote, plus a monitoring vendor |
Moving from Fern
Your SDK languages, package name, accent colour and spec come across, and every page in docs.yml is listed with its path.
- fern/generators.yml
- fern/docs.yml
- fern/fern.config.json
How the move works
Stage 1
Bring it in
You
Zip your repository with the
fernfolder and your OpenAPI file, and upload it. On a Fern Definition, runfern exportfirst.Octri
Turns each generator into an SDK language with your package name, picks up your spec, accent colour, logo and favicon, and lists every page in docs.yml with its path.
Stage 2
Fill it out
You
Check each SDK in the SDK Studio preview, then paste each guide into the MDX editor at its listed path.
Octri
Writes the API reference for every endpoint, and carries your x-fern method names and pagination into per-endpoint settings.
Stage 3
Go live
You
Release under the same package names, connect GitHub, publish, and point your custom domain at Octri last.
Octri
Rebuilds the draft every time a spec change merges, ready for you to publish.
Which should you choose?
Choose Fern
Choose Fern if your API is defined in gRPC, GraphQL or OpenRPC, if you need a C# SDK, or if you need translated docs or self-hosting and are ready for an Enterprise contract.
Choose Octri
Choose Octri if you want SDKs in the languages your users write without a sales call. Every language, every registry, custom code, generated tests and streaming are on plans with the price on the page, and SDK Studio shows each change before it ships. Your docs arrive written, with an error guide for each status code and a changelog that keeps itself, and the chat, analytics, PDF export and private docs are on every plan.
Then comes the rest of the subscription. Error reporting inside every SDK, uptime checks and a status page, logs and traces for your API, and an MCP server whose tools call your API, all at no extra cost. On Fern, monitoring is another vendor and another bill.
Questions
Fern’s free plan covers docs and Python and TypeScript SDKs up to 200 endpoints. Everything past it is Enterprise, priced per SDK and billed yearly, by quote. Octri’s paid plans start at $49 a month, or $41.65 a month billed yearly.
Other comparisons
Octri vs
Mintlify
A docs site plus first-party SDKs in ten languages from the same spec, and the monitoring those SDKs make possible.
CompareOctri vs
ReadMe
A docs site plus SDKs in up to 10 languages from the same spec, AI chat on every plan, and monitoring with a status page.
CompareOctri vs
Redocly
A docs site written from your spec, SDKs in ten languages, a hosted MCP server and monitoring, with AI chat on every plan.
CompareOctri vs
Docusaurus
API docs written from your spec and hosted for you, plus SDKs in ten languages, a hosted MCP server and monitoring.
CompareOctri vs
Scalar
Docs, SDKs and a hosted MCP server, with all ten SDK languages in the plan and monitoring that Scalar does not offer.
Compare
Octri vs
Stainless
Takes new projects, reads stainless.yml and adds monitoring inside every client it generates.
CompareOctri vs
APIMatic
SDKs in ten languages included in the plan, a docs site written from your spec, a hosted MCP server and monitoring.
CompareSide by side
All of them
Every comparison, grouped by what each tool does.
Compare
Written by Octri, from each vendor's public pages and our own testing, checked 16 October 2026. Products change often, so confirm anything that matters to you on the vendor's own site. Product names are the trademarks of their owners, used here only to identify their products. Octri is not affiliated with or endorsed by any of them.
Spotted something out of date? Write to founders@octri.dev and we will correct it.
Try it on your own spec
Import your fern folder on the Free plan and compare the result with your current docs and SDKs.
