Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fern/products/sdks/guides/configure-readme.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Customize README
description: Guide to configuring the README in your SDK
---

By default, the README for your SDKs is generated programmatically. You can customize the content and structure of these README files across all of your SDKs by configuring the `readme` section in `generators.yml`.
By default, the README for your SDKs is [generated programmatically](./sdk-user-features) and contains information about how your users can interact with your API. You can customize the content and structure of these README files across all of your SDKs by configuring the `readme` section in `generators.yml`.


## Configuration options
Expand Down
30 changes: 30 additions & 0 deletions fern/products/sdks/guides/generated-sdk.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: SDK user features
description: How your customers can use your SDK
---

Fern-generated SDKs provide a consistent set of features across all languages to help developers interact with your API. Usage information is auto-generated in your SDK's README, [which you can customize](./readme).

## Installation and basic usage

Users install SDKs using standard package managers (npm for TypeScript, pip for Python, Maven/Gradle for Java, etc.) from language-specific registries.

Users initialize the client with your API's base URL and any required authentication, then call methods on the client to interact with your API. Generated SDKs support modern runtimes across languages.

## Error handling

When the API returns a 4xx or 5xx status code, the SDK throws an error that includes the status code, error message, response body, and raw response object.

## Customization options

Your SDK users can configure individual requests using language-specific options:

| Option | Description | Availability |
|--------|-------------|--------------|
| Timeouts | Configure request timeouts (default: 60 seconds for most languages, 30 seconds for C# and PHP) | All languages |
| [Retries](/sdks/deep-dives/retries-with-backoff) | Configure maximum retries (default: 2 with exponential backoff for 408, 429, and 5xx responses) | All languages except Ruby and Swift |
| Custom HTTP client | Override the default HTTP client for unsupported environments or custom requirements | TypeScript, Python, Java, PHP, and Swift |
| Custom headers | Send additional headers with any request | TypeScript, Java, and Swift |
| Raw response data | Access response headers alongside parsed data | TypeScript, Python, and Go |
| Query parameters | Add extra query string parameters | TypeScript and Swift |
| Abort signals | Cancel in-flight requests | TypeScript only |
2 changes: 2 additions & 0 deletions fern/products/sdks/sdks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,8 @@ navigation:
slug: mcp-server
- section: Deep dives
contents:
- page: SDK user features
path: ./guides/generated-sdk.mdx
- page: Customize method names
path: ./guides/customize-method-names.mdx
slug: customize-method-names
Expand Down