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.
With 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.
See why teams switch from Redocly, Scalar, and Swagger UI to RapiDoc.
| Capability | RapiDoc | Redocly (Redoc) | Scalar | Swagger UI |
|---|---|---|---|---|
| Component ArchitecturePortability across any framework | ✓Standard Web Component React, Vue, Svelte, or plain HTML | React Component / Standalone bundle | Vue 3 Component / Wrapper | React Component / Legacy Webpack |
| Interactive Test ConsoleCall live endpoints directly | ✓Built-In (Free) Supports negative/edge case testing | ✕ Paid / Separate Add-on | ✓ Built-in client | ~ Basic (rigid validation) |
| In-Browser Mock ServerZero-setup frontend prototyping & testing | ✓Built-In Mock Server Zero config, schema-driven, multi-status & latency simulation | ✕ Requires Prism / External CLI | ✕ No mock server | ✕ No mock server |
| Model & Schema FoldingInspect complex nested payloads | ✓Dual Tree & Tabular Models expanded by default | Nested list only | Single column list | Accordion list (multi-click drilldown) |
| Distinct Layout StylesAdapt to audience needs | ✓3 Modes Read (wiki), View, & Focused | 1 fixed 3-column layout | 1 fixed layout | 1 vertical accordion layout |
| Embedded & Micro-ContainersLightweight binary / container integration | ✓High Performance ~136 KB gzip (525 KB min), zero SSR | Heavy bundle size | Vue runtime overhead | Heavy bundle size |
| Data Privacy & Self-HostingAir-gapped and internal compliance | ✓100% In-Browser Zero telemetry, air-gapped safe | ✓ Self-hostable | Tied to hosted cloud ecosystem | ✓ Self-hostable |
| Open Source LicenseTotal commercial freedom | ✓100% MIT Forever free, unlimited APIs | Freemium / Commercial tiers | Open Core / Cloud upsell | Apache 2.0 |
Choose your stack and drop RapiDoc into your application in under 60 seconds.
<!doctype html>
<html>
<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://petstore.swagger.io/v2/swagger.json"
render-style="read"
theme="dark"
show-header="false"
> </rapi-doc>
</body>
</html>import React from 'react';
import 'rapidoc';
export function ApiReference() {
return (
<rapi-doc
spec-url="https://petstore.swagger.io/v2/swagger.json"
render-style="view"
theme="dark"
style={{ height: '100vh', width: '100%' }}
/>
);
}<template>
<rapi-doc
spec-url="https://petstore.swagger.io/v2/swagger.json"
render-style="focused"
theme="dark"
style="height: 100vh; width: 100%"
/>
</template>
<script setup>
import 'rapidoc';
</script>FROM nginx:alpine
# Copy rapidoc bundle and your OpenAPI spec into a zero-dependency container
COPY dist/rapidoc-min.js /usr/share/nginx/html/
COPY openapi.yaml /usr/share/nginx/html/
COPY index.html /usr/share/nginx/html/
EXPOSE 80
# Blazing fast, self-contained, <25MB total image sizeJoin thousands of developers and enterprise organizations delivering lightning-fast, beautifully branded OpenAPI references.