Tools to generate beautiful web API documentation

Edit 6/16/2013: It’s been a few months, and we finally ended up going with the Swagger-based documentation built into 3Scale.net. Want to see how it looks? Head over to developer.nutritionix.com.

— Begin original post —

As demand for our Nutritionix API is starting to grow rapidly, we have been working on finding an API documentation engine to meet our needs for the long-term. I was not able to find any comprehensive list of existing API documentation solutions, so I am compiling what I have found so far. Please leave feedback on your own experience in the comments.

Web API Documentation Tools

We are still exploring each solution, but I will update this post as we learn more about each option.

Note: We already use 3Scale.net for our API management solution, and they have an ActiveDocs feature based on Swagger.

I/O Docs – By defining APIs at the resource, method and parameter levels in a JSON schema, I/O Docs will generate a JavaScript client interface [Demo]. I/O docs was created by the API management platform Mashery.

apiary.io – Provides very quick way to get your documentation up and running, includes GitHub integration and I/O validation. – Suggested by Siyfion via Reddit.

Dexy – Flexible documentation tool that supports any language, for any API.

Doxygen – Generate an on-line documentation browser (in HTML) and/or an off-line reference manual, and you can configure doxygen to extract the code structure from undocumented source files. Seems more technical than the other options, but a powerful option nonetheless. Suggested by gkumar007 via Reddit.

We’re doing a Hypermedia API and most of the documentation systems out there I’ve seen focus on the URL which I think is fundamentally flawed as it encourages client developers to code to the URL instead navigating the link relationships.

Originally, on our site, we decided to write free form and then present API Console from Apigee. Definitely room for improvement. Currently evaluating transition to Apiary. Apigee Console is awesome, but free version is not fully integrated with documentation.
Matt, I recommend you mistake distinction between free and paid tools.

Nice article. We have recently launched Simulty, a website combinator where you can navigate multiple sites simultaneously. I have created an example list taking your selection on this article (giving you, of course, full credit).

I would ask you for your opinion on how useful can Simulty be for you to promote articles like this one.

If you’re documenting Rest APIs, and you’re using Java/JaxRS, you might take a look at MireDot (miredot.com). It grew from a tool we initially developped within our company, to document rest interfaces for our clients. We have recently decided to make this tool publically available (free for open source projects). It’s distributed as a Maven plugin, and uses existing JaxRS annotations and javadoc tags to generate the documentation.

I like apiary, but writing documentation in console took some time to learn syntax and I found it not very convenien. A friend of mine suggested me another documentation tool – speca.io. Right now I’m using it in three of my projects and it looks great so far, despite it’s in beta-version. I believe you will find it useful too. Thank you!

Text Widget

This is a text widget. The Text Widget allows you to add text or HTML to your sidebar. You can use a text widget to display text, links, images, HTML, or a combination of these. Edit them in the Widget section of the Customizer.