Swagger UI renders an OpenAPI specification as an interactive reference — endpoint list, parameter tables, request and response schemas, a try-it console — and it does only that. It does not write the getting-started guide, the authentication walkthrough, the conceptual overview of your rate-limit model, or the migration guide for your next breaking change. Reference docs are necessary. They are not sufficient. The Postman 2024 State of the API report found that 39 percent of developers cite inconsistent documentation as the single biggest roadblock they hit — which is exactly the gap a team produces when it treats the auto-generated reference as the entire documentation strategy.
This article covers what Swagger UI does well, the four other types of documentation developers expect alongside reference, and the four tooling approaches that combine them. The honest answer to "which API documentation tool should we use" is "it depends on whether you have engineers, technical writers, or both."
What Swagger UI actually does, and where it stops
Swagger UI is an open-source renderer that takes an OpenAPI 3.x or Swagger 2.0 specification and produces an interactive reference page. It ships as three npm modules, a Docker image, and a plugin system for customization. The interactive page covers:
- Endpoint list with method badges
- Path and query parameters
- Request body schemas with example payloads
- Response codes and schemas
- Authentication setup for the try-it console
- A live "Try it out" button that runs the actual request
Inside the spec's description fields you can include Markdown. That is the extent of prose support. Open issues on the Swagger UI GitHub repository document the boundaries: nested Markdown blocks do not render reliably, external-document Markdown is ignored, and there is no concept of a standalone narrative page. The product was never designed for tutorials, concept docs, or changelogs. It was designed to make a spec interactive.
Redocly's open-source Redoc is the same shape. Three-panel layout with the spec on display, the rendering more polished, the scope identical. This is reference for the API surface, no more.
That is the gap. The OpenAPI specification describes endpoints. It does not describe how a developer succeeds on day one.
Five types of API documentation developers expect
The Diátaxis framework, maintained by Daniele Procida, identifies four modes of documentation: tutorials, how-to guides, reference, and explanation. Mapped to APIs, with one addition for change communication, you get five concrete content types.
- Reference. Every endpoint, parameter, schema, status code, error code. The thing OpenAPI specs describe. The thing Swagger UI renders.
- Getting started. A 10-minute path from zero to a working request. API key, install the SDK, send the first call, inspect the response. The Postman 2024 report found 63 percent of developers can ship an API in under a week — but only when the onboarding doc is clear enough to follow without escalation.
- Tutorials. Multi-step learning paths. Build a webhook handler. Authenticate a server-side OAuth flow. Process your first payment. These are sequential, opinionated, and complete.
- Conceptual explanation. Why the system works the way it does. Rate-limit philosophy. Webhook delivery semantics. Idempotency guarantees. Versioning policy. Architecture diagrams.
- Changelog and migration guides. Stripe maintains a public API changelog going back over a decade because breaking changes are routine and developers need a stable record of what shifted and when. Twilio publishes deprecation timelines for the same reason.
Stripe and Twilio are the gold-standard examples cited across the API docs community for a reason. Their public docs include all five content types in the navigation: get started, API reference, webhooks, integration guides, the changelog. The conclusion that follows is simple. A team that publishes only the auto-generated reference has shipped one of five.
Auto-generated reference vs hand-written narrative
The two halves of an API documentation site behave differently. They are sourced from different places, maintained on different cadences, and reviewed by different people. Treating them as the same kind of content is where doc tooling decisions go wrong.
| Auto-generated reference | Hand-written narrative | |
|---|---|---|
| Content type | Endpoint list, parameters, schemas, status codes | Quickstart, tutorial, concept doc, changelog |
| Source of truth | OpenAPI spec in code repository | Prose written by docs team or developer relations |
| Maintenance cost | Low — regenerated from spec on each release | Higher — edited topic by topic, reviewed by SMEs |
| Developer value | Lookup: "what does this endpoint return?" | Decision and instruction: "how do I get this working?" |
| Tooling examples | Swagger UI, Redoc, Redocly CLI | Markdown in a docs site, structured topics in a CCMS |
Both halves are necessary. The reference half answers questions a developer already knows to ask. The narrative half teaches the developer what to ask in the first place. A docs site without reference is incomplete. A docs site with only reference is unusable.
Four ways to combine reference and narrative
There are four practical approaches in use across documentation teams today. We have ordered them by how much they assume an engineering-led workflow.
1. Swagger UI plus a wiki or static site
The simplest, cheapest setup. Host Swagger UI at /api. Put the quickstart and tutorials in a static site or a wiki. The pieces do not share navigation, design, or search. This works for an internal API with five active developers who already know where everything is.
It stops working at scale. Once you publish a developer portal to external customers, fragmented surfaces become a usability problem. We see teams outgrow this around the 20-developer mark or the second product launch.
2. Developer-hub SaaS — ReadMe and Mintlify
ReadMe and Mintlify take an OpenAPI spec and a folder of Markdown or MDX pages and publish them together with shared navigation, search, and a try-it console. Both auto-regenerate the reference when the spec changes. Both support hand-written guides, tutorials, and changelog pages alongside.
ReadMe is positioned around the developer hub experience — its Developer Dashboard surfaces real API call data inside the docs. Mintlify treats content as MDX files in a Git repository, which lines up well with engineering teams that want docs in pull requests. Mintlify Pro is $250 per month at the time of writing; ReadMe Pro is in a similar range with add-ons for the AI assistant and the developer dashboard.
If your team is small, engineering-led, and the only narrative content you ship is API guides, this is the path of least resistance. Pick one based on whether you prefer Git-native authoring (Mintlify) or a hosted CMS-style editor (ReadMe).
3. Docs as code with an OpenAPI plugin — Docusaurus, Stoplight
Docusaurus is Meta's open-source static site framework. The docusaurus-plugin-openapi-docs project, maintained by Palo Alto Networks, generates MDX from an OpenAPI spec and ships an interactive API explorer through a paired theme. Version 5.0.2 was released in May 2026 and supports Docusaurus 3.10 and later. The generated MDX sits alongside hand-written MDX pages, so your getting-started guide and your endpoint reference live in the same site, same navigation, same search index.
The cost is self-hosting. You manage the build, the deployment, and the plugin upgrades. The benefit is full control plus the standard docs-as-code advantages: pull request review, branch previews, no per-seat pricing. For more on the trade-offs, see our writeup on docs as code limitations.
Stoplight, acquired by SmartBear in August 2023, takes a similar shape but with a visual spec editor instead of raw YAML files. Its "hubs" concept combines reference and narrative in one published surface.
4. Structured authoring with OpenAPI import
A component content management system imports the OpenAPI spec, generates structured reference topics, and puts those topics in the same content tree as hand-written tutorials, concept docs, and changelogs. The combined map publishes to web, Markdown, and PDF from a single source. This is the approach Topicary takes — reference topics are generated from the spec on import, then live alongside whatever prose your team writes.
The trade-off is workflow. A CCMS is heavier than a Git-and-Markdown stack and assumes you have technical writers in addition to engineers. We have written separately on what a CCMS is and when it pays off. For a team of two engineers and one product manager, this is overkill. For a team of five writers documenting three products with shared content, it is the cheapest way to keep the narrative side maintainable as the reference grows.
Code example formatting that developers actually use
Reference rendering and narrative authoring share one design constraint: code samples have to feel like production. Four patterns separate the docs developers paste from the docs they screenshot for the bug report.
- Language tabs. A cURL example plus the developer's actual stack. Stripe shows side-by-side language tabs on every endpoint — cURL, Ruby, Python, PHP, Java, Node, Go, .NET. The pattern is so standard now that its absence reads as a tooling deficiency.
- Copy buttons. A copy icon on every fenced code block. This sounds trivial. Watching a developer triple-click a multi-line snippet is the moment the omission becomes obvious.
- Runnable examples. A "Run" or "Try it" button that fires the real API call against a sandbox. Swagger UI's try-it console is the original; Mintlify, ReadMe, Redocly, and Stoplight all ship a version. The execution context matters — test API keys must work without a sign-up wall.
- Version-specific snippets. When you ship
v2of an endpoint, the example forv1must remain accurate untilv1is sunset. Stripe versions its examples by API date string for exactly this reason.
A decision framework
Match the approach to the team, not to the spec.
- Two engineers, internal API, no writers. Swagger UI plus a
README.md. Ship it. - Engineering-led team, public API, no dedicated writers. Mintlify or ReadMe. The Git-native editing model fits an engineering team. Pick Mintlify if you want pull request workflows; pick ReadMe if you want a hosted editor and per-call analytics.
- Engineering-led team with strong open-source preference. Docusaurus plus the OpenAPI plugin. You manage the build, you keep the freedom, you pay no per-seat fees.
- Two or more writers, multiple products, mixed audiences. Structured authoring with OpenAPI import. Topicary, or other structured tools we cover here. The narrative half is going to dominate the maintenance work, and a CCMS is built for that load.
There is no universally correct answer. The most common failure mode we see is the wrong direction — an engineering team adopting a CCMS because "structured" sounded better, or a docs team adopting Docusaurus because "Git" sounded modern. Match the tool to the people who edit the content.
If you are versioning API documentation alongside code releases, our documentation version control guide covers the patterns that hold up in practice. For shape and structure inspiration, the technical documentation examples breakdown walks through six public developer portals and what they get right.
Frequently asked questions
Is Swagger UI enough on its own?
For an internal API used by a small team that already understands the system, yes. For a public API or any API with onboarding requirements, no. Swagger UI renders the reference. It does not render the onboarding guide, the concept doc, the tutorial, or the changelog. Teams that publish only Swagger UI are publishing one of the five content types developers expect.
What is the difference between OpenAPI and Swagger?
OpenAPI is the specification — a JSON or YAML format that describes an HTTP API. Swagger is the original brand and toolset that became the specification. In 2015 the Swagger spec was donated to the Linux Foundation and renamed OpenAPI. The tools Swagger UI, Swagger Editor, and Swagger Codegen kept the Swagger name. OpenAPI is the format and Swagger is a family of tools that work with it.
Should we generate reference from code or hand-write the spec?
It depends on which is the source of truth. If your API is defined by a framework that produces an OpenAPI spec at build time (FastAPI, NestJS with the OpenAPI module, Spring Boot with springdoc), code-first is honest. If your spec is the design contract and the code implements it, spec-first is honest. The wrong answer is having both and letting them drift. Pick the one your team actually maintains.
Where does Topicary fit in this list?
Topicary imports an OpenAPI spec, generates structured reference topics, and puts them in the same project as hand-written tutorials, concept docs, and changelogs. The combined map publishes to web, Markdown, and PDF from one source. It sits in the structured-authoring category alongside other CCMS tools. For a small engineering team, ReadMe or Mintlify will be simpler. For a writer-led team documenting multiple products, the structured approach is the one that scales.
What about API docs for GraphQL or gRPC, not REST?
The shape of the problem is identical. Reference is auto-generatable from the GraphQL schema or the .proto files; narrative has to be written. The tooling differs — Spectaql renders GraphQL schemas, Buf renders gRPC. The combination question of how to host reference plus tutorials in one place has the same answer set as REST. Most developer hub platforms now support multiple specification formats.
How long should an API getting-started guide be?
Short enough to finish in under 10 minutes. Long enough that a developer ends with a successful response in their terminal. Stripe's first-API-call walkthrough is roughly 150 words of prose plus three code blocks. The shape is install, authenticate, call, inspect. Resist the urge to explain rate-limit semantics in the quickstart. Concepts belong in concept docs.