> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. # Capabilities > Fern SDK capabilities include type safety, auto-pagination, OAuth token refresh, retries with backoff, webhook verification, and more. Fern SDKs include the following capabilities: * **Strongly typed**: Move fast and break nothing with type safety. * **IDE support**: Rich autocomplete and inline documentation in your editor. [Learn more](/learn/sdks/deep-dives/sdk-user-features#ide-support-and-intellisense) * **Idiomatic method names**: Fine-tune SDK resources and method names. [Learn more](/learn/sdks/deep-dives/customize-method-names) * **Schema validation**: Fail fast if payloads diverge from your schema. [Learn more](/learn/sdks/deep-dives/testing#mock-server-tests) * **Discriminated unions**: Support for discriminated unions. [Learn more](/learn/api-definitions/ferndef/types#discriminated-unions) * **Multipart form data**: SDKs that handle multipart form data. * **Forward compatibility**: SDKs that are fault-tolerant as your API evolves. * **Automated releases**: Automatically detects API changes, regenerates SDKs, and publishes to registries. [Learn more](/learn/sdks/overview/autorelease) * **Auto-pagination**: Paginate through API responses using offset, cursor, and link-based pagination. [Learn more](/learn/sdks/deep-dives/auto-pagination) * **OAuth token refresh**: First-class OAuth support. [Learn more](/learn/sdks/reference/generators-yml#oauth) * **Retries with backoff**: Automatically retry failed requests with exponential backoff. [Learn more](/learn/sdks/deep-dives/retries-with-backoff) * **Webhook signature verification**: Verify the signature of incoming webhook requests. [Learn more](/learn/sdks/deep-dives/webhook-signature-verification) * **Idempotency headers**: Built-in protection against duplicate submissions. [Learn more](/learn/sdks/deep-dives/idempotency) * **Server-sent events**: Stream JSON data from your server to your client, with opt-in access to [SSE metadata](/learn/sdks/deep-dives/sse-metadata) (event ID, event type, retry) and [automatic reconnection](/learn/sdks/deep-dives/sse-metadata#automatic-reconnection) for resumable endpoints. [Learn more](/learn/sdks/deep-dives/sse-metadata) * **Testing**: Auto-generated and handwritten tests for your SDK. [Learn more](/learn/sdks/deep-dives/testing) * **Code snippets**: No longer depend on manually written code snippets. [Learn more](/learn/docs/api-references/sdk-snippets) * **Augment with custom code**: Extend the generated SDK with additional functionality. [Learn more](/learn/sdks/overview/custom-code) * **Merging multiple APIs**: Multiple API definitions, one SDK. [Learn more](/learn/api-definitions/overview/project-structure#multiple-apis) * **WebSockets**: Generate typed WebSocket clients with connection management and reconnection. [Learn more](/learn/sdks/deep-dives/websocket-clients) > Fern SDKs are built to have every feature you need.