Self-Hosted API Documentation That Never Calls Home
An OpenAPI spec often describes more than a public API’s shape — internal-only routes, auth header names, staging URLs, field names that hint at how a system is built. For teams under security or compliance requirements, sending that document to a third-party service just to render it isn’t always an option, even when the service itself is reputable.
Why self-hosting matters here
A lot of “publish your docs” tools mean “publish to our platform.” Postman’s
published docs live on the postman.co domain (a custom domain is a paid-plan feature);
Scalar and Stoplight both offer hosted cloud
tiers alongside their open-source viewers. That’s a fine trade-off for a public-facing marketing-style docs
page. It’s a harder sell when the spec being rendered isn’t meant to leave your own network at all.
How GetMan runs self-hosted
GetMan is a script, not a platform. You host getman-ui.js yourself — pull it into your own asset
pipeline or mirror it on infrastructure you control — and call GetMan.launch() against a spec URL that
can be entirely internal, unreachable from outside your VPN. Nothing renders server-side and nothing phones
home to a GetMan-operated service: the script fetches the spec URL you give it and renders it in the
visitor’s browser, the same way any other static asset on your page would behave.
<div id="api-docs" style="height: 100vh"></div>
<script src="/vendor/getman-ui.js"></script>
<script>
GetMan.launch(document.getElementById('api-docs'), {
url: 'https://internal.your-domain.com/openapi.json',
});
</script>
Because it’s MIT-licensed, the source is also auditable if that’s part of your review process — there’s no minified black box between “script tag” and “what actually runs in the browser.”
What this looks like in practice
Behind a VPN or on an intranet, this setup needs no outbound network calls beyond the two you already control: the request for the script asset, and the request for the spec itself. Compliance review becomes a question about your own infrastructure, not a third party’s data-handling policy.
Try it with your own spec
Paste any OpenAPI or Swagger URL and see it rendered live — no signup, no install.
Open the explorer