> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. # Overview of API References > Understand how to generate, customize, and enhance API Reference documentation with Fern. Fern generates interactive API Reference documentation from an [OpenAPI specification](/learn/api-definitions/openapi/overview) or other API formats. Endpoints, type schemas, code snippets, and [AI-generated examples](/learn/docs/ai-features/ai-examples) are all populated automatically. Users can try requests directly from the docs with the [API Explorer](/learn/docs/api-references/api-explorer), and AI agents and crawlers can discover your APIs via the [API catalog](/learn/docs/ai-features/api-catalog) endpoint. ## Pick your API type #### [REST](/learn/docs/api-references/generate-api-ref) OpenAPI specification #### [gRPC](/learn/docs/api-references/generate-grpc-ref) Protocol Buffer `.proto` files #### [WebSocket](/learn/docs/api-references/generate-websocket-ref) AsyncAPI specification #### [Webhook](/learn/docs/api-references/generate-webhook-ref) OpenAPI specification #### [OpenRPC](/learn/docs/api-references/generate-openrpc-ref) OpenRPC specification #### [GraphQL](/learn/docs/api-references/generate-graphql-ref) GraphQL schema #### [Library](/learn/docs/api-references/library-reference) Python or C++ source code ## Customize and enhance #### [Customize layout](/learn/docs/api-references/customize-api-reference-layout) Reorder endpoints, filter by audience, and add Markdown content #### [SDK snippets](/learn/docs/api-references/sdk-snippets) Show SDK code samples alongside your endpoint documentation #### [HTTP snippets](/learn/docs/api-references/http-snippets) Display cURL, Python, JavaScript, and Go request examples > Understand how to generate, customize, and enhance API Reference documentation with Fern.