Redoc is an open source tool for generating documentation from OpenAPI (formerly Swagger), AsyncAPI, and GraphQL definitions.
By default Redoc offers a three-panel, responsive layout:
- The left panel contains a search bar and navigation menu.
- The central panel contains the documentation.
- The right panel contains request and response examples.
If you want to see how Redoc renders your API definition, you can try it out online at https://redocly.github.io/redoc/.
A version of the Redocly Cafe API is displayed by default. To test it with your own API definition, enter the URL for your definition and select TRY IT.
- Responsive three-panel design with menu/scrolling synchronization
- Support for OpenAPI 3.2, OpenAPI 3.1, OpenAPI 3.0, and Swagger 2.0
- Support for AsyncAPI 3.x and GraphQL (SDL) β the format is detected from the document
- MCP (Model Context Protocol) server documentation with the
x-mcpspecification extension - Improved built-in search
- Copy, Open in ChatGPT, and Open in Claude actions on every page to work with the docs in your AI assistant
- Dark mode and theming with CSS variables
- Ability to integrate your API introduction into the side menu
- High-level grouping in side menu with the
x-tagGroupsspecification extension - Simple integration with React
- Code samples support (with the
x-codeSamplesspecification extension)
Redoc Community Edition is available as an HTML tag, a React component, and via the Redocly CLI (also distributed as a Docker image).
If you have Node installed, quickly generate documentation using npx:
npx @redocly/cli build-docs openapi.yamlThe tool outputs by default to a file named redoc-static.html that you can open in your browser.
Redocly CLI does more than docs; check it out and add linting, bundling, and more to your API workflow.
Create an HTML page, or edit an existing one, and add the following within the body tags:
<redoc spec-url="https://example.com/openapi.yaml"></redoc>
<script type="module" src="https://cdn.redoc.ly/redoc/v3.x/bundles/redoc.standalone.js"> </script>Open the HTML file in your browser, and your API documentation is shown on the page.
Add your own spec-url to the <redoc> tag; this attribute can also be a local file, an AsyncAPI definition, or a GraphQL schema. The JavaScript library can also be installed locally using npm and served from your own server, see the HTML deployment documentation for more details.
import { RedocStandalone } from 'redoc';
<RedocStandalone specUrl="https://example.com/openapi.yaml" />;Check out the deployment documentation for more options, and detailed documentation for each.
Redoc is Redocly's community-edition product. Looking for something more? We also offer Redoc with support for specifications like SOAP and additional features including:
- Try-it panel (Replay)
- Automated code samples
- Mock server
- Feedback widgets
- Role-based access control
- Full customization
- Lint
- Realm + Reunite - we take care of the hosting, which includes everything you need for documentation.
- Redoc - detailed documentation for this open source project
- Command-line interface to bundle your docs into a web-ready HTML file
- API linting, bundling, and much more with open source Redocly CLI
A sample of the organizations using Redocly tools in the wild:
Pull requests to add your own API page to the list are welcome
Redoc is highly configurable, see the configuration documentation for details.
Redoc uses the following specification extensions:
x-logo- is used to specify API logox-traitTag- useful for tags that refer to non-navigation properties like Pagination, Rate-Limits, etcx-codeSamples- specify operation code samplesx-badges- specify operation badgesx-enumDescriptions- list of the enum values and descriptions to include in the documentationx-examples- specify JSON example for requestsx-nullable- mark schema param as a nullablex-displayName- specify human-friendly names for the menu categoriesx-tagGroups- group tags by categories in the side menux-mcp- document MCP (Model Context Protocol) servers, their tools and capabilitiesx-servers- ability to specify different servers for API (backported from OpenAPI 3.0)x-additionalPropertiesName- ability to supply a descriptive name for the additional property keysx-summary- for Response object, use as the response button text, with description rendered under the buttonx-explicitMappingOnly- in Schemas, display a more descriptive property name in objects with additionalProperties when viewing the property list with an object
Runnable, copy-ready projects for common setups live in examples/: plain HTML,
React, Next.js, Vue, Svelte, Angular, Express, NestJS, FastAPI, ASP.NET Core, Spring Boot,
Laravel, and framework-free Java, Go, Rust, PHP and Python. Each one is built and smoke-tested against the local build on every
pull request; see examples/README.md for the contract and how to add one.
Two deliveries have nothing to copy and are documented rather than built:
examples/docker for the official redocly/redoc image and
examples/cli for redocly build-docs.
The README for the 1.x version is on the v1.x branch.
The README for the 2.x version is on the v2.x branch.
All the 2.x and 3.x releases are deployed to npm and can be used with Redocly-cdn:
- particular release, for example:
- latest
3.xrelease: https://cdn.redoc.ly/redoc/v3.x/bundles/redoc.standalone.js latestrelease: https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js
Additionally, all the 1.x releases are hosted on our GitHub Pages-based CDN (deprecated):
- particular release, for example
v1.2.0: https://rebilly.github.io/ReDoc/releases/v1.2.0/redoc.min.js v1.x.xrelease: https://rebilly.github.io/ReDoc/releases/v1.x.x/redoc.min.jslatestrelease: https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js - points to latest 1.x.x release since 2.x releases are not hosted on this CDN but on unpkg.
Redoc collects anonymous usage and performance data to help prioritize work. It never sends your API definition content or personal information. Opt out with disable-telemetry="true" on the <redoc> tag, disableTelemetry: true in options. See the telemetry documentation for details.
see CONTRIBUTING.md
