Skip to content
100% local

OpenAPI to Markdown docs

Turn an OpenAPI or Swagger document into readable Markdown API reference docs.

Input

OpenAPI to Markdown docs

Paste an OpenAPI 3 or Swagger 2 document — JSON or YAML — and this tool turns it into a Markdown API reference you can drop straight into a README, a wiki page or a docs site. Every operation becomes its own section, so a spec that only a machine could read comfortably becomes something a teammate or a new integrator can skim.

The output includes a table of contents linking to every group and endpoint, a parameter table (or a plain list) for path, query, header and cookie parameters, a generated request body sample, a table of response codes with their descriptions, and an example response body from the first matching schema. Group endpoints by tag or by their first path segment, choose whether request samples render as a JSON body or a ready-to-run curl command, and pick how deep the endpoint headings go so the result nests inside an existing document. One toggle includes or skips deprecated endpoints; another dumps every schema under components (or Swagger's definitions) as its own section at the end.

"$ref" pointers within the same file are followed for parameters, request and response bodies, and schemas, so a spec that leans on components still produces full tables and samples rather than bare $ref strings. References into another file or a URL are left alone, since nothing here ever makes a network request. If the generated Markdown would exceed the tool's output limit you get a clear message instead of a frozen tab.

Everything runs locally in your browser — your API specification, which often describes systems you don't want to expose, is never uploaded anywhere. Copy the Markdown, download it as a .txt file, or send it to another tool to keep working on it.

FAQ

Does it support both OpenAPI 3 and Swagger 2?
Yes. It reads the "paths" section either way and adapts to each format’s way of describing parameters, request bodies and responses.
What happens to $ref references?
Local references (starting with "#/") are followed automatically for parameters, request/response bodies and schemas, so the generated tables and samples show real names and types instead of a raw $ref string.
How is the sample request or response body built?
From the operation’s schema: an explicit "example" or "default" is used when present, otherwise a placeholder value is generated for each property based on its type.
Can I control how deep the endpoint headings are?
Yes, with the heading level option. It sets the level used for each endpoint’s own heading, so the output can be pasted under an existing heading without clashing with it.
Is my API specification uploaded anywhere?
No. The document is parsed and converted entirely in your browser and never leaves your device.