
1
2
3
4
5
6
7
8
9
10
11
12
// src/payment-gateway.ts
export interface PaymentInput {
amount: number;
sourceId: string;
}
export class PaymentGateway {
async createPayment
(input: PaymentInput) {
// TODO: implement Square payment
return null;
}
}
We used an alternative SDK generator, OpenAPI Generator, for years, and customers constantly complained. Since adopting Fern, customers have migrated rapidly to our new SDKs and have been blown away by the quality.
Gil FeigCTO
Making it easier to onboard agents and humans
Every SDK ships with onboarding docs by default — readable for new engineers and structured for coding agents.
readme.md
A concise README in the package root: install command, quickstart snippet in the SDK's idiomatic style, links to the full reference.
reference.md
A full Markdown reference of every method, parameter, and return type — designed to be dropped straight into a coding agent's context.
Built for every language
One spec, nine SDKs. Every generator carries the same set of ergonomic features so consumers get the same experience regardless of language.
// Switch on the discriminator; TypeScript narrows each branch.import { SquareClient } from "square"; const square = new SquareClient
({ token: process.env.SQUARE_TOKEN! }); const event = await square.webhooks.get
("evt_42"); switch (event.type) { case "payment.created": console.log
("Charged", event.payment.amountMoney); break; case "refund.updated": console.log
("Refund", event.refund.status); break; default: event satisfies never;}Built for every language
One spec, nine SDKs. Every generator carries the same set of ergonomic features so consumers get the same experience regardless of language.
// Switch on the discriminator; TypeScript narrows each branch.import { SquareClient } from "square"; const square = new SquareClient
({ token: process.env.SQUARE_TOKEN! }); const event = await square.webhooks.get
("evt_42"); switch (event.type) { case "payment.created": console.log
("Charged", event.payment.amountMoney); break; case "refund.updated": console.log
("Refund", event.refund.status); break; default: event satisfies never;}Just run fern generate
Fern generates and publishes client libraries, so you can focus on building the API.
Import your API spec
Start with OpenAPI, AsyncAPI, OpenRPC, gRPC, or our simpler Fern Definition format.
Select a spec
title: Public APIpaths: /jobs: post: summary: Create a new job x-fern-sdk-group-name: jobs x-fern-sdk-method-name: create request: application/json: schema: $ref: 'components/schemas/CreateJobRequest' response: '200': application/json:Select languages to generate
We support TypeScript, Python, Go, Java, Ruby, C#, PHP, Swift & Rust.
Add custom code
Extend the generated client with utility functions and custom logic. Your changes won't be overwritten on re-generation.
Add helper method: Poll job completion #8211
Changes from all commits
class JobClient extends BaseClient {
const TIMEOUT_IN_MS = 10_000;
public async awaitCompletion(): Promise<void> {
const poller = new JobPoller(this.jobId);
return new Promise((resolve, reject) => {
poller.start(resolve);
Publish packages
Fern semantically versions and publishes packages to each registry (e.g. npm, PyPI, Maven).
your-company
7.15.0 • Public • Published 24 days ago
TypeScript SDK

This library provides access to your company's API from applications written in TypeScript or JavaScript.
Documentation
Documentation and API reference is available here.
Installation
npm i -s your-companyUsage
import { CohereClient } from "cohere-ai";
Tested by default
Every generated SDK ships with three layers of tests so you can catch regressions before they reach production.
Built by language experts
Each SDK gives the impression of being hand-written by an expert in the language.
Enterprise-ready by default
Security, deployment, and partnership that scale with your API.
Security & access control
SSO, visitor auth, and RBAC. Connect any SAML or OIDC provider and control access across docs and admin features.
Multi-source docs
Aggregate content from multiple repos into one site, with product and version switching that scales across teams without breaking IA.
Self-host
Run on our managed cloud, or self-host to meet stricter security, networking, and compliance requirements.
Localization
First-class translated content. Ship docs in multiple languages as part of the rollout, not as a bolt-on.
Compliance
SOC 2 Type II and annual pentests. Reports and supporting security documentation available for procurement.
Support & SLAs
Uptime SLA, escalation paths, and a dedicated Slack or Teams channel, with 24/7 coverage for critical incidents.