Build breathtaking, high-performance interactive API references without framework lock-in. Powered by native Web Components, featuring an integrated API console, and self-hosted corporate security.
npm install rapidoc
RapiDoc provides pixel-perfect high-contrast dark and light themes out of the box, engineered for crystal-clear readability, WCAG AA compliance, and effortless enterprise brand pairing.
Designed from the ground up for developer productivity, enterprise privacy, and product design flexibility.
Free of proprietary wrapper lock-in, complicated build steps, or framework runtime baggage. Drop a single <rapi-doc> custom element into React, Vue, Angular, Next.js, Nuxt, Astro, or plain vanilla HTML. Change attributes with JavaScript and it responds instantly.
Execute API calls directly in the docs. Unlike rigid renderers that block invalid inputs, RapiDoc lets you test negative edge cases, corrupt payloads, and custom headers.
Frontend teams can prototype before the backend is built. Seamlessly intercepts in-page fetch() calls and generates realistic mock responses from OpenAPI examples or schemas with multi-status and latency simulation.
Convert OpenAPI specs into a Model Context Protocol manifest with JSON Schema tools, MCP safety annotations and a runnable TypeScript project. Skips internal and deprecated endpoints, strips transport headers and keeps a live budget of prompt context overhead.
Explore MCP ArchitectureWith its tiny bundle size and zero server-side rendering dependencies, RapiDoc is ideal for embedding into lightweight Docker containers, Go / Rust / Java backends, and IoT edge devices.
Choose between Tree and Table representation for deep schemas. All models and examples are auto-expanded by default, completely eliminating tedious 20-click accordions.
Trusted by Fortune 500 corporations, defense, and fintech organizations. RapiDoc executes entirely client-side in the browser. No telemetry phoning home, no cloud vendor lock-in, and zero risk of proprietary internal API schemas leaking to third parties.
From the reference to the whole portal: what each tool includes, and what needs a paid or hosted plan.
| Capability | Redocly | Scalar | Swagger | |
|---|---|---|---|---|
| API reference | ||||
| How you add itWhat goes into your page | One web component<rapi-doc> in any framework or plain HTML, 171 KB gzipped, no dependencies | React app or standalone script | Script tag or framework packages | Standalone bundle or React component |
| Try it consoleCall the API from the docs | IncludedWith OAuth 2.0, PKCE and API keys | Replay, on paid plansNot in open-source Redoc | Included (API client) | Included (Try it out) |
| LayoutsOne reference, several audiences | Three render stylesRead, view and focused, plus <rapi-doc-mini> for one operation | Three-panel layout | Modern and classic layouts | One collapsible list |
| Mocking & workflows | ||||
| Mock serverResponses before the backend exists | In the browser and standalonerapidoc mock: examples, generated data, request validation, OAuth scope checks | In Realm (commercial) | Open-source mock server | SwaggerHub (commercial) |
| Arazzo workflowsMulti-step API journeys | <rapi-flow>A diagram next to the reference, run step by step | Respect, in Redocly CLIRuns and lints them | ||
| Developer portal | ||||
| Docs-as-code portalGuides, references and a catalog | RapiDoc PortalMarkdown, Markdoc and MDX guides, API catalog, versions, search | Realm (commercial) | Scalar DocsGuides and custom domains on paid plans | SwaggerHub PortalPaid add-on for Enterprise plans |
| Single sign-on (SSO) and access rulesPrivate APIs and partner docs | SSO with any OpenID Connect providerOkta, Entra ID, Google, Keycloak; per-page access rules, served by rapidoc serve on your servers | RBAC in Realm | SSO on Enterprise | SAML SSO on EnterpriseIn SwaggerHub |
| AI agents (MCP)Your API as tools for agents | MCP export and hostingExport a server from the browser, or host the tools at /mcp behind sign-in; llms.txt | MCP server and llms.txt in Realm | Hosted MCP servers | MCP server for SwaggerHubAnd MCP server generation from an API |
| Command lineChecks in CI and local preview | rapidoc CLIvalidate, lint, bundle, mock, and migrate from Redocly or Zudoku | Redocly CLIlint, bundle | Scalar CLI | SwaggerHub CLIPublishes APIs to SwaggerHub from CI |
| License and hosting | ||||
| LicenseWhat you may do with it | MIT, every packageNo paid tier | Only Redoc and the CLI are MITEverything else is commercial | Only the core is MITDocs and MCP are on hosted plans | Only Swagger UI, Editor and Codegen are Apache 2.0SwaggerHub is commercial |
| Self-hostedYour servers, no third party | EverythingStatic files, or rapidoc serve with sign-in; no telemetry | Limited to basic RedocEverything else is paywalled or commercial | Limited to the API referenceScalar Docs is hosted | Limited to the open-source toolsSwaggerHub is hosted |
Other products as described in their public documentation, November 2026.
Choose your stack and drop RapiDoc into your application in under 60 seconds.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script type="module" src="https://unpkg.com/rapidoc/dist/rapidoc-min.js"></script>
</head>
<body>
<rapi-doc
spec-url="https://rapidocui.com/specs/bookstore.yaml"
color-scheme="dark"
></rapi-doc>
</body>
</html>One script tag and one element. Nothing to install or build.
// npm install rapidoc
import { useEffect } from 'react';
export default function ApiDocs() {
// Load RapiDoc in the browser only, so server rendering keeps working
useEffect(() => {
import('rapidoc');
}, []);
return (
<rapi-doc
spec-url="https://rapidocui.com/specs/bookstore.yaml"
render-style="view"
style={{ height: '100vh' }}
/>
);
}In Next.js, add 'use client' at the top. With TypeScript, declare the element once. Setup details →
<!-- npm install rapidoc -->
<script setup>
import { onMounted } from 'vue';
onMounted(() => import('rapidoc'));
</script>
<template>
<rapi-doc
spec-url="https://rapidocui.com/specs/bookstore.yaml"
render-style="focused"
style="height: 100vh"
></rapi-doc>
</template>Tell the Vue compiler that rapi- tags are custom elements: one line in vite.config or nuxt.config. Setup details →
# npm install rapidoc, then build an image that needs nothing else
FROM nginx:alpine
# The bundle and its license notices (rapidoc-min.js.LICENSE.txt)
COPY node_modules/rapidoc/dist/rapidoc-min.js* /usr/share/nginx/html/
# Your page and spec: index.html as in the HTML tab, with
# src="rapidoc-min.js" and spec-url="openapi.yaml"
COPY index.html openapi.yaml /usr/share/nginx/html/No CDN and no outside calls: the page works on an intranet or air-gapped network.
Join thousands of developers and enterprise organizations delivering lightning-fast, beautifully branded OpenAPI references.