Why generic scrapers fail on API docs
Two reasons. First, most modern API docs (Swagger UI, Redoc, Stoplight, Mintlify, ReadMe.io) render endpoint detail by JavaScript from an OpenAPI/Swagger spec — a static fetch sees a near-empty shell. Second, even when content is in the HTML, it's organised by interactive cards that hide most data behind "Try it" buttons or collapsed accordions. Markdown has no concept of "collapsed", so a faithful conversion needs to expand everything first.
Endpoint extraction
For each endpoint, we emit: the HTTP method and path as a heading (## GET /users/{id}), a short description, a parameters GFM table (name, in, type, required, description), the request body schema as a code block, response schemas grouped by status code as code blocks, and any code examples in their original languages as fenced blocks. The result reads like a hand-written reference and is searchable with grep.